fcm deep linking & bug fixes (v 2.2.5 build 21)

This commit is contained in:
MohammadTaha Basiri 2022-07-18 15:36:31 +04:30
parent 053f8d233b
commit a414bd19ae
9 changed files with 88 additions and 29 deletions

View File

@ -3,7 +3,7 @@ name: app-test
spec:
allow_http: false
disable_default_domains: true
image: app:2.2.1.2
image: app:2.2.5.21
image_pull_policy: IfNotPresent
path: /
replicas: 1

View File

@ -1,20 +1,55 @@
import 'dart:developer';
import 'package:bot_toast/bot_toast.dart';
import 'package:didvan/config/theme_data.dart';
import 'package:didvan/providers/media.dart';
import 'package:didvan/providers/theme.dart';
import 'package:didvan/providers/user.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: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_localizations/flutter_localizations.dart';
import 'package:provider/provider.dart';
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());
}
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
final GlobalKey materialKey = GlobalKey();
class Didvan extends StatelessWidget {
const Didvan({Key? key}) : super(key: key);
@ -37,7 +72,6 @@ class Didvan extends StatelessWidget {
],
child: Consumer<ThemeProvider>(
builder: (context, themeProvider, child) => MaterialApp(
key: materialKey,
navigatorKey: navigatorKey,
debugShowCheckedModeBanner: false,
title: 'Didvan',

View File

@ -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/routes/routes.dart';
import 'package:didvan/services/media/media.dart';
import 'package:didvan/services/storage/storage.dart';
import 'package:didvan/views/home/studio/studio_details/studio_details_state.dart';
@ -19,9 +23,7 @@ class AppInitializer {
(await getApplicationDocumentsDirectory()).path;
StorageService.appTempsDir = (await getTemporaryDirectory()).path;
}
final studioState = context.read<StudioDetailsState>();
MediaService.audioPlayer.isPlaying.listen((event) {
if (event &&
(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 {
try {
await Firebase.initializeApp(

View File

@ -1,4 +1,5 @@
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/news/news.dart';
import 'package:didvan/views/home/radar/radar.dart';
@ -26,6 +27,9 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
_tabController.addListener(() {
context.read<HomeState>().currentPageIndex = _tabController.index;
});
Future.delayed(Duration.zero, () {
AppInitializer.handleCLick();
});
super.initState();
}

View File

@ -62,7 +62,7 @@ class _NewsDetailsState extends State<NewsDetails> {
right: 0,
child: FloatingNavigationBar(
hasUnmarkConfirmation:
widget.pageData['hasUnmarkConfirmation'],
widget.pageData['hasUnmarkConfirmation'] ?? false,
scrollController: _scrollController,
item: state.currentNews,
onCommentsChanged: state.onCommentsChanged,

View File

@ -62,7 +62,7 @@ class _RadarDetailsState extends State<RadarDetails> {
right: 0,
child: FloatingNavigationBar(
hasUnmarkConfirmation:
widget.pageData['hasUnmarkConfirmation'],
widget.pageData['hasUnmarkConfirmation'] ?? false,
isRadar: true,
scrollController: _scrollController,
onMarkChanged: (value) =>

View File

@ -61,7 +61,7 @@ class Settings extends StatelessWidget {
MenuOption(
title: 'ویرایش پروفایل',
icon: DidvanIcons.user_edit_regular,
suffix: context.read<UserProvider>().user.fullName,
suffix: context.watch<UserProvider>().user.fullName,
onTap: () => Navigator.of(context).pushNamed(Routes.profile),
),
const DidvanDivider(),

View File

@ -7,14 +7,14 @@ packages:
name: assets_audio_player
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.4+3"
version: "3.0.5"
assets_audio_player_web:
dependency: transitive
description:
name: assets_audio_player_web
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.4+3"
version: "3.0.5"
async:
dependency: transitive
description:
@ -49,7 +49,7 @@ packages:
name: bot_toast
url: "https://pub.dartlang.org"
source: hosted
version: "4.0.2"
version: "4.0.3"
cached_network_image:
dependency: "direct main"
description:
@ -140,7 +140,7 @@ packages:
name: day_night_time_picker
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
version: "1.1.2"
equatable:
dependency: transitive
description:
@ -182,42 +182,42 @@ packages:
name: firebase_core
url: "https://pub.dartlang.org"
source: hosted
version: "1.18.0"
version: "1.19.2"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "4.4.1"
version: "4.4.3"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.5"
version: "1.7.0"
firebase_messaging:
dependency: "direct main"
description:
name: firebase_messaging
url: "https://pub.dartlang.org"
source: hosted
version: "11.4.2"
version: "11.4.4"
firebase_messaging_platform_interface:
dependency: transitive
description:
name: firebase_messaging_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "3.5.2"
version: "3.5.4"
firebase_messaging_web:
dependency: transitive
description:
name: firebase_messaging_web
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.2"
version: "2.4.4"
fl_chart:
dependency: "direct main"
description:
@ -269,7 +269,7 @@ packages:
name: flutter_plugin_android_lifecycle
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.6"
version: "2.0.7"
flutter_secure_storage:
dependency: "direct main"
description:
@ -325,7 +325,7 @@ packages:
name: flutter_svg
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.1.1+1"
flutter_test:
dependency: "direct dev"
description: flutter
@ -419,7 +419,7 @@ packages:
name: image_picker_ios
url: "https://pub.dartlang.org"
source: hosted
version: "0.8.5+5"
version: "0.8.5+6"
image_picker_platform_interface:
dependency: transitive
description:
@ -524,7 +524,7 @@ packages:
name: path_provider_android
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.15"
version: "2.0.16"
path_provider_ios:
dependency: transitive
description:
@ -692,7 +692,7 @@ packages:
name: rxdart
url: "https://pub.dartlang.org"
source: hosted
version: "0.27.4"
version: "0.27.5"
skeleton_text:
dependency: "direct main"
description:
@ -718,7 +718,7 @@ packages:
name: sqflite
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2+1"
version: "2.0.3"
sqflite_common:
dependency: transitive
description:
@ -795,7 +795,7 @@ packages:
name: url_launcher
url: "https://pub.dartlang.org"
source: hosted
version: "6.1.3"
version: "6.1.5"
url_launcher_android:
dependency: transitive
description:
@ -872,7 +872,7 @@ packages:
name: wakelock
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.1+2"
version: "0.6.2"
wakelock_macos:
dependency: transitive
description:
@ -914,7 +914,7 @@ packages:
name: webview_flutter_android
url: "https://pub.dartlang.org"
source: hosted
version: "2.8.11"
version: "2.8.14"
webview_flutter_platform_interface:
dependency: transitive
description:
@ -928,7 +928,7 @@ packages:
name: webview_flutter_wkwebview
url: "https://pub.dartlang.org"
source: hosted
version: "2.8.1"
version: "2.9.1"
win32:
dependency: transitive
description:

View File

@ -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.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 2.2.2+20
version: 2.2.5+21
environment:
sdk: ">=2.17.0 <3.0.0"