fcm deep linking & bug fixes (v 2.2.5 build 21)
This commit is contained in:
parent
053f8d233b
commit
a414bd19ae
|
|
@ -3,7 +3,7 @@ name: app-test
|
||||||
spec:
|
spec:
|
||||||
allow_http: false
|
allow_http: false
|
||||||
disable_default_domains: true
|
disable_default_domains: true
|
||||||
image: app:2.2.1.2
|
image: app:2.2.5.21
|
||||||
image_pull_policy: IfNotPresent
|
image_pull_policy: IfNotPresent
|
||||||
path: /
|
path: /
|
||||||
replicas: 1
|
replicas: 1
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,55 @@
|
||||||
|
import 'dart:developer';
|
||||||
|
|
||||||
import 'package:bot_toast/bot_toast.dart';
|
import 'package:bot_toast/bot_toast.dart';
|
||||||
import 'package:didvan/config/theme_data.dart';
|
import 'package:didvan/config/theme_data.dart';
|
||||||
import 'package:didvan/providers/media.dart';
|
import 'package:didvan/providers/media.dart';
|
||||||
import 'package:didvan/providers/theme.dart';
|
import 'package:didvan/providers/theme.dart';
|
||||||
import 'package:didvan/providers/user.dart';
|
import 'package:didvan/providers/user.dart';
|
||||||
import 'package:didvan/routes/route_generator.dart';
|
import 'package:didvan/routes/route_generator.dart';
|
||||||
|
import 'package:didvan/services/app_initalizer.dart';
|
||||||
import 'package:didvan/views/home/studio/studio_details/studio_details_state.dart';
|
import 'package:didvan/views/home/studio/studio_details/studio_details_state.dart';
|
||||||
|
import 'package:firebase_core/firebase_core.dart';
|
||||||
|
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
|
try {
|
||||||
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
|
await Firebase.initializeApp(
|
||||||
|
options: kIsWeb
|
||||||
|
? const FirebaseOptions(
|
||||||
|
apiKey: "AIzaSyA0HZjKpRuPOi1SC3f_EZTvlS3mcj9UVo0",
|
||||||
|
authDomain: "didvan-9b7da.firebaseapp.com",
|
||||||
|
projectId: "didvan-9b7da",
|
||||||
|
storageBucket: "didvan-9b7da.appspot.com",
|
||||||
|
messagingSenderId: "935017686266",
|
||||||
|
appId: "1:935017686266:web:a93f7a19bed23c51d2d543",
|
||||||
|
measurementId: "G-80B4H9E8Y0")
|
||||||
|
: const FirebaseOptions(
|
||||||
|
apiKey: 'AIzaSyBp-UHjWeM0H0UHtX5yguFKG-riMzvvCzw',
|
||||||
|
appId: '1:935017686266:android:f9cbc9aba8e3d65ed2d543',
|
||||||
|
messagingSenderId: '935017686266',
|
||||||
|
projectId: 'didvan-9b7da',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
final initMsg = await FirebaseMessaging.instance.getInitialMessage();
|
||||||
|
if (initMsg != null) {
|
||||||
|
AppInitializer.clickAction = initMsg.data['click_action'].replaceAll(
|
||||||
|
'navigate-',
|
||||||
|
'',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
log(e.toString());
|
||||||
|
}
|
||||||
runApp(const Didvan());
|
runApp(const Didvan());
|
||||||
}
|
}
|
||||||
|
|
||||||
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
||||||
final GlobalKey materialKey = GlobalKey();
|
|
||||||
|
|
||||||
class Didvan extends StatelessWidget {
|
class Didvan extends StatelessWidget {
|
||||||
const Didvan({Key? key}) : super(key: key);
|
const Didvan({Key? key}) : super(key: key);
|
||||||
|
|
@ -37,7 +72,6 @@ class Didvan extends StatelessWidget {
|
||||||
],
|
],
|
||||||
child: Consumer<ThemeProvider>(
|
child: Consumer<ThemeProvider>(
|
||||||
builder: (context, themeProvider, child) => MaterialApp(
|
builder: (context, themeProvider, child) => MaterialApp(
|
||||||
key: materialKey,
|
|
||||||
navigatorKey: navigatorKey,
|
navigatorKey: navigatorKey,
|
||||||
debugShowCheckedModeBanner: false,
|
debugShowCheckedModeBanner: false,
|
||||||
title: 'Didvan',
|
title: 'Didvan',
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
|
import 'package:didvan/main.dart';
|
||||||
|
import 'package:didvan/models/requests/news.dart';
|
||||||
|
import 'package:didvan/models/requests/radar.dart';
|
||||||
import 'package:didvan/models/settings_data.dart';
|
import 'package:didvan/models/settings_data.dart';
|
||||||
|
import 'package:didvan/routes/routes.dart';
|
||||||
import 'package:didvan/services/media/media.dart';
|
import 'package:didvan/services/media/media.dart';
|
||||||
import 'package:didvan/services/storage/storage.dart';
|
import 'package:didvan/services/storage/storage.dart';
|
||||||
import 'package:didvan/views/home/studio/studio_details/studio_details_state.dart';
|
import 'package:didvan/views/home/studio/studio_details/studio_details_state.dart';
|
||||||
|
|
@ -19,9 +23,7 @@ class AppInitializer {
|
||||||
(await getApplicationDocumentsDirectory()).path;
|
(await getApplicationDocumentsDirectory()).path;
|
||||||
StorageService.appTempsDir = (await getTemporaryDirectory()).path;
|
StorageService.appTempsDir = (await getTemporaryDirectory()).path;
|
||||||
}
|
}
|
||||||
|
|
||||||
final studioState = context.read<StudioDetailsState>();
|
final studioState = context.read<StudioDetailsState>();
|
||||||
|
|
||||||
MediaService.audioPlayer.isPlaying.listen((event) {
|
MediaService.audioPlayer.isPlaying.listen((event) {
|
||||||
if (event &&
|
if (event &&
|
||||||
(MediaService.audioPlayerTag?.contains('podcast') ?? false)) {
|
(MediaService.audioPlayerTag?.contains('podcast') ?? false)) {
|
||||||
|
|
@ -77,6 +79,25 @@ class AppInitializer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void handleCLick() {
|
||||||
|
if (clickAction != null) {
|
||||||
|
final isRadar = clickAction!.contains('radar');
|
||||||
|
Navigator.of(navigatorKey.currentContext!).pushNamed(
|
||||||
|
isRadar ? Routes.radarDetails : Routes.newsDetails,
|
||||||
|
arguments: {
|
||||||
|
'id': int.parse(clickAction!.split('-')[1]),
|
||||||
|
'args': isRadar
|
||||||
|
? const RadarRequestArgs(page: 0)
|
||||||
|
: const NewsRequestArgs(page: 0),
|
||||||
|
'onMarkChanged': (id, value) {},
|
||||||
|
'onCommentsChanged': (id, count) {},
|
||||||
|
'hasUnmarkConfirmation': false,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static Future<void> initializeFirebase() async {
|
static Future<void> initializeFirebase() async {
|
||||||
try {
|
try {
|
||||||
await Firebase.initializeApp(
|
await Firebase.initializeApp(
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import 'package:didvan/config/design_config.dart';
|
import 'package:didvan/config/design_config.dart';
|
||||||
|
import 'package:didvan/services/app_initalizer.dart';
|
||||||
import 'package:didvan/views/home/home_state.dart';
|
import 'package:didvan/views/home/home_state.dart';
|
||||||
import 'package:didvan/views/home/news/news.dart';
|
import 'package:didvan/views/home/news/news.dart';
|
||||||
import 'package:didvan/views/home/radar/radar.dart';
|
import 'package:didvan/views/home/radar/radar.dart';
|
||||||
|
|
@ -26,6 +27,9 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
|
||||||
_tabController.addListener(() {
|
_tabController.addListener(() {
|
||||||
context.read<HomeState>().currentPageIndex = _tabController.index;
|
context.read<HomeState>().currentPageIndex = _tabController.index;
|
||||||
});
|
});
|
||||||
|
Future.delayed(Duration.zero, () {
|
||||||
|
AppInitializer.handleCLick();
|
||||||
|
});
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ class _NewsDetailsState extends State<NewsDetails> {
|
||||||
right: 0,
|
right: 0,
|
||||||
child: FloatingNavigationBar(
|
child: FloatingNavigationBar(
|
||||||
hasUnmarkConfirmation:
|
hasUnmarkConfirmation:
|
||||||
widget.pageData['hasUnmarkConfirmation'],
|
widget.pageData['hasUnmarkConfirmation'] ?? false,
|
||||||
scrollController: _scrollController,
|
scrollController: _scrollController,
|
||||||
item: state.currentNews,
|
item: state.currentNews,
|
||||||
onCommentsChanged: state.onCommentsChanged,
|
onCommentsChanged: state.onCommentsChanged,
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ class _RadarDetailsState extends State<RadarDetails> {
|
||||||
right: 0,
|
right: 0,
|
||||||
child: FloatingNavigationBar(
|
child: FloatingNavigationBar(
|
||||||
hasUnmarkConfirmation:
|
hasUnmarkConfirmation:
|
||||||
widget.pageData['hasUnmarkConfirmation'],
|
widget.pageData['hasUnmarkConfirmation'] ?? false,
|
||||||
isRadar: true,
|
isRadar: true,
|
||||||
scrollController: _scrollController,
|
scrollController: _scrollController,
|
||||||
onMarkChanged: (value) =>
|
onMarkChanged: (value) =>
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ class Settings extends StatelessWidget {
|
||||||
MenuOption(
|
MenuOption(
|
||||||
title: 'ویرایش پروفایل',
|
title: 'ویرایش پروفایل',
|
||||||
icon: DidvanIcons.user_edit_regular,
|
icon: DidvanIcons.user_edit_regular,
|
||||||
suffix: context.read<UserProvider>().user.fullName,
|
suffix: context.watch<UserProvider>().user.fullName,
|
||||||
onTap: () => Navigator.of(context).pushNamed(Routes.profile),
|
onTap: () => Navigator.of(context).pushNamed(Routes.profile),
|
||||||
),
|
),
|
||||||
const DidvanDivider(),
|
const DidvanDivider(),
|
||||||
|
|
|
||||||
40
pubspec.lock
40
pubspec.lock
|
|
@ -7,14 +7,14 @@ packages:
|
||||||
name: assets_audio_player
|
name: assets_audio_player
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.4+3"
|
version: "3.0.5"
|
||||||
assets_audio_player_web:
|
assets_audio_player_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: assets_audio_player_web
|
name: assets_audio_player_web
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.4+3"
|
version: "3.0.5"
|
||||||
async:
|
async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -49,7 +49,7 @@ packages:
|
||||||
name: bot_toast
|
name: bot_toast
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.2"
|
version: "4.0.3"
|
||||||
cached_network_image:
|
cached_network_image:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -140,7 +140,7 @@ packages:
|
||||||
name: day_night_time_picker
|
name: day_night_time_picker
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.5"
|
version: "1.1.2"
|
||||||
equatable:
|
equatable:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -182,42 +182,42 @@ packages:
|
||||||
name: firebase_core
|
name: firebase_core
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.18.0"
|
version: "1.19.2"
|
||||||
firebase_core_platform_interface:
|
firebase_core_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: firebase_core_platform_interface
|
name: firebase_core_platform_interface
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.4.1"
|
version: "4.4.3"
|
||||||
firebase_core_web:
|
firebase_core_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: firebase_core_web
|
name: firebase_core_web
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.6.5"
|
version: "1.7.0"
|
||||||
firebase_messaging:
|
firebase_messaging:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: firebase_messaging
|
name: firebase_messaging
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "11.4.2"
|
version: "11.4.4"
|
||||||
firebase_messaging_platform_interface:
|
firebase_messaging_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: firebase_messaging_platform_interface
|
name: firebase_messaging_platform_interface
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.5.2"
|
version: "3.5.4"
|
||||||
firebase_messaging_web:
|
firebase_messaging_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: firebase_messaging_web
|
name: firebase_messaging_web
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.2"
|
version: "2.4.4"
|
||||||
fl_chart:
|
fl_chart:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -269,7 +269,7 @@ packages:
|
||||||
name: flutter_plugin_android_lifecycle
|
name: flutter_plugin_android_lifecycle
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.6"
|
version: "2.0.7"
|
||||||
flutter_secure_storage:
|
flutter_secure_storage:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -325,7 +325,7 @@ packages:
|
||||||
name: flutter_svg
|
name: flutter_svg
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.0"
|
version: "1.1.1+1"
|
||||||
flutter_test:
|
flutter_test:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description: flutter
|
description: flutter
|
||||||
|
|
@ -419,7 +419,7 @@ packages:
|
||||||
name: image_picker_ios
|
name: image_picker_ios
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.5+5"
|
version: "0.8.5+6"
|
||||||
image_picker_platform_interface:
|
image_picker_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -524,7 +524,7 @@ packages:
|
||||||
name: path_provider_android
|
name: path_provider_android
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.15"
|
version: "2.0.16"
|
||||||
path_provider_ios:
|
path_provider_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -692,7 +692,7 @@ packages:
|
||||||
name: rxdart
|
name: rxdart
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.27.4"
|
version: "0.27.5"
|
||||||
skeleton_text:
|
skeleton_text:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -718,7 +718,7 @@ packages:
|
||||||
name: sqflite
|
name: sqflite
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.2+1"
|
version: "2.0.3"
|
||||||
sqflite_common:
|
sqflite_common:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -795,7 +795,7 @@ packages:
|
||||||
name: url_launcher
|
name: url_launcher
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.3"
|
version: "6.1.5"
|
||||||
url_launcher_android:
|
url_launcher_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -872,7 +872,7 @@ packages:
|
||||||
name: wakelock
|
name: wakelock
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.1+2"
|
version: "0.6.2"
|
||||||
wakelock_macos:
|
wakelock_macos:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -914,7 +914,7 @@ packages:
|
||||||
name: webview_flutter_android
|
name: webview_flutter_android
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.8.11"
|
version: "2.8.14"
|
||||||
webview_flutter_platform_interface:
|
webview_flutter_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -928,7 +928,7 @@ packages:
|
||||||
name: webview_flutter_wkwebview
|
name: webview_flutter_wkwebview
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.8.1"
|
version: "2.9.1"
|
||||||
win32:
|
win32:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
|
||||||
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
||||||
# Read more about iOS versioning at
|
# Read more about iOS versioning at
|
||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
version: 2.2.2+20
|
version: 2.2.5+21
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.17.0 <3.0.0"
|
sdk: ">=2.17.0 <3.0.0"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue