From e98393f09271bc980a9febbf37d78c58580f20e1 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 16 May 2019 19:00:53 +0200 Subject: [PATCH] use launchMode="singleTask", there can be only one SwapWorkflowActivity! * https://developer.android.com/reference/android/app/Activity.html#onNewIntent(android.content.Intent) * https://developer.android.com/guide/topics/manifest/activity-element#lmode * https://inthecheesefactory.com/blog/understand-android-activity-launchmode/en --- app/src/full/AndroidManifest.xml | 1 + .../fdroid/views/swap/SwapWorkflowActivity.java | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/app/src/full/AndroidManifest.xml b/app/src/full/AndroidManifest.xml index ed877de77..55ef16a6e 100644 --- a/app/src/full/AndroidManifest.xml +++ b/app/src/full/AndroidManifest.xml @@ -52,6 +52,7 @@ android:label="@string/swap" android:name=".views.swap.SwapWorkflowActivity" android:parentActivityName=".views.main.MainActivity" + android:launchMode="singleTask" android:theme="@style/SwapTheme.Wizard" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden"> diff --git a/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java b/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java index dd7a599da..83b8fec70 100644 --- a/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java +++ b/app/src/full/java/org/fdroid/fdroid/views/swap/SwapWorkflowActivity.java @@ -111,6 +111,7 @@ public class SwapWorkflowActivity extends AppCompatActivity { private Toolbar toolbar; private SwapView currentView; private boolean hasPreparedLocalRepo; + private boolean newIntent; private NewRepoConfig confirmSwapConfig; private LocalBroadcastManager localBroadcastManager; private WifiManager wifiManager; @@ -346,6 +347,11 @@ public class SwapWorkflowActivity extends AppCompatActivity { new IntentFilter(UpdateService.LOCAL_ACTION_STATUS)); checkIncomingIntent(); + + if (newIntent) { + showRelevantView(); + newIntent = false; + } } @Override @@ -357,6 +363,13 @@ public class SwapWorkflowActivity extends AppCompatActivity { localBroadcastManager.unregisterReceiver(repoUpdateReceiver); } + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + setIntent(intent); + newIntent = true; + } + /** * Check whether incoming {@link Intent} is a swap repo, and ensure that * it is a valid swap URL. The hostname can only be either an IP or