diff --git a/src/com/android/settings/applications/InstalledAppDetailsTop.java b/src/com/android/settings/applications/InstalledAppDetailsTop.java index 2d9756afd91..039ed94da33 100644 --- a/src/com/android/settings/applications/InstalledAppDetailsTop.java +++ b/src/com/android/settings/applications/InstalledAppDetailsTop.java @@ -17,12 +17,28 @@ package com.android.settings.applications; import android.content.Intent; +import android.os.Bundle; +import android.util.FeatureFlagUtils; import com.android.settings.SettingsActivity; import com.android.settings.applications.appinfo.AppInfoDashboardFragment; +import com.android.settings.spa.SpaActivity; +import com.android.settings.spa.app.appsettings.AppSettingsProvider; public class InstalledAppDetailsTop extends SettingsActivity { + @Override + protected void onCreate(Bundle savedState) { + super.onCreate(savedState); + if (!FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_ENABLE_SPA)) { + return; + } + String packageName = super.getIntent().getData().getSchemeSpecificPart(); + SpaActivity.startSpaActivity( + this, AppSettingsProvider.INSTANCE.getRoute(packageName, getUserId())); + finish(); + } + @Override public Intent getIntent() { Intent modIntent = new Intent(super.getIntent()); diff --git a/src/com/android/settings/spa/app/appsettings/AppSettings.kt b/src/com/android/settings/spa/app/appsettings/AppSettings.kt index d0a230f1ddd..1221104644a 100644 --- a/src/com/android/settings/spa/app/appsettings/AppSettings.kt +++ b/src/com/android/settings/spa/app/appsettings/AppSettings.kt @@ -60,6 +60,13 @@ object AppSettingsProvider : SettingsPageProvider { @Composable fun navigator(app: ApplicationInfo) = navigator(route = "$name/${app.toRoute()}") + + /** + * Gets the route to the App Settings page. + * + * Expose route to enable enter from non-SPA pages. + */ + fun getRoute(packageName: String, userId: Int): String = "$name/$packageName/$userId" } @Composable