mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Automatically change the number of unread conversations
This commit is contained in:
		@@ -1,5 +1,6 @@
 | 
			
		||||
import 'package:comunic/enums/load_error_level.dart';
 | 
			
		||||
import 'package:comunic/helpers/conversations_helper.dart';
 | 
			
		||||
import 'package:comunic/helpers/events_helper.dart';
 | 
			
		||||
import 'package:comunic/helpers/users_helper.dart';
 | 
			
		||||
import 'package:comunic/lists/conversations_list.dart';
 | 
			
		||||
import 'package:comunic/models/conversation.dart';
 | 
			
		||||
@@ -7,6 +8,7 @@ import 'package:comunic/ui/routes/main_route.dart';
 | 
			
		||||
import 'package:comunic/ui/routes/update_conversation_route.dart';
 | 
			
		||||
import 'package:comunic/ui/screens/create_conversation_screen.dart';
 | 
			
		||||
import 'package:comunic/ui/tiles/conversation_tile.dart';
 | 
			
		||||
import 'package:comunic/ui/widgets/safe_state.dart';
 | 
			
		||||
import 'package:comunic/utils/intl_utils.dart';
 | 
			
		||||
import 'package:comunic/utils/ui_utils.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
@@ -20,7 +22,7 @@ class ConversationsListScreen extends StatefulWidget {
 | 
			
		||||
  State<StatefulWidget> createState() => _ConversationScreenState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _ConversationScreenState extends State<ConversationsListScreen> {
 | 
			
		||||
class _ConversationScreenState extends SafeState<ConversationsListScreen> {
 | 
			
		||||
  final ConversationsHelper _conversationsHelper = ConversationsHelper();
 | 
			
		||||
  final UsersHelper _usersHelper = UsersHelper();
 | 
			
		||||
  ConversationsList _list;
 | 
			
		||||
@@ -29,14 +31,17 @@ class _ConversationScreenState extends State<ConversationsListScreen> {
 | 
			
		||||
      GlobalKey<RefreshIndicatorState>();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  void didChangeDependencies() {
 | 
			
		||||
    super.didChangeDependencies();
 | 
			
		||||
    _loadConversations();
 | 
			
		||||
  void initState() {
 | 
			
		||||
    super.initState();
 | 
			
		||||
 | 
			
		||||
    this.listen<NewNumberUnreadConversations>(
 | 
			
		||||
            (d) => _refreshIndicatorKey.currentState.show());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  void setState(fn) {
 | 
			
		||||
    if (mounted) super.setState(fn);
 | 
			
		||||
  void didChangeDependencies() {
 | 
			
		||||
    super.didChangeDependencies();
 | 
			
		||||
    _loadConversations();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void setError(LoadErrorLevel err) => setState(() => _error = err);
 | 
			
		||||
 
 | 
			
		||||
@@ -114,7 +114,8 @@ class ComunicAppBar extends StatefulWidget implements PreferredSizeWidget {
 | 
			
		||||
  final OnSelectMenuAction onTap;
 | 
			
		||||
  final BarCallbackActions selectedAction;
 | 
			
		||||
 | 
			
		||||
  const ComunicAppBar({Key key, @required this.onTap, @required this.selectedAction})
 | 
			
		||||
  const ComunicAppBar(
 | 
			
		||||
      {Key key, @required this.onTap, @required this.selectedAction})
 | 
			
		||||
      : assert(onTap != null),
 | 
			
		||||
        super(key: key);
 | 
			
		||||
 | 
			
		||||
@@ -137,6 +138,8 @@ class _ComunicAppBarState extends SafeState<ComunicAppBar> {
 | 
			
		||||
    // Listen to notifications number update
 | 
			
		||||
    this.listenChangeState<NewNumberNotifsEvent>(
 | 
			
		||||
            (d) => _unreadNotifications.notifications = d.newNum);
 | 
			
		||||
    this.listenChangeState<NewNumberUnreadConversations>(
 | 
			
		||||
            (d) => _unreadNotifications.conversations = d.newNum);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _refreshCountUnread() async {
 | 
			
		||||
@@ -176,7 +179,8 @@ class _ComunicAppBarState extends SafeState<ComunicAppBar> {
 | 
			
		||||
        crossAxisAlignment: CrossAxisAlignment.stretch,
 | 
			
		||||
        children: List.generate(
 | 
			
		||||
          _menuItems.length,
 | 
			
		||||
              (i) => _MenuItemWidget(
 | 
			
		||||
              (i) =>
 | 
			
		||||
              _MenuItemWidget(
 | 
			
		||||
            item: _menuItems[i],
 | 
			
		||||
            onTap: widget.onTap,
 | 
			
		||||
            isSelected: _menuItems[i].action == widget.selectedAction,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user