From af51c9c0ea7859b0c181ec7cfd1aab895aa15712 Mon Sep 17 00:00:00 2001 From: TheOneWithTheBraid Date: Sat, 20 Aug 2022 16:59:59 +0200 Subject: [PATCH] chore: ask for MXID before deleting account Signed-off-by: TheOneWithTheBraid --- assets/l10n/intl_en.arb | 8 +++++++ .../settings_account/settings_account.dart | 24 ++++++++++++------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/assets/l10n/intl_en.arb b/assets/l10n/intl_en.arb index b706f625..00e8ce28 100644 --- a/assets/l10n/intl_en.arb +++ b/assets/l10n/intl_en.arb @@ -55,6 +55,14 @@ "type": "text", "placeholders": {} }, + "confirmMatrixId": "Please confirm your Matrix ID in order to delete your account.", + "supposedMxid": "This should be {mxid}", + "@supposedMxid": { + "type": "text", + "placeholders": { + "mxid": {} + } + }, "addGroupDescription": "Add a group description", "@addGroupDescription": { "type": "text", diff --git a/lib/pages/settings_account/settings_account.dart b/lib/pages/settings_account/settings_account.dart index a82369df..18d294e2 100644 --- a/lib/pages/settings_account/settings_account.dart +++ b/lib/pages/settings_account/settings_account.dart @@ -87,14 +87,22 @@ class SettingsAccountController extends State { OkCancelResult.cancel) { return; } - if (await showOkCancelAlertDialog( - useRootNavigator: false, - context: context, - title: L10n.of(context)!.areYouSure, - okLabel: L10n.of(context)!.yes, - cancelLabel: L10n.of(context)!.cancel, - ) == - OkCancelResult.cancel) { + final supposedMxid = Matrix.of(context).client.userID!; + final mxids = await showTextInputDialog( + useRootNavigator: false, + context: context, + title: L10n.of(context)!.confirmMatrixId, + textFields: [ + DialogTextField( + validator: (text) => text == supposedMxid + ? null + : L10n.of(context)!.supposedMxid(supposedMxid), + ), + ], + okLabel: L10n.of(context)!.delete, + cancelLabel: L10n.of(context)!.cancel, + ); + if (mxids == null || mxids.length != 1 || mxids.single != supposedMxid) { return; } final input = await showTextInputDialog(