diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java
index 8c5f16b32..4f2bd00ea 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java
@@ -15,6 +15,7 @@ import org.briarproject.briar.android.fragment.FinalFragment;
import javax.inject.Inject;
import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProvider;
@@ -53,7 +54,8 @@ public class MailboxActivity extends BriarActivity {
viewModel.getPairingState().observeEvent(this, state -> {
if (state instanceof MailboxState.NotSetup) {
- onNotSetup();
+ MailboxState.NotSetup s = (MailboxState.NotSetup) state;
+ onNotSetup(s.tellUserToWipeMailbox);
} else if (state instanceof MailboxState.ShowDownload) {
onShowDownload();
} else if (state instanceof MailboxState.ScanningQrCode) {
@@ -95,8 +97,17 @@ public class MailboxActivity extends BriarActivity {
}
}
- private void onNotSetup() {
+ private void onNotSetup(boolean tellUserToWipeMailbox) {
progressBar.setVisibility(INVISIBLE);
+ if (tellUserToWipeMailbox) {
+ AlertDialog.Builder builder =
+ new AlertDialog.Builder(this, R.style.BriarDialogTheme);
+ builder.setTitle(R.string.mailbox_status_unlink_no_wipe_title);
+ builder.setMessage(R.string.mailbox_status_unlink_no_wipe_message);
+ builder.setNeutralButton(R.string.got_it,
+ (dialog, which) -> dialog.cancel());
+ builder.show();
+ }
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragmentContainer, new SetupIntroFragment(),
SetupIntroFragment.TAG)
@@ -126,7 +137,7 @@ public class MailboxActivity extends BriarActivity {
if (fm.getBackStackEntryCount() == 0) {
// We re-launched into an existing state,
// need to re-populate the back stack.
- onNotSetup();
+ onNotSetup(false);
onShowDownload();
}
Fragment f;
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxState.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxState.java
index 4fcfdaf6a..532772103 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxState.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxState.java
@@ -5,6 +5,15 @@ import org.briarproject.bramble.api.mailbox.MailboxPairingState;
class MailboxState {
static class NotSetup extends MailboxState {
+ final boolean tellUserToWipeMailbox;
+
+ NotSetup() {
+ this(false);
+ }
+
+ NotSetup(boolean tellUserToWipeMailbox) {
+ this.tellUserToWipeMailbox = tellUserToWipeMailbox;
+ }
}
static class ShowDownload extends MailboxState {
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxViewModel.java
index eeacb180e..e74e8fc6c 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxViewModel.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxViewModel.java
@@ -225,8 +225,8 @@ class MailboxViewModel extends DbViewModel
void unlink() {
ioExecutor.execute(() -> {
try {
- mailboxManager.unPair();
- pairingState.postEvent(new MailboxState.NotSetup());
+ boolean wasWiped = mailboxManager.unPair();
+ pairingState.postEvent(new MailboxState.NotSetup(!wasWiped));
} catch (DbException e) {
handleException(e);
}
diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml
index ad98a1a7d..b7c3e3f1b 100644
--- a/briar-android/src/main/res/values/strings.xml
+++ b/briar-android/src/main/res/values/strings.xml
@@ -654,6 +654,8 @@
Unlink mailbox?
Are you sure you want to unlink your Mailbox?
If you unlink your Mailbox, you won\'t be able to receive messages while Briar is offline.
+ Your Mailbox has been unlinked
+ Next time you have access to your Mailbox device, please open the Mailbox app and tap the \"Unlink\" button to complete the process.\n\nIf you no longer have access to your Mailbox device, don\'t worry. Everything stored in your Mailbox is encrypted, so your data will remain secure even if you don\'t complete the process.
Disappearing messages