mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 08:15:16 +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