mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-17 23:18:27 +02:00
Merge branch 'feature/5184_restore_keys_from_backup' into 'develop'
MESSENGER-5148 Restore Backup option See merge request bwmessenger/bundesmessenger/bundesmessenger-ios!254
This commit is contained in:
@@ -698,5 +698,8 @@ class BWIBuildSettings: NSObject {
|
||||
|
||||
// shows the grey/green/red shield for the room avatar / user avatar
|
||||
var showEncryptionStatusBadgeOnAvatar = false
|
||||
|
||||
// MARK: Backup restore
|
||||
var enableRestoreKeysFromBackup = true
|
||||
|
||||
}
|
||||
|
||||
@@ -652,3 +652,6 @@
|
||||
// MARK: - Crypto Store migration
|
||||
"bwi_launch_loading_crypto_store_migration_info" = "Die Ver-/Entschlüsselung von Nachrichten wird verbessert, dies kann ein paar Minuten dauern, bitte schließe die App nicht. Verbesserung läuft.";
|
||||
|
||||
// MARK: Secure backup recovery
|
||||
"security_settings_secure_backup" = "Nachrichten wiederherstellen";
|
||||
"security_settings_secure_backup_info_valid" = "Sofern du Probleme mit nicht-entschlüsselbaren Nachrichten hast, kann es helfen, die Schlüssel neu abzurufen. Klicke hierzu auf den Button und warte solange, bis alle Schlüssel wiederhergestellt wurden. Die App muss dazu geöffnet bleiben.";
|
||||
|
||||
@@ -2718,7 +2718,7 @@
|
||||
"poll_history_load_more" = "Weitere Umfragen laden";
|
||||
"poll_history_loading_text" = "Zeige Umfragen an";
|
||||
"poll_history_fetching_error" = "Fehler beim Laden der Umfragen.";
|
||||
"key_backup_recover_from_private_key_progress" = "%@% % abgeschlossen";
|
||||
"key_backup_recover_from_private_key_progress" = "%@ %% abgeschlossen";
|
||||
"voice_broadcast_playback_unable_to_decrypt" = "Entschlüsseln der Sprachübertragung nicht möglich.";
|
||||
"home_context_menu_mark_as_unread" = "Als ungelesen markieren";
|
||||
"wysiwyg_composer_format_action_un_indent" = "Einrückung verringern";
|
||||
|
||||
@@ -561,3 +561,7 @@
|
||||
|
||||
// MARK: - Crypto Store migration
|
||||
"bwi_launch_loading_crypto_store_migration_info" = "Message encryption/decryption has been updated to improve app performance, this may take a few minutes. Please do not close the app during the update. The update is running.";
|
||||
|
||||
// MARK: Secure backup recovery
|
||||
"security_settings_secure_backup" = "Restore Messages";
|
||||
"security_settings_secure_backup_info_valid" = "If you have problems with messages that cannot be decrypted, it may help to retrieve the keys again. To do this, click on the button and wait until all keys have been restored. The app must remain open for this.";
|
||||
|
||||
@@ -1495,10 +1495,18 @@ public class BWIL10n: NSObject {
|
||||
public static var securitySettingsCryptoSessionsDescription: String {
|
||||
return BWIL10n.tr("Bwi", "security_settings_crypto_sessions_description")
|
||||
}
|
||||
/// Nachrichten wiederherstellen
|
||||
public static var securitySettingsSecureBackup: String {
|
||||
return BWIL10n.tr("Bwi", "security_settings_secure_backup")
|
||||
}
|
||||
/// Lösche
|
||||
public static var securitySettingsSecureBackupDelete: String {
|
||||
return BWIL10n.tr("Bwi", "security_settings_secure_backup_delete")
|
||||
}
|
||||
/// Sofern du Probleme mit nicht-entschlüsselbaren Nachrichten hast, kann es helfen, die Schlüssel neu abzurufen. Klicke hierzu auf den Button und warte solange, bis alle Schlüssel wiederhergestellt wurden. Die App muss dazu geöffnet bleiben.
|
||||
public static var securitySettingsSecureBackupInfoValid: String {
|
||||
return BWIL10n.tr("Bwi", "security_settings_secure_backup_info_valid")
|
||||
}
|
||||
/// Bestätige deine Identität durch Eingabe des Passwort
|
||||
public static var securitySettingsUserPasswordDescription: String {
|
||||
return BWIL10n.tr("Bwi", "security_settings_user_password_description")
|
||||
|
||||
@@ -123,6 +123,12 @@ private enum BackupRows {
|
||||
|
||||
let backupRows: [BackupRows]
|
||||
|
||||
// bwi 5184: remove:
|
||||
// .deleteKeyBackupAction(keyBackupVersion: keyBackupVersion),
|
||||
// .resetSecureBackupAction
|
||||
// to avoid many confusing if clauses
|
||||
// same reasoning for text changes
|
||||
|
||||
switch self.viewState {
|
||||
case .loading:
|
||||
backupRows = [
|
||||
@@ -143,21 +149,18 @@ private enum BackupRows {
|
||||
case .keyBackup(let keyBackupVersion, _, let progress):
|
||||
if let progress = progress {
|
||||
backupRows = [
|
||||
.info(text: importProgressText(for: progress)),
|
||||
.deleteKeyBackupAction(keyBackupVersion: keyBackupVersion)
|
||||
.info(text: importProgressText(for: progress))
|
||||
]
|
||||
} else {
|
||||
backupRows = [
|
||||
.info(text: VectorL10n.securitySettingsSecureBackupInfoValid),
|
||||
.restoreFromKeyBackupAction(keyBackupVersion: keyBackupVersion, title: VectorL10n.securitySettingsSecureBackupRestore),
|
||||
.deleteKeyBackupAction(keyBackupVersion: keyBackupVersion)
|
||||
.info(text: BWIL10n.securitySettingsSecureBackupInfoValid),
|
||||
.restoreFromKeyBackupAction(keyBackupVersion: keyBackupVersion, title: VectorL10n.securitySettingsSecureBackupRestore)
|
||||
]
|
||||
}
|
||||
case .keyBackupNotTrusted(let keyBackupVersion, _):
|
||||
backupRows = [
|
||||
.info(text: VectorL10n.securitySettingsSecureBackupInfoValid),
|
||||
.restoreFromKeyBackupAction(keyBackupVersion: keyBackupVersion, title: VectorL10n.securitySettingsSecureBackupRestore),
|
||||
.deleteKeyBackupAction(keyBackupVersion: keyBackupVersion)
|
||||
.info(text: BWIL10n.securitySettingsSecureBackupInfoValid),
|
||||
.restoreFromKeyBackupAction(keyBackupVersion: keyBackupVersion, title: VectorL10n.securitySettingsSecureBackupRestore)
|
||||
]
|
||||
}
|
||||
case .secureBackup(let keyBackupState):
|
||||
@@ -169,33 +172,27 @@ private enum BackupRows {
|
||||
|
||||
backupRows = [
|
||||
.info(text: infoText),
|
||||
.createKeyBackupAction,
|
||||
.resetSecureBackupAction
|
||||
.createKeyBackupAction
|
||||
]
|
||||
case .keyBackup(let keyBackupVersion, _, let progress):
|
||||
if let progress = progress {
|
||||
backupRows = [
|
||||
.info(text: importProgressText(for: progress)),
|
||||
.deleteKeyBackupAction(keyBackupVersion: keyBackupVersion),
|
||||
.resetSecureBackupAction
|
||||
.info(text: importProgressText(for: progress))
|
||||
]
|
||||
} else {
|
||||
backupRows = [
|
||||
.info(text: VectorL10n.securitySettingsSecureBackupInfoValid),
|
||||
.restoreFromKeyBackupAction(keyBackupVersion: keyBackupVersion, title: VectorL10n.securitySettingsSecureBackupRestore),
|
||||
.deleteKeyBackupAction(keyBackupVersion: keyBackupVersion),
|
||||
.resetSecureBackupAction
|
||||
.info(text: BWIL10n.securitySettingsSecureBackupInfoValid),
|
||||
.restoreFromKeyBackupAction(keyBackupVersion: keyBackupVersion, title: VectorL10n.securitySettingsSecureBackupRestore)
|
||||
]
|
||||
}
|
||||
case .keyBackupNotTrusted(let keyBackupVersion, _):
|
||||
backupRows = [
|
||||
.info(text: VectorL10n.securitySettingsSecureBackupInfoValid),
|
||||
.restoreFromKeyBackupAction(keyBackupVersion: keyBackupVersion, title: VectorL10n.securitySettingsSecureBackupRestore),
|
||||
.deleteKeyBackupAction(keyBackupVersion: keyBackupVersion),
|
||||
.resetSecureBackupAction
|
||||
.info(text: BWIL10n.securitySettingsSecureBackupInfoValid),
|
||||
.restoreFromKeyBackupAction(keyBackupVersion: keyBackupVersion, title: VectorL10n.securitySettingsSecureBackupRestore)
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
self.backupRows = backupRows
|
||||
}
|
||||
|
||||
|
||||
@@ -326,16 +326,7 @@ TableViewSectionsDelegate>
|
||||
}
|
||||
|
||||
[sections addObject:pinCodeSection];
|
||||
|
||||
// BWI: if tracking is enabled show switch to turn it on/off
|
||||
if (BWIBuildSettings.shared.bwiMatomoEnabled) {
|
||||
Section *analyticsSection = [Section sectionWithTag:SECTION_ANALYTICS];
|
||||
[analyticsSection addRowWithTag:ANALYTICS_ENABLED];
|
||||
analyticsSection.headerTitle = BWIL10n.bwiSettingsAnalyticsSectionHeader;
|
||||
analyticsSection.footerTitle = BWIL10n.bwiSettingsAnalyticsSectionFooter;
|
||||
[sections addObject:analyticsSection];
|
||||
}
|
||||
|
||||
|
||||
// Crypto sessions section
|
||||
if (RiotSettings.shared.settingsSecurityScreenShowSessions && !RiotSettings.shared.enableNewSessionManager && !BWIBuildSettings.shared.enableNewSessionManagerByDefault)
|
||||
{
|
||||
@@ -360,17 +351,31 @@ TableViewSectionsDelegate>
|
||||
|
||||
// Secure backup
|
||||
|
||||
if (!isSecureBackupRequired)
|
||||
// bwi 5184: Show on featureflag and only when device has a private key otherwise there will be errors in the process
|
||||
// Devices in our case should private keys
|
||||
if ((!isSecureBackupRequired || BWIBuildSettings.shared.enableRestoreKeysFromBackup) && self.mainSession.crypto.backup.hasPrivateKeyInCryptoStore)
|
||||
{
|
||||
Section *secureBackupSection = [Section sectionWithTag:SECTION_SECURE_BACKUP];
|
||||
secureBackupSection.headerTitle = [VectorL10n securitySettingsSecureBackup];
|
||||
secureBackupSection.footerTitle = VectorL10n.securitySettingsSecureBackupDescription;
|
||||
|
||||
secureBackupSection.headerTitle = [BWIL10n securitySettingsSecureBackup];
|
||||
|
||||
if (!BWIBuildSettings.shared.enableRestoreKeysFromBackup) {
|
||||
secureBackupSection.footerTitle = VectorL10n.securitySettingsSecureBackupDescription;
|
||||
}
|
||||
|
||||
[secureBackupSection addRowsWithCount:self->secureBackupSection.numberOfRows];
|
||||
|
||||
[sections addObject:secureBackupSection];
|
||||
}
|
||||
|
||||
// BWI: if tracking is enabled show switch to turn it on/off
|
||||
if (BWIBuildSettings.shared.bwiMatomoEnabled) {
|
||||
Section *analyticsSection = [Section sectionWithTag:SECTION_ANALYTICS];
|
||||
[analyticsSection addRowWithTag:ANALYTICS_ENABLED];
|
||||
analyticsSection.headerTitle = BWIL10n.bwiSettingsAnalyticsSectionHeader;
|
||||
analyticsSection.footerTitle = BWIL10n.bwiSettingsAnalyticsSectionFooter;
|
||||
[sections addObject:analyticsSection];
|
||||
}
|
||||
|
||||
// Cross-Signing
|
||||
|
||||
// bwi: hide cross signing section
|
||||
|
||||
Reference in New Issue
Block a user