From 3ac7d71f8a7bef133e1428496abbaf9facbef2aa Mon Sep 17 00:00:00 2001 From: ameba23 Date: Thu, 22 Apr 2021 11:04:24 +0200 Subject: [PATCH] Change to fail state if no backup found --- .../socialbackup/recover/RestoreAccountViewModel.java | 8 +++++++- .../briar/api/socialbackup/recovery/RestoreAccount.java | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/recover/RestoreAccountViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/recover/RestoreAccountViewModel.java index b4cb07902..d7708b225 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/recover/RestoreAccountViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/recover/RestoreAccountViewModel.java @@ -11,6 +11,7 @@ import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.android.account.DozeHelper; import org.briarproject.briar.android.viewmodel.LiveEvent; import org.briarproject.briar.android.viewmodel.MutableLiveEvent; +import org.briarproject.briar.api.socialbackup.SocialBackup; import org.briarproject.briar.api.socialbackup.recovery.RestoreAccount; import java.util.concurrent.Executor; @@ -107,7 +108,12 @@ class RestoreAccountViewModel extends AndroidViewModel { // if (authorName == null) throw new IllegalStateException(); if (password == null) throw new IllegalStateException(); isCreatingAccount.setValue(true); - Identity identity = restoreAccount.getSocialBackup().getIdentity(); + SocialBackup socialBackup = restoreAccount.getSocialBackup(); + if (socialBackup == null) { + LOG.warning("Cannot retrieve social backup"); + state.postEvent(State.FAILED); + } + Identity identity = socialBackup.getIdentity(); ioExecutor.execute(() -> { if (accountManager.restoreAccount(identity, password)) { LOG.info("Restore account"); diff --git a/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/recovery/RestoreAccount.java b/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/recovery/RestoreAccount.java index 9cfbc85ae..32b5e5030 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/recovery/RestoreAccount.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/recovery/RestoreAccount.java @@ -7,9 +7,14 @@ import org.briarproject.briar.api.socialbackup.SocialBackup; import java.security.GeneralSecurityException; public interface RestoreAccount { + int getNumberOfShards(); - boolean addReturnShardPayload(ReturnShardPayload toadd); + + boolean addReturnShardPayload(ReturnShardPayload toAdd); + boolean canRecover(); + int recover() throws FormatException, GeneralSecurityException; + SocialBackup getSocialBackup(); }