diff --git a/lib/l10n/intl_lv.arb b/lib/l10n/intl_lv.arb index fe9a04b45..267460a6c 100644 --- a/lib/l10n/intl_lv.arb +++ b/lib/l10n/intl_lv.arb @@ -3471,6 +3471,22 @@ "@thread": {}, "backToMainChat": "Atgriezties galvenajā tērzēšanā", "@backToMainChat": {}, + "saveChanges": "Saglabāt izmaiņas", + "@saveChanges": {}, + "createSticker": "Izveidot uzlīmi vai emocijzīmi", + "@createSticker": {}, + "useAsSticker": "Izmantot kā uzlīmi", + "@useAsSticker": {}, + "useAsEmoji": "Izmantot kā emocijzīmi", + "@useAsEmoji": {}, + "stickerPackNameAlreadyExists": "Uzlīmju pakas nosaukums jau pastāv", + "@stickerPackNameAlreadyExists": {}, + "newStickerPack": "Jauna uzlīmju paka", + "@newStickerPack": {}, + "stickerPackName": "Uzlīmju pakas nosaukums", + "@stickerPackName": {}, + "attribution": "Piedēvējums", + "@attribution": {}, "ignore": "Bloķēt", "ignoredUsers": "Bloķētie lietotāji", "writeAMessageLangCodes": "Rakstiet {l1} vai {l2}...", @@ -3514,7 +3530,6 @@ "updateLanguage": "Manas valodas", "whatLanguageYouWantToLearn": "Kuru valodu vēlaties iemācīties?", "whatIsYourBaseLanguage": "Kāda ir jūsu pamata valoda?", - "saveChanges": "Saglabāt izmaiņas", "publicProfileTitle": "Atļaut, lai manu profilu var atrast meklēšanā", "publicProfileDesc": "Ieslēdzot, jūs ļaujat citiem lietotājiem atrast jūsu profilu globālajā meklēšanas joslā un sūtīt pieprasījumus tērzēšanai. Šajā brīdī jūs varat izvēlēties pieņemt vai noraidīt pieprasījumu.", "errorDisableIT": "Tulkošanas palīdzība ir izslēgta.", @@ -4785,10 +4800,6 @@ "type": "String", "placeholders": {} }, - "@saveChanges": { - "type": "String", - "placeholders": {} - }, "@publicProfileTitle": { "type": "String", "placeholders": {} diff --git a/lib/pages/bootstrap/bootstrap_dialog.dart b/lib/pages/bootstrap/bootstrap_dialog.dart index 3d8a2c2ba..e1cdca0b9 100644 --- a/lib/pages/bootstrap/bootstrap_dialog.dart +++ b/lib/pages/bootstrap/bootstrap_dialog.dart @@ -1,3 +1,5 @@ +import 'dart:async'; + import 'package:flutter/material.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; @@ -419,8 +421,33 @@ class BootstrapDialogState extends State { }, ); if (req.error != null) return; - await KeyVerificationDialog(request: req.result!) - .show(context); + final success = await KeyVerificationDialog( + request: req.result!, + ).show(context); + if (success != true) return; + if (!mounted) return; + + final waitForSecret = Completer(); + final secretsSub = client + .encryption!.ssss.onSecretStored.stream + .listen(( + event, + ) async { + if (await client.encryption!.keyManager + .isCached() && + await client.encryption!.crossSigning + .isCached()) { + waitForSecret.complete(); + } + }); + + final result = await showFutureLoadingDialog( + context: context, + future: () => waitForSecret.future, + ); + await secretsSub.cancel(); + if (!mounted) return; + if (!result.isError) _goBackAction(true); }, ), const SizedBox(height: 16), diff --git a/lib/pages/key_verification/key_verification_dialog.dart b/lib/pages/key_verification/key_verification_dialog.dart index cea371355..3562163c2 100644 --- a/lib/pages/key_verification/key_verification_dialog.dart +++ b/lib/pages/key_verification/key_verification_dialog.dart @@ -14,7 +14,7 @@ import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; class KeyVerificationDialog extends StatefulWidget { - Future show(BuildContext context) => showAdaptiveDialog( + Future show(BuildContext context) => showAdaptiveDialog( context: context, builder: (context) => this, barrierDismissible: false, @@ -186,9 +186,9 @@ class KeyVerificationPageState extends State { ); buttons.add( AdaptiveDialogAction( - onPressed: () => widget.request - .rejectVerification() - .then((_) => Navigator.of(context, rootNavigator: false).pop()), + onPressed: () => widget.request.rejectVerification().then( + (_) => Navigator.of(context, rootNavigator: false).pop(false), + ), child: Text( L10n.of(context).reject, style: TextStyle(color: theme.colorScheme.error), @@ -318,7 +318,8 @@ class KeyVerificationPageState extends State { child: Text( L10n.of(context).close, ), - onPressed: () => Navigator.of(context, rootNavigator: false).pop(), + onPressed: () => + Navigator.of(context, rootNavigator: false).pop(true), ), ); break; @@ -342,7 +343,8 @@ class KeyVerificationPageState extends State { child: Text( L10n.of(context).close, ), - onPressed: () => Navigator.of(context, rootNavigator: false).pop(), + onPressed: () => + Navigator.of(context, rootNavigator: false).pop(false), ), ); break;