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