mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 00:05:16 +00:00
Can change group name
This commit is contained in:
@ -3,7 +3,9 @@ import 'package:comunic/models/advanced_group_info.dart';
|
||||
import 'package:comunic/ui/widgets/async_screen_widget.dart';
|
||||
import 'package:comunic/ui/widgets/comunic_back_button_widget.dart';
|
||||
import 'package:comunic/ui/widgets/safe_state.dart';
|
||||
import 'package:comunic/ui/widgets/settings/text_settings_edit_tile.dart';
|
||||
import 'package:comunic/utils/intl_utils.dart';
|
||||
import 'package:comunic/utils/ui_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:settings_ui/settings_ui.dart';
|
||||
|
||||
@ -25,10 +27,23 @@ class GroupSettingsScreen extends StatefulWidget {
|
||||
class _GroupSettingsScreenState extends SafeState<GroupSettingsScreen> {
|
||||
AdvancedGroupInfo _groupSettings;
|
||||
|
||||
final _key = GlobalKey<AsyncScreenWidgetState>();
|
||||
|
||||
Future<void> _refresh() async {
|
||||
_groupSettings = await GroupsHelper().getSettings(widget.groupID);
|
||||
}
|
||||
|
||||
Future<void> _updateSettings() async {
|
||||
try {
|
||||
await GroupsHelper.setSettings(_groupSettings);
|
||||
} catch (e, stack) {
|
||||
print("Could not update group settings! $e\n$stack");
|
||||
showSimpleSnack(context, tr("Could not update group settings!"));
|
||||
}
|
||||
|
||||
_key.currentState.refresh();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
@ -42,9 +57,11 @@ class _GroupSettingsScreenState extends SafeState<GroupSettingsScreen> {
|
||||
|
||||
Widget _buildBody() {
|
||||
return AsyncScreenWidget(
|
||||
key: _key,
|
||||
onReload: _refresh,
|
||||
onBuild: _buildContent,
|
||||
errorMessage: tr("Could not get group settings!"),
|
||||
showOldDataWhileUpdating: true,
|
||||
);
|
||||
}
|
||||
|
||||
@ -58,10 +75,20 @@ class _GroupSettingsScreenState extends SafeState<GroupSettingsScreen> {
|
||||
return SettingsSection(
|
||||
title: tr("General information"),
|
||||
tiles: [
|
||||
// Group ID
|
||||
SettingsTile(
|
||||
title: tr("Group ID"),
|
||||
subtitle: _groupSettings.id.toString(),
|
||||
),
|
||||
|
||||
// Group name
|
||||
TextEditSettingsTile(
|
||||
title: tr("Group name"),
|
||||
currValue: _groupSettings.name,
|
||||
onChanged: (s) {
|
||||
_groupSettings.name = s;
|
||||
_updateSettings();
|
||||
}),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user