diff --git a/lib/l10n/intl_be.arb b/lib/l10n/intl_be.arb index 7cbbde823..1db2e5002 100644 --- a/lib/l10n/intl_be.arb +++ b/lib/l10n/intl_be.arb @@ -1969,7 +1969,7 @@ "@otherCallingPermissions": {}, "whyIsThisMessageEncrypted": "Чаму гэта паведамленне нельга прачытаць?", "@whyIsThisMessageEncrypted": {}, - "noKeyForThisMessage": "Гэта можа здарыцца з-за таго, што паведамленне было даслана да таго, як вы увайшлі ў уліковы запіс на гэтай прыладзе.\n\nТаксама верагодна, што адпраўшчык заблакіраваў вашу прыладу ці ў вас хібы з інтэрнэтам.\n\nВы можаце чытаць гэта паведамленне з іншага сеансу? Тад далліце паведамленне адтуль! Перайдзіце ў Налады > Прылады і пераканайцеся ў тым, што вашы прылады верыфікавалі адна адну. Калі вы адкрыеце пакой наступны раз і абодве сэсіі будуць запушчаны, ключы павінны сінхранізавацца аўтаматычна.\n\nВы не хаціце згубіць клбчы, калі будзеце выходзіць ці змяняць прылады? Пераканайцеся ў тым, што вы уключылі рэзервовае капіраванне чатаў у наладах.", + "noKeyForThisMessage": "Гэта можа здарыцца з-за таго, што паведамленне было даслана да таго, як вы увайшлі ў уліковы запіс на гэтай прыладзе.\n\nТаксама верагодна, што адпраўшчык заблакіраваў вашу прыладу ці ў вас хібы з інтэрнэтам.\n\nВы можаце чытаць гэта паведамленне з іншага сеансу? Тад дашліце паведамленне адтуль! Перайдзіце ў Налады > Прылады і пераканайцеся ў тым, што вашы прылады верыфікавалі адна адну. Калі вы адкрыеце пакой наступны раз і абодве сэсіі будуць запушчаны, ключы павінны сінхранізавацца аўтаматычна.\n\nВы не хаціце згубіць клбчы, калі будзеце выходзіць ці змяняць прылады? Пераканайцеся ў тым, што вы уключылі рэзервовае капіраванне чатаў у наладах.", "@noKeyForThisMessage": {}, "newGroup": "Новая група", "@newGroup": {}, @@ -2007,7 +2007,7 @@ }, "newSpaceDescription": "Прасторы дазваляюць аб'ядноўваць вашы чаты і ствараць агульныя ці асобныя супольнасці.", "@newSpaceDescription": {}, - "encryptThisChat": "Шывраваць гэты чат", + "encryptThisChat": "Шыфраваць гэты чат", "@encryptThisChat": {}, "disableEncryptionWarning": "У мэтах бяспекі, вы не можаце адклбчауь шыфраванне ў гэтым чаце, дзе яно было ўключана.", "@disableEncryptionWarning": {}, @@ -2138,11 +2138,11 @@ "@notificationRuleInviteForMeDescription": {}, "allDevices": "Усе прылады", "@allDevices": {}, - "crossVerifiedDevicesIfEnabled": "Перакрыжавана пацверджаныя прылады, калі ўключана", + "crossVerifiedDevicesIfEnabled": "З перакрыжаваным спраўджваннем прылад, калі ўключана", "@crossVerifiedDevicesIfEnabled": {}, - "crossVerifiedDevices": "Перакрыжавана пацверджаныя прылады", + "crossVerifiedDevices": "Перакрыжавана спраўджаныя прылады", "@crossVerifiedDevices": {}, - "verifiedDevicesOnly": "Толькі пацаерджаныя прылады", + "verifiedDevicesOnly": "Толькі спраўджаныя прылады", "@verifiedDevicesOnly": {}, "takeAPhoto": "Зрабіць здымак", "@takeAPhoto": {}, @@ -2812,9 +2812,9 @@ } } }, - "unverified": "Не праверана", + "unverified": "Не спраўджана", "@unverified": {}, - "verified": "Праверана", + "verified": "Спраўджана", "@verified": { "type": "String", "placeholders": {} diff --git a/lib/l10n/intl_eu.arb b/lib/l10n/intl_eu.arb index 6d69e64f0..fd822d2d2 100644 --- a/lib/l10n/intl_eu.arb +++ b/lib/l10n/intl_eu.arb @@ -3394,6 +3394,45 @@ "@pause": {}, "resume": "Jarraitu", "@resume": {}, + "moveToDifferentSpace": "Beste gune batera mugitu", + "@moveToDifferentSpace": {}, + "moveUp": "Eraman gora", + "@moveUp": {}, + "moveDown": "Eraman behera", + "@moveDown": {}, + "removeFromSpaceDescription": "Txata gunetik kenduko da, baina txaten zerrendan mantenduko da.", + "@removeFromSpaceDescription": {}, + "countChats": "{chats} txat", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "donate": "Egin dohaintza", + "@donate": {}, + "newSubSpace": "Azpi-gune berria", + "@newSubSpace": {}, + "spaceMemberOf": "{spaces} guneko kidea", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "{spaces} guneko kideak sartzeko baimena eska dezake", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, "writeAMessageLangCodes": "Idatzi {l1} edo {l2}...", "requests": "Eskariak", "holdForInfo": "Klikatu eta eutsi hitzaren informazioarentzat.", diff --git a/lib/pages/chat_access_settings/chat_access_settings_controller.dart b/lib/pages/chat_access_settings/chat_access_settings_controller.dart index 4ccb9527f..6ddd95894 100644 --- a/lib/pages/chat_access_settings/chat_access_settings_controller.dart +++ b/lib/pages/chat_access_settings/chat_access_settings_controller.dart @@ -204,7 +204,6 @@ class ChatAccessSettingsController extends State { if (newVersion == null || OkCancelResult.cancel == await showOkCancelAlertDialog( - useRootNavigator: false, context: context, okLabel: L10n.of(context).yes, cancelLabel: L10n.of(context).cancel, @@ -216,7 +215,40 @@ class ChatAccessSettingsController extends State { } final result = await showFutureLoadingDialog( context: context, - future: () => room.client.upgradeRoom(room.id, newVersion), + futureWithProgress: (onProgress) async { + final newRoomId = await room.client.upgradeRoom(room.id, newVersion); + var newRoom = room.client.getRoomById(newRoomId); + while (newRoom == null) { + await room.client.onSync.stream.first; + newRoom = room.client.getRoomById(newRoomId); + } + + if ({JoinRules.invite, JoinRules.knock, JoinRules.knockRestricted} + .contains(room.joinRules)) { + final users = await room.requestParticipants([ + Membership.join, + Membership.invite, + ]); + users.removeWhere((user) => user.id == room.client.userID); + for (final (i, user) in users.indexed) { + try { + Logs().v('Inviting...', user.id); + await newRoom.invite(user.id); + onProgress(i / users.length); + } on MatrixException catch (e) { + final retryAfterMs = e.retryAfterMs; + if (e.error != MatrixError.M_LIMIT_EXCEEDED || + retryAfterMs == null) { + rethrow; + } + Logs().d('Limit exceeded. Retry after $retryAfterMs'); + await Future.delayed(Duration(milliseconds: retryAfterMs)); + await newRoom.invite(user.id); + onProgress(i / users.length); + } + } + } + }, ); if (result.error != null) return; if (!mounted) return; diff --git a/pubspec.lock b/pubspec.lock index 7c0755760..61ddc3288 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -389,10 +389,10 @@ packages: dependency: "direct main" description: name: cross_file - sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" + sha256: "942a4791cd385a68ccb3b32c71c427aba508a1bb949b86dff2adbe4049f16239" url: "https://pub.dev" source: hosted - version: "0.3.4+2" + version: "0.3.5" crypto: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 50b4f546d..c65e3bd39 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,7 +20,7 @@ dependencies: blurhash_dart: ^1.2.1 chewie: ^1.13.0 collection: ^1.18.0 - cross_file: ^0.3.4+2 + cross_file: ^0.3.5 confetti: ^0.8.0 cupertino_icons: any # #Pangea