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; }