diff --git a/res/values/config.xml b/res/values/config.xml
index e29b3b27993..261e605a8d7 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -266,6 +266,11 @@
com.android.settings.intelligence
+
+
+
+ com.google.android.settings.intelligence
+
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 83a1b36271c..756d5213ff0 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -1286,6 +1286,15 @@ public final class Utils extends com.android.settingslib.Utils {
return false;
}
+ public static String getAsiPackage(Context context) {
+ final boolean isGoogleAsiInstalled = com.android.internal.util.evolution.Utils.isPackageInstalled(context,
+ context.getString(R.string.config_google_settingsintelligence_package_name));
+ final String settingsIntelligencePkg = context.getString(isGoogleAsiInstalled
+ ? R.string.config_google_settingsintelligence_package_name
+ : R.string.config_settingsintelligence_package_name);
+ return settingsIntelligencePkg;
+ }
+
/**
* Returns true if current binder uid is Settings Intelligence.
*/
@@ -1293,7 +1302,7 @@ public final class Utils extends com.android.settingslib.Utils {
final int callingUid = Binder.getCallingUid();
final String callingPackage = context.getPackageManager().getPackagesForUid(callingUid)[0];
final boolean isSettingsIntelligence = TextUtils.equals(callingPackage,
- context.getString(R.string.config_settingsintelligence_package_name));
+ getAsiPackage(context));
return isSettingsIntelligence;
}
diff --git a/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
index 62c5910904a..e4316119c23 100644
--- a/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
+++ b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
@@ -42,6 +42,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.internal.telephony.SmsApplication;
import com.android.settings.R;
+import com.android.settings.Utils;
import com.android.settings.webview.WebViewUpdateServiceWrapper;
import java.util.ArrayList;
@@ -193,7 +194,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
// Keep Settings intelligence enabled, otherwise search feature will be disabled.
keepEnabledPackages.add(
- mContext.getString(R.string.config_settingsintelligence_package_name));
+ Utils.getAsiPackage(mContext));
// Keep Package Installer enabled.
keepEnabledPackages.add(mContext.getString(R.string.config_package_installer_package_name));
diff --git a/src/com/android/settings/display/WallpaperPreferenceController.java b/src/com/android/settings/display/WallpaperPreferenceController.java
index 9972bf9cabe..65b45585d93 100644
--- a/src/com/android/settings/display/WallpaperPreferenceController.java
+++ b/src/com/android/settings/display/WallpaperPreferenceController.java
@@ -32,11 +32,17 @@ import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedPreference;
+import com.android.internal.util.evolution.Utils;
+
import java.util.List;
public class WallpaperPreferenceController extends BasePreferenceController {
private static final String TAG = "WallpaperPrefController";
private static final String LAUNCHED_SETTINGS = "app_launched_settings";
+ private static final String DEFAULT_WP_CLASS = "com.android.settings.Settings$WallpaperSettingsActivity";
+ private static final String DEFAULT_WP_PKG = "com.android.settings";
+ private static final String GOOGLE_WP_CLASS = "com.google.android.apps.wallpaper.picker.CategoryPickerActivity";
+ private static final String GOOGLE_WP_PKG = "com.google.android.apps.wallpaper";
private final String mWallpaperPackage;
private final String mWallpaperClass;
@@ -47,13 +53,14 @@ public class WallpaperPreferenceController extends BasePreferenceController {
public WallpaperPreferenceController(Context context, String key) {
super(context, key);
- mWallpaperPackage = mContext.getString(R.string.config_wallpaper_picker_package);
- mWallpaperClass = mContext.getString(R.string.config_wallpaper_picker_class);
- mStylesAndWallpaperClass =
- mContext.getString(R.string.config_styles_and_wallpaper_picker_class);
- mWallpaperActionName = mContext.getString(R.string.config_wallpaper_picker_action);
- mStylesAndWallpaperActionName =
- mContext.getString(R.string.config_styles_and_wallpaper_picker_action);
+ final boolean isGoogleWpInstalled = Utils.isPackageInstalled(context, GOOGLE_WP_PKG);
+ mWallpaperPackage = isGoogleWpInstalled ? GOOGLE_WP_PKG : DEFAULT_WP_PKG;
+ mWallpaperClass = isGoogleWpInstalled ? GOOGLE_WP_CLASS : DEFAULT_WP_CLASS;
+ mStylesAndWallpaperClass = isGoogleWpInstalled ?
+ mContext.getString(R.string.config_styles_and_wallpaper_picker_class) : "";
+ mWallpaperActionName = isGoogleWpInstalled ? mContext.getString(R.string.config_wallpaper_picker_action) : "";
+ mStylesAndWallpaperActionName = isGoogleWpInstalled ?
+ mContext.getString(R.string.config_styles_and_wallpaper_picker_action) : "";
mWallpaperLaunchExtra = mContext.getString(R.string.config_wallpaper_picker_launch_extra);
}
diff --git a/src/com/android/settings/search/SearchFeatureProvider.java b/src/com/android/settings/search/SearchFeatureProvider.java
index ab046893d41..19f1724557a 100644
--- a/src/com/android/settings/search/SearchFeatureProvider.java
+++ b/src/com/android/settings/search/SearchFeatureProvider.java
@@ -69,7 +69,7 @@ public interface SearchFeatureProvider {
* @return a package name of settings intelligence.
*/
default String getSettingsIntelligencePkgName(Context context) {
- return context.getString(R.string.config_settingsintelligence_package_name);
+ return Utils.getAsiPackage(context);
}
/**
diff --git a/src/com/android/settings/search/actionbar/SearchMenuController.java b/src/com/android/settings/search/actionbar/SearchMenuController.java
index 74494210d35..2ded46490e5 100644
--- a/src/com/android/settings/search/actionbar/SearchMenuController.java
+++ b/src/com/android/settings/search/actionbar/SearchMenuController.java
@@ -65,8 +65,7 @@ public class SearchMenuController implements LifecycleObserver, OnCreateOptionsM
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
final Activity activity = mHost.getActivity();
- final String SettingsIntelligencePkgName = activity.getString(
- R.string.config_settingsintelligence_package_name);
+ final String SettingsIntelligencePkgName = Utils.getAsiPackage(activity);
if (!WizardManagerHelper.isDeviceProvisioned(activity)
|| WizardManagerHelper.isAnySetupWizard(activity.getIntent())) {
return;
diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java
index 397893e2ef7..c5d3faa4c29 100644
--- a/src/com/android/settings/slices/SettingsSliceProvider.java
+++ b/src/com/android/settings/slices/SettingsSliceProvider.java
@@ -517,7 +517,7 @@ public class SettingsSliceProvider extends SliceProvider {
return hasPermission
&& TextUtils.equals(
callingPackage,
- context.getString(R.string.config_settingsintelligence_package_name));
+ Utils.getAsiPackage(context));
}
return false;
}