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.