From cc7de2c70a8f583702e980f41e66738694342ada Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 27 May 2022 09:46:13 -0300 Subject: [PATCH] Show warning if own mailbox's API version is incompatible --- .../mailbox/MailboxStatusFragment.java | 33 +++++++++++-------- .../android/mailbox/MailboxViewModel.java | 15 +-------- briar-android/src/main/res/values/strings.xml | 1 + 3 files changed, 21 insertions(+), 28 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java index cab83b649..e71cd48e6 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java @@ -47,7 +47,6 @@ import static org.briarproject.briar.android.util.UiUtils.showFragment; public class MailboxStatusFragment extends Fragment { static final String TAG = MailboxStatusFragment.class.getName(); - private static final int NUM_FAILURES = 4; @Inject ViewModelProvider.Factory viewModelFactory; @@ -133,24 +132,30 @@ public class MailboxStatusFragment extends Fragment { @ColorRes int tintRes; @DrawableRes int iconRes; String title; - if (status.getAttemptsSinceSuccess() == 0) { - iconRes = R.drawable.ic_check_circle_outline; - title = getString(R.string.mailbox_status_connected_title); - tintRes = R.color.briar_brand_green; - showUnlinkWarning = true; - wizardButton.setVisibility(GONE); - } else if (!status.hasProblem(System.currentTimeMillis())) { - iconRes = R.drawable.ic_help_outline_white; - title = getString(R.string.mailbox_status_problem_title); - tintRes = R.color.briar_orange_500; - showUnlinkWarning = false; - wizardButton.setVisibility(VISIBLE); - } else { + if (status.hasProblem(System.currentTimeMillis())) { tintRes = R.color.briar_red_500; title = getString(R.string.mailbox_status_failure_title); iconRes = R.drawable.alerts_and_states_error; showUnlinkWarning = false; wizardButton.setVisibility(VISIBLE); + } else if (status.getAttemptsSinceSuccess() > 0) { + iconRes = R.drawable.ic_help_outline_white; + title = getString(R.string.mailbox_status_problem_title); + tintRes = R.color.briar_orange_500; + showUnlinkWarning = false; + wizardButton.setVisibility(VISIBLE); + } else if (status.isMailboxIncompatible()) { + tintRes = R.color.briar_red_500; + title = getString(R.string.mailbox_status_incompatible_title); + iconRes = R.drawable.alerts_and_states_error; + showUnlinkWarning = true; + wizardButton.setVisibility(GONE); + } else { + iconRes = R.drawable.ic_check_circle_outline; + title = getString(R.string.mailbox_status_connected_title); + tintRes = R.color.briar_brand_green; + showUnlinkWarning = true; + wizardButton.setVisibility(GONE); } imageView.setImageResource(iconRes); int color = getColor(requireContext(), tintRes); 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 e10ee9402..7e511c457 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 @@ -208,16 +208,12 @@ class MailboxViewModel extends DbViewModel LiveData checkConnection() { MutableLiveData liveData = new MutableLiveData<>(); - checkConnection(success -> { - liveData.postValue(success); - if (!success) onConnectionCheckFailure(); - }); + checkConnection(liveData::postValue); return liveData; } void checkConnectionFromWizard() { checkConnection(success -> { - if (!success) onConnectionCheckFailure(); boolean isOnline = isTorActive(); // make UI move back to status fragment by changing pairingState pairingState.postEvent(new MailboxState.IsPaired(isOnline)); @@ -234,15 +230,6 @@ class MailboxViewModel extends DbViewModel }); } - private void onConnectionCheckFailure() { - MailboxStatus lastStatus = status.getValue(); - long lastSuccess = lastStatus == null ? - -1 : lastStatus.getTimeOfLastSuccess(); - long now = System.currentTimeMillis(); - // force failure screen - status.postValue(new MailboxStatus(now, lastSuccess, 999)); - } - @UiThread void unlink() { ioExecutor.execute(() -> { diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index f4e3acec8..1ebe6f851 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -640,6 +640,7 @@ Mailbox is running Briar is having trouble connecting to the Mailbox Mailbox is unavailable + Mailbox is incompatible. Ensure Briar and Mailbox are updated to latest version. Check Connection Last connection: %s