From 6d48d299b58ebea4aec78ecd56f5c9c4fa30c828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 16 Sep 2023 17:38:55 +0200 Subject: [PATCH] Added functionality to jump to talk-tab when app is launched via notification --- lib/api/apiError.dart | 5 +++++ lib/app.dart | 7 +++---- lib/notification/notificationController.dart | 1 + lib/notification/notificationTasks.dart | 3 ++- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/api/apiError.dart b/lib/api/apiError.dart index 91cf533..e689532 100644 --- a/lib/api/apiError.dart +++ b/lib/api/apiError.dart @@ -2,4 +2,9 @@ class ApiError { String message; ApiError(this.message); + + @override + String toString() { + return "ApiError: $message"; + } } \ No newline at end of file diff --git a/lib/app.dart b/lib/app.dart index 90abe0b..ffe9a92 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -23,12 +23,13 @@ import 'view/pages/timetable/timetable.dart'; class App extends StatefulWidget { const App({Key? key}) : super(key: key); + static PersistentTabController bottomNavigator = PersistentTabController(initialIndex: 0); + @override State createState() => _AppState(); } class _AppState extends State { - int currentPage = 0; late Timer refetchChats; late Timer updateTimings; @@ -68,11 +69,9 @@ class _AppState extends State { @override Widget build(BuildContext context) { - PersistentTabController tabController = PersistentTabController(initialIndex: 0); - return PersistentTabView( context, - controller: tabController, + controller: App.bottomNavigator, navBarStyle: NavBarStyle.style6, hideNavigationBarWhenKeyboardShows: true, navBarHeight: MediaQuery.of(context).viewInsets.bottom > 0 ? 0.0 : kBottomNavigationBarHeight, diff --git a/lib/notification/notificationController.dart b/lib/notification/notificationController.dart index 43b92fb..1cccc2b 100644 --- a/lib/notification/notificationController.dart +++ b/lib/notification/notificationController.dart @@ -44,6 +44,7 @@ class NotificationController { } static Future onAppOpenedByNotification(RemoteMessage message, BuildContext context) async { + NotificationTasks.navigateToTalk(); NotificationTasks.updateProviders(context); DebugTile(context).run(() { diff --git a/lib/notification/notificationTasks.dart b/lib/notification/notificationTasks.dart index 282c380..4bc4180 100644 --- a/lib/notification/notificationTasks.dart +++ b/lib/notification/notificationTasks.dart @@ -1,6 +1,7 @@ import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter_app_badger/flutter_app_badger.dart'; +import 'package:marianum_mobile/app.dart'; import 'package:provider/provider.dart'; import '../model/chatList/chatListProps.dart'; @@ -17,6 +18,6 @@ class NotificationTasks { } static void navigateToTalk() { - // TODO Navigate + App.bottomNavigator.jumpToTab(1); } } \ No newline at end of file