From 88e20ec62e76570f7684f68c08215c5cfde09a85 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Fri, 24 Mar 2023 22:57:48 +0800 Subject: [PATCH] Fix SpaActivity launched twice for App Info This happens when shouldShowTwoPaneDeepLink() return true, the InstalledAppDetailsTop onCreate() is called twice. Only try start spa when the activity is not finishing to fix. Bug: 236346018 Test: Manually with Settings Change-Id: I4b09fba0733a6451a2ba6fd90960f9151692a2ad --- .../applications/InstalledAppDetailsTop.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/applications/InstalledAppDetailsTop.java b/src/com/android/settings/applications/InstalledAppDetailsTop.java index 63e04519845..a1bd7200c80 100644 --- a/src/com/android/settings/applications/InstalledAppDetailsTop.java +++ b/src/com/android/settings/applications/InstalledAppDetailsTop.java @@ -17,6 +17,7 @@ package com.android.settings.applications; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.util.FeatureFlagUtils; @@ -30,12 +31,16 @@ public class InstalledAppDetailsTop extends SettingsActivity { @Override protected void onCreate(Bundle savedState) { super.onCreate(savedState); - if (!FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_ENABLE_SPA)) { + if (isFinishing() || + !FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_ENABLE_SPA)) { return; } - String packageName = super.getIntent().getData().getSchemeSpecificPart(); - SpaActivity.startSpaActivity( - this, AppInfoSettingsProvider.INSTANCE.getRoute(packageName, getUserId())); + Uri data = super.getIntent().getData(); + if (data != null) { + String packageName = data.getSchemeSpecificPart(); + String route = AppInfoSettingsProvider.INSTANCE.getRoute(packageName, getUserId()); + SpaActivity.startSpaActivity(this, route); + } finish(); }