From 80e709f9268cc342e48d4bd46c48db85b57f929e Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 25 Jun 2024 17:32:23 +0000 Subject: [PATCH] Allow overriding DeviceDiagnosticsPreferenceController. Allow devices to specify their own flags by overriding this class. Additionally, fix a missing PackageManager lookup in getIntent(). Bug: 348647186 Test: launch Settings on Pixel and on AOSP (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:287181169485eb30203c7b698b1f8ee618059e29) Merged-In: I2489a64804f068a957f9be3f87847d6911b24447 Change-Id: I2489a64804f068a957f9be3f87847d6911b24447 --- .../system/DeviceDiagnosticsPreferenceController.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/system/DeviceDiagnosticsPreferenceController.kt b/src/com/android/settings/system/DeviceDiagnosticsPreferenceController.kt index 695bb5bdea9..d68380446d4 100644 --- a/src/com/android/settings/system/DeviceDiagnosticsPreferenceController.kt +++ b/src/com/android/settings/system/DeviceDiagnosticsPreferenceController.kt @@ -26,7 +26,7 @@ import com.android.settings.R import com.android.settings.core.BasePreferenceController import com.android.settings.flags.Flags -class DeviceDiagnosticsPreferenceController(context: Context, preferenceKey: String) : +open class DeviceDiagnosticsPreferenceController(context: Context, preferenceKey: String) : BasePreferenceController(context, preferenceKey) { override fun getAvailabilityStatus(): Int { @@ -59,6 +59,12 @@ class DeviceDiagnosticsPreferenceController(context: Context, preferenceKey: Str val packageName = mContext.getResources().getString( R.string.config_device_diagnostics_package_name) intent.setPackage(packageName) + + val info = mContext.getPackageManager().resolveActivity(intent, 0) + if (info == null) { + return null + } + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) return intent }