import 'package:comunic/helpers/groups_helper.dart'; 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/utils/intl_utils.dart'; import 'package:flutter/material.dart'; import 'package:settings_ui/settings_ui.dart'; /// Groups settings screen /// /// @author Pierre Hubert class GroupSettingsScreen extends StatefulWidget { final int groupID; const GroupSettingsScreen({Key key, @required this.groupID}) : assert(groupID != null), super(key: key); @override _GroupSettingsScreenState createState() => _GroupSettingsScreenState(); } class _GroupSettingsScreenState extends SafeState { AdvancedGroupInfo _groupSettings; Future _refresh() async { _groupSettings = await GroupsHelper().getSettings(widget.groupID); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( leading: ComunicBackButton(), title: Text(tr("Group settings")), ), body: _buildBody(), ); } Widget _buildBody() { return AsyncScreenWidget( onReload: _refresh, onBuild: _buildContent, errorMessage: tr("Could not get group settings!"), ); } Widget _buildContent() { return SettingsList( sections: [_buildGeneralSection()], ); } Widget _buildGeneralSection() { return SettingsSection( title: tr("General information"), tiles: [ SettingsTile( title: tr("Group ID"), subtitle: _groupSettings.id.toString(), ), ], ); } }