Show warning if own mailbox's API version is incompatible

This commit is contained in:
Torsten Grote
2022-05-27 09:46:13 -03:00
parent 0f4aa8027a
commit cc7de2c70a
3 changed files with 21 additions and 28 deletions

View File

@@ -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);

View File

@@ -208,16 +208,12 @@ class MailboxViewModel extends DbViewModel
LiveData<Boolean> checkConnection() {
MutableLiveData<Boolean> 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(() -> {

View File

@@ -640,6 +640,7 @@
<string name="mailbox_status_connected_title">Mailbox is running</string>
<string name="mailbox_status_problem_title">Briar is having trouble connecting to the Mailbox</string>
<string name="mailbox_status_failure_title">Mailbox is unavailable</string>
<string name="mailbox_status_incompatible_title">Mailbox is incompatible. Ensure Briar and Mailbox are updated to latest version.</string>
<string name="mailbox_status_check_button">Check Connection</string>
<!-- Example for string substitution: Last connection: 3min ago-->
<string name="mailbox_status_connected_info">Last connection: %s</string>