2020-04-30 16:19:01 +00:00
|
|
|
import 'package:comunic/helpers/settings_helper.dart';
|
|
|
|
import 'package:comunic/ui/dialogs/input_new_password_dialog.dart';
|
2020-04-30 11:32:22 +00:00
|
|
|
import 'package:comunic/ui/dialogs/input_user_password_dialog.dart';
|
2020-04-29 15:28:47 +00:00
|
|
|
import 'package:comunic/utils/intl_utils.dart';
|
2020-04-30 16:19:01 +00:00
|
|
|
import 'package:comunic/utils/ui_utils.dart';
|
2020-04-29 15:28:47 +00:00
|
|
|
import 'package:flutter/material.dart';
|
2020-04-30 11:32:22 +00:00
|
|
|
import 'package:settings_ui/settings_ui.dart';
|
2020-04-29 15:28:47 +00:00
|
|
|
|
|
|
|
/// Account security settings
|
|
|
|
///
|
|
|
|
/// @author Pierre HUBERT
|
|
|
|
|
|
|
|
class AccountSecuritySettingsScreen extends StatelessWidget {
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return Scaffold(
|
|
|
|
appBar: AppBar(
|
|
|
|
title: Text(tr("Security settings")),
|
|
|
|
),
|
2020-04-30 11:32:22 +00:00
|
|
|
body: _AccountSecuritySettingsScreenBody(),
|
2020-04-29 15:28:47 +00:00
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
2020-04-30 11:32:22 +00:00
|
|
|
|
|
|
|
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 {
|
2020-04-30 16:19:01 +00:00
|
|
|
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!"));
|
|
|
|
}
|
2020-04-30 11:32:22 +00:00
|
|
|
}
|
|
|
|
}
|