diff options
Diffstat (limited to 'src/com/android/settings/applications/ApplicationFeatureProviderImpl.java')
-rw-r--r-- | src/com/android/settings/applications/ApplicationFeatureProviderImpl.java | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java index 3a88337fd2..1fd79971c8 100644 --- a/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java +++ b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java @@ -25,6 +25,7 @@ import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; +import android.location.LocationManager; import android.os.RemoteException; import android.os.UserManager; import android.telecom.DefaultDialerManager; @@ -32,7 +33,7 @@ import android.text.TextUtils; import android.util.ArraySet; import com.android.internal.telephony.SmsApplication; -import com.android.settingslib.wrapper.PackageManagerWrapper; +import com.android.settings.R; import java.util.ArrayList; import java.util.List; @@ -40,13 +41,13 @@ import java.util.Set; public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvider { - private final Context mContext; - private final PackageManagerWrapper mPm; + protected final Context mContext; + private final PackageManager mPm; private final IPackageManager mPms; private final DevicePolicyManager mDpm; private final UserManager mUm; - public ApplicationFeatureProviderImpl(Context context, PackageManagerWrapper pm, + public ApplicationFeatureProviderImpl(Context context, PackageManager pm, IPackageManager pms, DevicePolicyManager dpm) { mContext = context.getApplicationContext(); mPm = pm; @@ -139,6 +140,28 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide if (defaultSms != null) { keepEnabledPackages.add(defaultSms.getPackageName()); } + + keepEnabledPackages.addAll(getEnabledPackageWhitelist()); + + final LocationManager locationManager = + (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE); + final String locationHistoryPackage = locationManager.getExtraLocationControllerPackage(); + if (locationHistoryPackage != null) { + keepEnabledPackages.add(locationHistoryPackage); + } + return keepEnabledPackages; + } + + private Set<String> getEnabledPackageWhitelist() { + final Set<String> keepEnabledPackages = new ArraySet<>(); + + // Keep Settings intelligence enabled, otherwise search feature will be disabled. + keepEnabledPackages.add( + mContext.getString(R.string.config_settingsintelligence_package_name)); + + // Keep Package Installer enabled. + keepEnabledPackages.add(mContext.getString(R.string.config_package_installer_package_name)); + return keepEnabledPackages; } @@ -147,7 +170,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide private NumberOfAppsCallback mCallback; CurrentUserAndManagedProfilePolicyInstalledAppCounter(Context context, - PackageManagerWrapper packageManager, NumberOfAppsCallback callback) { + PackageManager packageManager, NumberOfAppsCallback callback) { super(context, PackageManager.INSTALL_REASON_POLICY, packageManager); mCallback = callback; } @@ -163,7 +186,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide private NumberOfAppsCallback mCallback; CurrentUserAndManagedProfileAppWithAdminGrantedPermissionsCounter(Context context, - String[] permissions, PackageManagerWrapper packageManager, + String[] permissions, PackageManager packageManager, IPackageManager packageManagerService, DevicePolicyManager devicePolicyManager, NumberOfAppsCallback callback) { super(context, permissions, packageManager, packageManagerService, devicePolicyManager); @@ -179,7 +202,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide private static class CurrentUserPolicyInstalledAppLister extends InstalledAppLister { private ListOfAppsCallback mCallback; - CurrentUserPolicyInstalledAppLister(PackageManagerWrapper packageManager, + CurrentUserPolicyInstalledAppLister(PackageManager packageManager, UserManager userManager, ListOfAppsCallback callback) { super(packageManager, userManager); mCallback = callback; @@ -196,7 +219,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide private ListOfAppsCallback mCallback; CurrentUserAppWithAdminGrantedPermissionsLister(String[] permissions, - PackageManagerWrapper packageManager, IPackageManager packageManagerService, + PackageManager packageManager, IPackageManager packageManagerService, DevicePolicyManager devicePolicyManager, UserManager userManager, ListOfAppsCallback callback) { super(permissions, packageManager, packageManagerService, devicePolicyManager, @@ -209,5 +232,4 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide mCallback.onListOfAppsResult(list); } } - } |