import 'package:comunic/helpers/settings_helper.dart'; import 'package:comunic/ui/dialogs/input_new_password_dialog.dart'; import 'package:comunic/ui/dialogs/input_user_password_dialog.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'; /// Account security settings /// /// @author Pierre HUBERT class AccountSecuritySettingsScreen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(tr("Security settings")), ), body: _AccountSecuritySettingsScreenBody(), ); } } class _AccountSecuritySettingsScreenBody extends StatefulWidget { @override __AccountSecuritySettingsScreenBodyState createState() => __AccountSecuritySettingsScreenBodyState(); } class __AccountSecuritySettingsScreenBodyState extends State<_AccountSecuritySettingsScreenBody> { @override Widget build(BuildContext context) { return SettingsList( sections: [ SettingsSection( title: tr("Password"), tiles: [ SettingsTile( title: tr("Change password"), onTap: _changePassword, ), ], ) ], ); } /// Change current user password void _changePassword() async { try { final currPassword = await showUserPasswordDialog(context); if (currPassword == null) return; final newPassword = await showInputNewPassword(context); if (newPassword == null) return; await SettingsHelper.changePassword(currPassword, newPassword); showSimpleSnack( context, tr("Your password has been successfully changed!")); } catch (e, stack) { print("Could not update current user password! $e\n$stack"); showSimpleSnack(context, tr("Could not update password!")); } } }