1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-19 08:15:16 +00:00

Can change group visibility

This commit is contained in:
2020-05-01 20:52:24 +02:00
parent cc08ed0232
commit 2d86780f0b
3 changed files with 87 additions and 2 deletions

View File

@ -1,9 +1,12 @@
import 'package:comunic/helpers/groups_helper.dart';
import 'package:comunic/models/advanced_group_info.dart';
import 'package:comunic/models/group.dart';
import 'package:comunic/ui/dialogs/multi_choices_dialog.dart';
import 'package:comunic/ui/dialogs/virtual_directory_dialog.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/multi_choices_settings_tile.dart';
import 'package:comunic/ui/widgets/settings/text_settings_edit_tile.dart';
import 'package:comunic/utils/input_utils.dart';
import 'package:comunic/utils/intl_utils.dart';
@ -69,7 +72,10 @@ class _GroupSettingsScreenState extends SafeState<GroupSettingsScreen> {
Widget _buildContent() {
return SettingsList(
sections: [_buildGeneralSection()],
sections: [
_buildGeneralSection(),
_buildAccessRestrictions(),
],
);
}
@ -137,4 +143,37 @@ class _GroupSettingsScreenState extends SafeState<GroupSettingsScreen> {
],
);
}
List<MultiChoiceEntry<GroupVisibilityLevel>> get _visibilityLevels => [
MultiChoiceEntry(
id: GroupVisibilityLevel.OPEN,
title: tr("Open group"),
subtitle:
tr("Group information & public posts are available to everyone."),
),
MultiChoiceEntry(
id: GroupVisibilityLevel.PRIVATE,
title: tr("Private groupe"),
subtitle: tr("The group is accessible to accepted members only."),
),
MultiChoiceEntry(
id: GroupVisibilityLevel.SECRETE,
title: tr("Secrete groupe"),
subtitle: tr("The group is visible only to invited members."),
),
];
Widget _buildAccessRestrictions() => SettingsSection(
title: tr("Access restrictions"),
tiles: [
MultiChoicesSettingsTile(
title: tr("Group visibility"),
choices: _visibilityLevels,
currentValue: _groupSettings.visibilityLevel,
onChanged: (v) {
_groupSettings.visibilityLevel = v;
_updateSettings();
})
],
);
}