Fix SpaSearchLandingActivity.isValidCall()
SettingsIntelligence sometimes starts SearchResultTrampoline first,
in this case, SearchResultTrampoline checks if the call is valid, then
SearchResultTrampoline will start this SpaSearchLandingActivity, allow
this use case.
Fix: 370186204
Flag: EXEMPT bug fix
Test: manual - search roaming
Change-Id: Ib6b2c1d3b8754f478a637dda8e9df77a91b24d9e
diff --git a/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt b/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt
index 2c0955b..b94f52c 100644
--- a/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt
+++ b/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt
@@ -38,9 +38,17 @@
finish()
}
- private fun isValidCall() =
- PasswordUtils.getCallingAppPackageName(activityToken) ==
+ private fun isValidCall(): Boolean {
+ val callingAppPackageName = PasswordUtils.getCallingAppPackageName(activityToken)
+ if (callingAppPackageName == packageName) {
+ // SettingsIntelligence sometimes starts SearchResultTrampoline first, in this case,
+ // SearchResultTrampoline checks if the call is valid, then SearchResultTrampoline will
+ // start this activity, allow this use case.
+ return true
+ }
+ return callingAppPackageName ==
featureFactory.searchFeatureProvider.getSettingsIntelligencePkgName(this)
+ }
companion object {
@VisibleForTesting