Move check for common mailbox versions into a helper method

and use this in the UI for knowing which app needs to be updated.
This commit is contained in:
Torsten Grote
2022-06-03 12:05:15 -03:00
parent cc7de2c70a
commit 08bf13e44f
13 changed files with 155 additions and 33 deletions

View File

@@ -36,6 +36,7 @@ import static android.view.View.VISIBLE;
import static androidx.core.content.ContextCompat.getColor;
import static androidx.core.widget.ImageViewCompat.setImageTintList;
import static androidx.transition.TransitionManager.beginDelayedTransition;
import static org.briarproject.bramble.api.mailbox.MailboxConstants.API_CLIENT_TOO_OLD;
import static org.briarproject.briar.android.AppModule.getAndroidComponent;
import static org.briarproject.briar.android.util.UiUtils.MIN_DATE_RESOLUTION;
import static org.briarproject.briar.android.util.UiUtils.formatDate;
@@ -58,8 +59,7 @@ public class MailboxStatusFragment extends Fragment {
private boolean showUnlinkWarning = true;
private ImageView imageView;
private TextView statusTitleView;
private TextView statusInfoView;
private TextView statusTitleView, statusMessageView, statusInfoView;
private Button wizardButton;
private Button unlinkButton;
private ProgressBar unlinkProgress;
@@ -94,6 +94,7 @@ public class MailboxStatusFragment extends Fragment {
imageView = v.findViewById(R.id.imageView);
statusTitleView = v.findViewById(R.id.statusTitleView);
statusMessageView = v.findViewById(R.id.statusMessageView);
statusInfoView = v.findViewById(R.id.statusInfoView);
viewModel.getStatus()
.observe(getViewLifecycleOwner(), this::onMailboxStateChanged);
@@ -132,6 +133,7 @@ public class MailboxStatusFragment extends Fragment {
@ColorRes int tintRes;
@DrawableRes int iconRes;
String title;
String message = null;
if (status.hasProblem(System.currentTimeMillis())) {
tintRes = R.color.briar_red_500;
title = getString(R.string.mailbox_status_failure_title);
@@ -144,9 +146,18 @@ public class MailboxStatusFragment extends Fragment {
tintRes = R.color.briar_orange_500;
showUnlinkWarning = false;
wizardButton.setVisibility(VISIBLE);
} else if (status.isMailboxIncompatible()) {
} else if (status.getMailboxCompatibility() < 0) {
tintRes = R.color.briar_red_500;
title = getString(R.string.mailbox_status_incompatible_title);
if (status.getMailboxCompatibility() == API_CLIENT_TOO_OLD) {
title = getString(R.string.mailbox_status_app_too_old_title);
message =
getString(R.string.mailbox_status_app_too_old_message);
} else {
title = getString(
R.string.mailbox_status_mailbox_too_old_title);
message = getString(
R.string.mailbox_status_mailbox_too_old_message);
}
iconRes = R.drawable.alerts_and_states_error;
showUnlinkWarning = true;
wizardButton.setVisibility(GONE);
@@ -161,6 +172,12 @@ public class MailboxStatusFragment extends Fragment {
int color = getColor(requireContext(), tintRes);
setImageTintList(imageView, ColorStateList.valueOf(color));
statusTitleView.setText(title);
if (message == null) {
statusMessageView.setVisibility(GONE);
} else {
statusMessageView.setVisibility(VISIBLE);
statusMessageView.setText(message);
}
long lastSuccess = status.getTimeOfLastSuccess();
String lastConnectionText;