From 620ad5d19af709127a7326b53a620407a2d9cee1 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Tue, 9 Dec 2025 12:36:05 -0500 Subject: [PATCH] fix: enable users without passwords to delete their accounts by using uia request in account deletion --- .../settings_security/settings_security.dart | 33 +++++++------------ 1 file changed, 12 insertions(+), 21 deletions(-) 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);