From 4db9191fd8485142d06643899b264cdc4881304f Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Sat, 9 May 2020 14:56:33 +0200 Subject: [PATCH] Can open conversation from unread conversations dropdown --- lib/ui/routes/main_route/main_route.dart | 4 ++++ lib/ui/routes/main_route/tablet_route.dart | 1 + lib/ui/screens/unread_conversations_screen.dart | 2 ++ 3 files changed, 7 insertions(+) diff --git a/lib/ui/routes/main_route/main_route.dart b/lib/ui/routes/main_route/main_route.dart index 044dacc..e71c74a 100644 --- a/lib/ui/routes/main_route/main_route.dart +++ b/lib/ui/routes/main_route/main_route.dart @@ -22,6 +22,10 @@ abstract class MainController extends State { return mainControllerKey.currentState; } + /// Pop until main route is reached + void popUntilMainRoute() => Navigator.of(context).popUntil((settings) => + ModalRoute.of(context).isCurrent || !ModalRoute.of(context).isActive); + /// Open user page void openUserPage(int userID); diff --git a/lib/ui/routes/main_route/tablet_route.dart b/lib/ui/routes/main_route/tablet_route.dart index 136cc55..05ef9f8 100644 --- a/lib/ui/routes/main_route/tablet_route.dart +++ b/lib/ui/routes/main_route/tablet_route.dart @@ -66,6 +66,7 @@ class _TabletRouteState extends MainController { @override void openConversation(int convID, {fullScreen = false}) { + popUntilMainRoute(); _conversationsKey.currentState.openConversations(convID); } diff --git a/lib/ui/screens/unread_conversations_screen.dart b/lib/ui/screens/unread_conversations_screen.dart index d7a0b42..c251b29 100644 --- a/lib/ui/screens/unread_conversations_screen.dart +++ b/lib/ui/screens/unread_conversations_screen.dart @@ -3,6 +3,7 @@ import 'package:comunic/helpers/events_helper.dart'; import 'package:comunic/helpers/users_helper.dart'; import 'package:comunic/lists/unread_conversations_list.dart'; import 'package:comunic/lists/users_list.dart'; +import 'package:comunic/ui/routes/main_route/main_route.dart'; import 'package:comunic/ui/widgets/account_image_widget.dart'; import 'package:comunic/ui/widgets/async_screen_widget.dart'; import 'package:comunic/ui/widgets/safe_state.dart'; @@ -84,6 +85,7 @@ class _UnreadConversationsScreenState ]), ), trailing: Text(diffTimeFromNowToStr(conv.lastActive)), + onTap: () => MainController.of(context).openConversation(conv.id), ); } }