diff --git a/src/components/views/dialogs/keybackup/RestoreKeyBackupDialog.js b/src/components/views/dialogs/keybackup/RestoreKeyBackupDialog.js index fdb4f0a226..e5b82baa92 100644 --- a/src/components/views/dialogs/keybackup/RestoreKeyBackupDialog.js +++ b/src/components/views/dialogs/keybackup/RestoreKeyBackupDialog.js @@ -21,6 +21,9 @@ import Modal from '../../../../Modal'; import { _t } from '../../../../languageHandler'; +const RESTORE_TYPE_PASSPHRASE = 0; +const RESTORE_TYPE_RECOVERYKEY = 1; + /** * Dialog for restoring e2e keys from a backup and the user's recovery key */ @@ -36,6 +39,7 @@ export default React.createClass({ recoveryKeyValid: false, forceRecoveryKey: false, passPhrase: '', + restoreType: null, }; }, @@ -80,6 +84,7 @@ export default React.createClass({ this.setState({ loading: true, restoreError: null, + restoreType: RESTORE_TYPE_PASSPHRASE, }); try { const recoverInfo = await MatrixClientPeg.get().restoreKeyBackupWithPassword( @@ -102,6 +107,7 @@ export default React.createClass({ this.setState({ loading: true, restoreError: null, + restoreType: RESTORE_TYPE_PASSPHRASE, }); try { const recoverInfo = await MatrixClientPeg.get().restoreKeyBackupWithRecoveryKey( @@ -184,14 +190,27 @@ export default React.createClass({ } else if (this.state.backupInfo === null) { title = _t("Error"); content = _t("No backup found!"); - } else if (this.state.recoverInfo && this.state.recoverInfo.imported === 0) { + } else if ( + this.state.recoverInfo && + this.state.recoverInfo.imported === 0 && + this.state.recoverInfo.total > 0 + ) { title = _t("Error Restoring Backup"); - content =
-

{_t( - "Backup could not be decrypted with this key: " + - "please verify that you entered the correct recovery key.", - )}

-
; + if (this.state.restoreType === RESTORE_TYPE_RECOVERYKEY) { + content =
+

{_t( + "Backup could not be decrypted with this key: " + + "please verify that you entered the correct recovery key.", + )}

+
; + } else { + content =
+

{_t( + "Backup could not be decrypted with this passphrase: " + + "please verify that you entered the correct recovery passphrase.", + )}

+
; + } } else if (this.state.recoverInfo) { title = _t("Backup Restored"); let failedToDecrypt; diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index d8a0f8cf57..e1dc9ffe77 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -1098,6 +1098,7 @@ "No backup found!": "No backup found!", "Error Restoring Backup": "Error Restoring Backup", "Backup could not be decrypted with this key: please verify that you entered the correct recovery key.": "Backup could not be decrypted with this key: please verify that you entered the correct recovery key.", + "Backup could not be decrypted with this passphrase: please verify that you entered the correct recovery passphrase.": "Backup could not be decrypted with this passphrase: please verify that you entered the correct recovery passphrase.", "Backup Restored": "Backup Restored", "Failed to decrypt %(failedCount)s sessions!": "Failed to decrypt %(failedCount)s sessions!", "Restored %(sessionCount)s session keys": "Restored %(sessionCount)s session keys",