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:
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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) =>
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
|
|
|
|||
40
pubspec.lock
40
pubspec.lock
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in New Issue