diff --git a/flutter/lib/mobile/pages/home_page.dart b/flutter/lib/mobile/pages/home_page.dart index a0f2fee65..76c23b315 100644 --- a/flutter/lib/mobile/pages/home_page.dart +++ b/flutter/lib/mobile/pages/home_page.dart @@ -25,6 +25,10 @@ class _HomePageState extends State { var _selectedIndex = 0; int get selectedIndex => _selectedIndex; final List _pages = []; + final _blockableOverlayState = BlockableOverlayState(); + bool get isChatPageCurrentTab => isAndroid + ? _selectedIndex == 1 + : false; // change this when ios have chat page void refreshPages() { setState(() { @@ -79,13 +83,15 @@ class _HomePageState extends State { unselectedItemColor: MyTheme.darkGray, onTap: (index) => setState(() { // close chat overlay when go chat page - if (index == 1 && _selectedIndex != index) { - gFFI.chatModel.hideChatIconOverlay(); - gFFI.chatModel.hideChatWindowOverlay(); - gFFI.chatModel - .mobileClearClientUnread(gFFI.chatModel.currentKey.connId); + if (_selectedIndex != index) { + _selectedIndex = index; + if (isChatPageCurrentTab) { + gFFI.chatModel.hideChatIconOverlay(); + gFFI.chatModel.hideChatWindowOverlay(); + gFFI.chatModel.mobileClearClientUnread( + gFFI.chatModel.currentKey.connId); + } } - _selectedIndex = index; }), ), body: _pages.elementAt(_selectedIndex), @@ -95,7 +101,7 @@ class _HomePageState extends State { Widget appTitle() { final currentUser = gFFI.chatModel.currentUser; final currentKey = gFFI.chatModel.currentKey; - if (_selectedIndex == 1 && + if (isChatPageCurrentTab && currentUser != null && currentKey.peerId.isNotEmpty) { final connected = diff --git a/flutter/lib/models/chat_model.dart b/flutter/lib/models/chat_model.dart index bffd9d426..5ab0a6929 100644 --- a/flutter/lib/models/chat_model.dart +++ b/flutter/lib/models/chat_model.dart @@ -396,7 +396,7 @@ class ChatModel with ChangeNotifier { parent.target?.serverModel.jumpTo(id); } } else { - if (HomePage.homeKey.currentState?.selectedIndex != 1 || + if (HomePage.homeKey.currentState?.isChatPageCurrentTab != true || _currentKey != messagekey) { client.unreadChatMessageCount.value += 1; mobileUpdateUnreadSum();