summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/applications/ApplicationFeatureProviderImpl.java')
-rw-r--r--src/com/android/settings/applications/ApplicationFeatureProviderImpl.java40
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);
}
}
-
}