From 0caa522f07bf67b67d854c21ac70e4ada4ca330f Mon Sep 17 00:00:00 2001 From: akwizgran Date: Tue, 27 Oct 2020 17:37:22 +0000 Subject: [PATCH] Remove error message, return to intro fragment when retrying. --- .../keyagreement/ContactExchangeActivity.java | 7 ++----- .../ContactExchangeErrorFragment.java | 19 +++++++++++++------ briar-android/src/main/res/values/strings.xml | 1 - 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeActivity.java index f18c41f75..222fba77b 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeActivity.java @@ -9,7 +9,6 @@ import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; -import org.briarproject.briar.android.fragment.BaseFragment; import javax.annotation.Nullable; import javax.inject.Inject; @@ -114,9 +113,7 @@ public class ContactExchangeActivity extends KeyAgreementActivity { return getString(R.string.exchanging_contact_details); } - protected void showErrorFragment() { - String errorMsg = getString(R.string.connection_error_explanation); - BaseFragment f = ContactExchangeErrorFragment.newInstance(errorMsg); - showNextFragment(f); + private void showErrorFragment() { + showNextFragment(new ContactExchangeErrorFragment()); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeErrorFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeErrorFragment.java index 733b50a6a..2ed8ce6e4 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeErrorFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeErrorFragment.java @@ -1,5 +1,6 @@ package org.briarproject.briar.android.keyagreement; +import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -18,7 +19,10 @@ import org.briarproject.briar.android.util.UiUtils; import javax.inject.Inject; import androidx.annotation.Nullable; +import androidx.fragment.app.FragmentActivity; +import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; +import static android.view.View.GONE; import static org.briarproject.briar.android.util.UiUtils.onSingleLinkClick; @MethodsNotNullByDefault @@ -58,13 +62,12 @@ public class ContactExchangeErrorFragment extends BaseFragment { View v = inflater.inflate(R.layout.fragment_error_contact_exchange, container, false); - // set humanized error message + // set optional error message TextView explanation = v.findViewById(R.id.errorMessage); Bundle args = getArguments(); - if (args == null) { - throw new IllegalArgumentException("Use newInstance()"); - } - explanation.setText(args.getString(ERROR_MSG)); + String errorMessage = args == null ? null : args.getString(ERROR_MSG); + if (errorMessage == null) explanation.setVisibility(GONE); + else explanation.setText(args.getString(ERROR_MSG)); // make feedback link clickable TextView sendFeedback = v.findViewById(R.id.sendFeedback); @@ -73,7 +76,11 @@ public class ContactExchangeErrorFragment extends BaseFragment { // buttons Button tryAgain = v.findViewById(R.id.tryAgainButton); tryAgain.setOnClickListener(view -> { - if (getActivity() != null) getActivity().onBackPressed(); + // Recreate the activity so we return to the intro fragment + FragmentActivity activity = requireActivity(); + Intent i = new Intent(activity, ContactExchangeActivity.class); + i.setFlags(FLAG_ACTIVITY_CLEAR_TOP); + activity.startActivity(i); }); Button cancel = v.findViewById(R.id.cancelButton); cancel.setOnClickListener(view -> finish()); diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index b603ca30f..66cd51313 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -210,7 +210,6 @@ Connecting to device\u2026 Authenticating with device\u2026 Could not connect to your contact - Please check that you\'re both connected to the same Wi-Fi network. If this problem persists, please send feedback to help us improve the app.