From 33619228345b181f6f35e82e530d2aad85ee8eb7 Mon Sep 17 00:00:00 2001 From: akwizgran <michael@briarproject.org> Date: Tue, 20 Mar 2018 11:43:44 +0000 Subject: [PATCH] Don't create a stack of QR code fragments. --- .../android/keyagreement/KeyAgreementActivity.java | 14 +++++++++----- .../android/keyagreement/ShowQrCodeFragment.java | 3 ++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java index c960ffe9bf..ea539e0662 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java @@ -9,6 +9,7 @@ import android.content.IntentFilter; import android.os.Bundle; import android.support.annotation.UiThread; import android.support.v4.app.ActivityCompat; +import android.support.v4.app.FragmentManager; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog.Builder; import android.support.v7.widget.Toolbar; @@ -206,11 +207,14 @@ public class KeyAgreementActivity extends BriarActivity implements private void showQrCodeFragment() { // FIXME #824 - BaseFragment f = ShowQrCodeFragment.newInstance(); - getSupportFragmentManager().beginTransaction() - .replace(R.id.fragmentContainer, f, f.getUniqueTag()) - .addToBackStack(f.getUniqueTag()) - .commit(); + FragmentManager fm = getSupportFragmentManager(); + if (fm.findFragmentByTag(ShowQrCodeFragment.TAG) == null) { + BaseFragment f = ShowQrCodeFragment.newInstance(); + fm.beginTransaction() + .replace(R.id.fragmentContainer, f, f.getUniqueTag()) + .addToBackStack(f.getUniqueTag()) + .commit(); + } } private boolean checkPermissions() { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ShowQrCodeFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ShowQrCodeFragment.java index b89f630d10..b738425c31 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ShowQrCodeFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ShowQrCodeFragment.java @@ -61,7 +61,8 @@ import static java.util.logging.Level.WARNING; public class ShowQrCodeFragment extends BaseEventFragment implements QrCodeDecoder.ResultCallback { - private static final String TAG = ShowQrCodeFragment.class.getName(); + static final String TAG = ShowQrCodeFragment.class.getName(); + private static final Logger LOG = Logger.getLogger(TAG); private static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1"); -- GitLab