diff --git a/lib/pages/settings_security/settings_security.dart b/lib/pages/settings_security/settings_security.dart index 5863e2578..688feb4bd 100644 --- a/lib/pages/settings_security/settings_security.dart +++ b/lib/pages/settings_security/settings_security.dart @@ -74,30 +74,21 @@ class SettingsSecurityController extends State { if (mxid == null || mxid.isEmpty || mxid != supposedMxid) { return; } - final input = await showTextInputDialog( - useRootNavigator: false, + final resp = await showFutureLoadingDialog( context: context, - title: L10n.of(context).pleaseEnterYourPassword, - okLabel: L10n.of(context).ok, - cancelLabel: L10n.of(context).cancel, - isDestructive: true, - obscureText: true, - hintText: '******', - minLines: 1, - maxLines: 1, - ); - if (input == null) return; - await showFutureLoadingDialog( - context: context, - future: () => Matrix.of(context).client.deactivateAccount( - auth: AuthenticationPassword( - password: input, - identifier: AuthenticationUserIdentifier( - user: Matrix.of(context).client.userID!, + delay: false, + future: () => + Matrix.of(context).client.uiaRequestBackground( + (auth) => Matrix.of(context).client.deactivateAccount(auth: auth), ), - ), - ), ); + + if (!resp.isError) { + await showFutureLoadingDialog( + context: context, + future: () => Matrix.of(context).client.logout(), + ); + } } Future dehydrateAction() => Matrix.of(context).dehydrateAction(context);