mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 12:14:11 +00:00 
			
		
		
		
	Remove Navigator references from conversations pages
This commit is contained in:
		@@ -3,9 +3,9 @@ import 'package:comunic/helpers/conversations_helper.dart';
 | 
			
		||||
import 'package:comunic/helpers/users_helper.dart';
 | 
			
		||||
import 'package:comunic/lists/conversations_list.dart';
 | 
			
		||||
import 'package:comunic/models/conversation.dart';
 | 
			
		||||
import 'package:comunic/ui/routes/conversation_route.dart';
 | 
			
		||||
import 'package:comunic/ui/routes/create_conversation_route.dart';
 | 
			
		||||
import 'package:comunic/ui/routes/home_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/utils/intl_utils.dart';
 | 
			
		||||
import 'package:comunic/utils/ui_utils.dart';
 | 
			
		||||
@@ -94,27 +94,20 @@ class _ConversationScreenState extends State<ConversationsListScreen> {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /// Open a conversation
 | 
			
		||||
  void _openConversation(BuildContext context, int conversationId) {
 | 
			
		||||
    Navigator.of(context).push(MaterialPageRoute(builder: (c) {
 | 
			
		||||
      return ConversationRoute(
 | 
			
		||||
        conversationID: conversationId,
 | 
			
		||||
      );
 | 
			
		||||
    }));
 | 
			
		||||
  void _openConversation(int conversationId) {
 | 
			
		||||
    HomeController.of(context).openConversation(conversationId);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /// Create a new conversation
 | 
			
		||||
  void _createConversation(BuildContext context) {
 | 
			
		||||
    Navigator.of(context)
 | 
			
		||||
        .push(MaterialPageRoute(builder: (c) => CreateConversationRoute()));
 | 
			
		||||
  void _createConversation() {
 | 
			
		||||
    HomeController.of(context).push(CreateConversationScreen());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /// Handle conversations updated requests
 | 
			
		||||
  void _updateConversation(Conversation conversation) {
 | 
			
		||||
    Navigator.of(context).push(
 | 
			
		||||
      MaterialPageRoute(
 | 
			
		||||
        builder: (c) => UpdateConversationRoute(
 | 
			
		||||
              conversationID: conversation.id,
 | 
			
		||||
            ),
 | 
			
		||||
    HomeController.of(context).push(
 | 
			
		||||
      UpdateConversationRoute(
 | 
			
		||||
        conversationID: conversation.id,
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
@@ -181,7 +174,7 @@ class _ConversationScreenState extends State<ConversationsListScreen> {
 | 
			
		||||
                      conversation: _list.elementAt(index),
 | 
			
		||||
                      usersList: _list.users,
 | 
			
		||||
                      onOpen: (c) {
 | 
			
		||||
                        _openConversation(context, c.id);
 | 
			
		||||
                        _openConversation(c.id);
 | 
			
		||||
                      },
 | 
			
		||||
                      onRequestUpdate: _updateConversation,
 | 
			
		||||
                      onRequestDelete: _requestDeleteConversation,
 | 
			
		||||
@@ -199,7 +192,7 @@ class _ConversationScreenState extends State<ConversationsListScreen> {
 | 
			
		||||
          right: 20.0,
 | 
			
		||||
          bottom: 20.0,
 | 
			
		||||
          child: FloatingActionButton(
 | 
			
		||||
            onPressed: () => _createConversation(context),
 | 
			
		||||
            onPressed: () => _createConversation(),
 | 
			
		||||
            child: Icon(Icons.add),
 | 
			
		||||
          ),
 | 
			
		||||
        ),
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								lib/ui/screens/create_conversation_screen.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								lib/ui/screens/create_conversation_screen.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
import 'package:comunic/ui/screens/update_conversation_screen.dart';
 | 
			
		||||
import 'package:comunic/ui/widgets/comunic_back_button_widget.dart';
 | 
			
		||||
import 'package:comunic/utils/intl_utils.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
 | 
			
		||||
/// Create a new conversation route
 | 
			
		||||
///
 | 
			
		||||
/// @author Pierre HUBERT
 | 
			
		||||
 | 
			
		||||
class CreateConversationScreen extends StatelessWidget {
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        leading: ComunicBackButton(),
 | 
			
		||||
        title: Text(tr("Create a conversation")),
 | 
			
		||||
      ),
 | 
			
		||||
      body: UpdateConversationScreen(),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
import 'package:comunic/helpers/conversations_helper.dart';
 | 
			
		||||
import 'package:comunic/lists/users_list.dart';
 | 
			
		||||
import 'package:comunic/models/conversation.dart';
 | 
			
		||||
import 'package:comunic/ui/routes/conversation_route.dart';
 | 
			
		||||
import 'package:comunic/ui/routes/home_route.dart';
 | 
			
		||||
import 'package:comunic/ui/tiles/simple_user_tile.dart';
 | 
			
		||||
import 'package:comunic/ui/widgets/pick_user_widget.dart';
 | 
			
		||||
import 'package:comunic/utils/intl_utils.dart';
 | 
			
		||||
@@ -71,8 +71,8 @@ class _UpdateConversationScreen extends State<UpdateConversationScreen> {
 | 
			
		||||
            label: tr("Add member"),
 | 
			
		||||
            enabled: isOwner,
 | 
			
		||||
            onSelectUser: (user) => setState(() {
 | 
			
		||||
                  if (!_members.contains(user)) _members.add(user);
 | 
			
		||||
                }),
 | 
			
		||||
              if (!_members.contains(user)) _members.add(user);
 | 
			
		||||
            }),
 | 
			
		||||
          ),
 | 
			
		||||
 | 
			
		||||
          //Conversation members
 | 
			
		||||
@@ -91,11 +91,11 @@ class _UpdateConversationScreen extends State<UpdateConversationScreen> {
 | 
			
		||||
                                      _membersMenuItemSelected(i, choice),
 | 
			
		||||
                                  itemBuilder: (c) =>
 | 
			
		||||
                                      <PopupMenuEntry<_MembersMenuChoices>>[
 | 
			
		||||
                                        PopupMenuItem(
 | 
			
		||||
                                          child: Text(tr("Remove")),
 | 
			
		||||
                                          value: _MembersMenuChoices.REMOVE,
 | 
			
		||||
                                        )
 | 
			
		||||
                                      ],
 | 
			
		||||
                                    PopupMenuItem(
 | 
			
		||||
                                      child: Text(tr("Remove")),
 | 
			
		||||
                                      value: _MembersMenuChoices.REMOVE,
 | 
			
		||||
                                    )
 | 
			
		||||
                                  ],
 | 
			
		||||
                                )
 | 
			
		||||
                              : null,
 | 
			
		||||
                        );
 | 
			
		||||
@@ -110,8 +110,8 @@ class _UpdateConversationScreen extends State<UpdateConversationScreen> {
 | 
			
		||||
              Switch(
 | 
			
		||||
                value: _followConversation,
 | 
			
		||||
                onChanged: (b) => setState(() {
 | 
			
		||||
                      _followConversation = b;
 | 
			
		||||
                    }),
 | 
			
		||||
                  _followConversation = b;
 | 
			
		||||
                }),
 | 
			
		||||
              ),
 | 
			
		||||
              Text(tr("Follow conversation"))
 | 
			
		||||
            ],
 | 
			
		||||
@@ -158,7 +158,8 @@ class _UpdateConversationScreen extends State<UpdateConversationScreen> {
 | 
			
		||||
    if (isUpdating)
 | 
			
		||||
      error = !(await ConversationsHelper().updateConversation(settings));
 | 
			
		||||
    else {
 | 
			
		||||
      conversationID = await ConversationsHelper().createConversation(settings);
 | 
			
		||||
      conversationID =
 | 
			
		||||
          await ConversationsHelper().createConversation(settings);
 | 
			
		||||
      if (conversationID < 1) error = true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -172,9 +173,9 @@ class _UpdateConversationScreen extends State<UpdateConversationScreen> {
 | 
			
		||||
      ));
 | 
			
		||||
 | 
			
		||||
    // Open the conversation
 | 
			
		||||
    Navigator.of(context).pushReplacement(MaterialPageRoute(
 | 
			
		||||
        builder: (c) => ConversationRoute(
 | 
			
		||||
              conversationID: conversationID,
 | 
			
		||||
            )));
 | 
			
		||||
 | 
			
		||||
    HomeController.of(context).popPage();
 | 
			
		||||
    if (!isUpdating)
 | 
			
		||||
      HomeController.of(context).openConversation(conversationID);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user