summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/enterprise
diff options
context:
space:
mode:
authorFan Zhang <zhfan@google.com>2017-11-07 10:57:47 -0800
committerFan Zhang <zhfan@google.com>2017-11-07 12:58:48 -0800
commitb5f5ffbece14b4f2882144f465ee67b35d5aa567 (patch)
tree7d5b6518956039cbc3096b2c767eca933b28c575 /src/com/android/settings/enterprise
parent2260321fd899120e2a049e40dfd3f38343ea9fc4 (diff)
downloadpackages_apps_Settings-b5f5ffbece14b4f2882144f465ee67b35d5aa567.tar.gz
packages_apps_Settings-b5f5ffbece14b4f2882144f465ee67b35d5aa567.tar.bz2
packages_apps_Settings-b5f5ffbece14b4f2882144f465ee67b35d5aa567.zip
Remove DynamicAvailabilityPreferenceController.
- This class is over complex to use, and get in the way of show/hide pref when availability change. - The function from DynamicAvailabilityPreferenceController can be done with PreferenceCategoryController. Bug: 68956750 Bug: 32953042 Test: robotests Change-Id: Ia7b7e214c072b8c77f5de3d959fdb1dc79217f76
Diffstat (limited to 'src/com/android/settings/enterprise')
-rw-r--r--src/com/android/settings/enterprise/AdminGrantedCameraPermissionPreferenceController.java8
-rw-r--r--src/com/android/settings/enterprise/AdminGrantedLocationPermissionsPreferenceController.java9
-rw-r--r--src/com/android/settings/enterprise/AdminGrantedMicrophonePermissionPreferenceController.java8
-rw-r--r--src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java16
-rw-r--r--src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java14
-rw-r--r--src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java14
-rw-r--r--src/com/android/settings/enterprise/CaCertsCurrentUserPreferenceController.java7
-rw-r--r--src/com/android/settings/enterprise/CaCertsManagedProfilePreferenceController.java7
-rw-r--r--src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java14
-rw-r--r--src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java17
-rw-r--r--src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java18
-rw-r--r--src/com/android/settings/enterprise/EnterprisePrivacySettings.java52
-rw-r--r--src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java14
-rw-r--r--src/com/android/settings/enterprise/ExposureChangesCategoryPreferenceController.java111
-rw-r--r--src/com/android/settings/enterprise/FailedPasswordWipeCurrentUserPreferenceController.java6
-rw-r--r--src/com/android/settings/enterprise/FailedPasswordWipeManagedProfilePreferenceController.java6
-rw-r--r--src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java15
-rw-r--r--src/com/android/settings/enterprise/GlobalHttpProxyPreferenceController.java15
-rw-r--r--src/com/android/settings/enterprise/ImePreferenceController.java20
19 files changed, 108 insertions, 263 deletions
diff --git a/src/com/android/settings/enterprise/AdminGrantedCameraPermissionPreferenceController.java b/src/com/android/settings/enterprise/AdminGrantedCameraPermissionPreferenceController.java
index be41e4d5e6..6b4e70d1ad 100644
--- a/src/com/android/settings/enterprise/AdminGrantedCameraPermissionPreferenceController.java
+++ b/src/com/android/settings/enterprise/AdminGrantedCameraPermissionPreferenceController.java
@@ -17,18 +17,14 @@ package com.android.settings.enterprise;
import android.Manifest;
import android.content.Context;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
public class AdminGrantedCameraPermissionPreferenceController extends
AdminGrantedPermissionsPreferenceControllerBase {
private static final String KEY_ENTERPRISE_PRIVACY_NUMBER_CAMERA_ACCESS_PACKAGES
= "enterprise_privacy_number_camera_access_packages";
- public AdminGrantedCameraPermissionPreferenceController(Context context, Lifecycle lifecycle,
- boolean async) {
- super(context, lifecycle, async, new String[] {Manifest.permission.CAMERA},
- Manifest.permission_group.CAMERA);
+ public AdminGrantedCameraPermissionPreferenceController(Context context, boolean async) {
+ super(context, async, new String[] {Manifest.permission.CAMERA});
}
@Override
diff --git a/src/com/android/settings/enterprise/AdminGrantedLocationPermissionsPreferenceController.java b/src/com/android/settings/enterprise/AdminGrantedLocationPermissionsPreferenceController.java
index 77c6040378..5c6dfc263d 100644
--- a/src/com/android/settings/enterprise/AdminGrantedLocationPermissionsPreferenceController.java
+++ b/src/com/android/settings/enterprise/AdminGrantedLocationPermissionsPreferenceController.java
@@ -17,18 +17,15 @@ package com.android.settings.enterprise;
import android.Manifest;
import android.content.Context;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
public class AdminGrantedLocationPermissionsPreferenceController extends
AdminGrantedPermissionsPreferenceControllerBase {
private static final String KEY_ENTERPRISE_PRIVACY_NUMBER_LOCATION_ACCESS_PACKAGES
= "enterprise_privacy_number_location_access_packages";
- public AdminGrantedLocationPermissionsPreferenceController(Context context, Lifecycle lifecycle,
- boolean async) {
- super(context, lifecycle, async, new String[] {Manifest.permission.ACCESS_COARSE_LOCATION,
- Manifest.permission.ACCESS_FINE_LOCATION}, Manifest.permission_group.LOCATION);
+ public AdminGrantedLocationPermissionsPreferenceController(Context context, boolean async) {
+ super(context, async, new String[] {Manifest.permission.ACCESS_COARSE_LOCATION,
+ Manifest.permission.ACCESS_FINE_LOCATION});
}
@Override
diff --git a/src/com/android/settings/enterprise/AdminGrantedMicrophonePermissionPreferenceController.java b/src/com/android/settings/enterprise/AdminGrantedMicrophonePermissionPreferenceController.java
index 9896420ead..74e260a0d7 100644
--- a/src/com/android/settings/enterprise/AdminGrantedMicrophonePermissionPreferenceController.java
+++ b/src/com/android/settings/enterprise/AdminGrantedMicrophonePermissionPreferenceController.java
@@ -17,18 +17,14 @@ package com.android.settings.enterprise;
import android.Manifest;
import android.content.Context;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
public class AdminGrantedMicrophonePermissionPreferenceController extends
AdminGrantedPermissionsPreferenceControllerBase {
private static final String KEY_ENTERPRISE_PRIVACY_NUMBER_MICROPHONE_ACCESS_PACKAGES
= "enterprise_privacy_number_microphone_access_packages";
- public AdminGrantedMicrophonePermissionPreferenceController(Context context,
- Lifecycle lifecycle, boolean async) {
- super(context, lifecycle, async, new String[] {Manifest.permission.RECORD_AUDIO},
- Manifest.permission_group.MICROPHONE);
+ public AdminGrantedMicrophonePermissionPreferenceController(Context context, boolean async) {
+ super(context, async, new String[] {Manifest.permission.RECORD_AUDIO});
}
@Override
diff --git a/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java b/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java
index 9187cecd33..dd5ab34b9b 100644
--- a/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java
+++ b/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java
@@ -20,24 +20,22 @@ import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.applications.ApplicationFeatureProvider;
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.AbstractPreferenceController;
public abstract class AdminGrantedPermissionsPreferenceControllerBase
- extends DynamicAvailabilityPreferenceController {
+ extends AbstractPreferenceController implements PreferenceControllerMixin {
private final String[] mPermissions;
- private final String mPermissionGroup;
private final ApplicationFeatureProvider mFeatureProvider;
private final boolean mAsync;
private boolean mHasApps;
- public AdminGrantedPermissionsPreferenceControllerBase(Context context, Lifecycle lifecycle,
- boolean async, String[] permissions, String permissionGroup) {
- super(context, lifecycle);
+ public AdminGrantedPermissionsPreferenceControllerBase(Context context, boolean async,
+ String[] permissions) {
+ super(context);
mPermissions = permissions;
- mPermissionGroup = permissionGroup;
mFeatureProvider = FeatureFactory.getFactory(context)
.getApplicationFeatureProvider(context);
mAsync = async;
@@ -58,7 +56,6 @@ public abstract class AdminGrantedPermissionsPreferenceControllerBase
mHasApps = true;
}
preference.setVisible(mHasApps);
- notifyOnAvailabilityUpdate(mHasApps);
});
}
@@ -80,7 +77,6 @@ public abstract class AdminGrantedPermissionsPreferenceControllerBase
mFeatureProvider.calculateNumberOfAppsWithAdminGrantedPermissions(mPermissions,
false /* async */, (num) -> haveAppsWithAdminGrantedPermissions[0] = num > 0);
mHasApps = haveAppsWithAdminGrantedPermissions[0];
- notifyOnAvailabilityUpdate(mHasApps);
return mHasApps;
}
diff --git a/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java b/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
index ed91fef053..883fd36bf9 100644
--- a/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
+++ b/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
@@ -17,18 +17,18 @@ import android.content.Context;
import android.support.v7.preference.Preference;
import com.android.settings.R;
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.AbstractPreferenceController;
public class AlwaysOnVpnCurrentUserPreferenceController
- extends DynamicAvailabilityPreferenceController {
+ extends AbstractPreferenceController implements PreferenceControllerMixin {
private static final String KEY_ALWAYS_ON_VPN_PRIMARY_USER = "always_on_vpn_primary_user";
private final EnterprisePrivacyFeatureProvider mFeatureProvider;
- public AlwaysOnVpnCurrentUserPreferenceController(Context context, Lifecycle lifecycle) {
- super(context, lifecycle);
+ public AlwaysOnVpnCurrentUserPreferenceController(Context context) {
+ super(context);
mFeatureProvider = FeatureFactory.getFactory(context)
.getEnterprisePrivacyFeatureProvider(context);
}
@@ -42,9 +42,7 @@ public class AlwaysOnVpnCurrentUserPreferenceController
@Override
public boolean isAvailable() {
- final boolean available = mFeatureProvider.isAlwaysOnVpnSetInCurrentUser();
- notifyOnAvailabilityUpdate(available);
- return available;
+ return mFeatureProvider.isAlwaysOnVpnSetInCurrentUser();
}
@Override
diff --git a/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java b/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java
index db6fc1d5b0..a23af0cde5 100644
--- a/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java
+++ b/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java
@@ -15,27 +15,25 @@ package com.android.settings.enterprise;
import android.content.Context;
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.AbstractPreferenceController;
public class AlwaysOnVpnManagedProfilePreferenceController
- extends DynamicAvailabilityPreferenceController {
+ extends AbstractPreferenceController implements PreferenceControllerMixin {
private static final String KEY_ALWAYS_ON_VPN_MANAGED_PROFILE = "always_on_vpn_managed_profile";
private final EnterprisePrivacyFeatureProvider mFeatureProvider;
- public AlwaysOnVpnManagedProfilePreferenceController(Context context, Lifecycle lifecycle) {
- super(context, lifecycle);
+ public AlwaysOnVpnManagedProfilePreferenceController(Context context) {
+ super(context);
mFeatureProvider = FeatureFactory.getFactory(context)
.getEnterprisePrivacyFeatureProvider(context);
}
@Override
public boolean isAvailable() {
- final boolean available = mFeatureProvider.isAlwaysOnVpnSetInManagedProfile();
- notifyOnAvailabilityUpdate(available);
- return available;
+ return mFeatureProvider.isAlwaysOnVpnSetInManagedProfile();
}
@Override
diff --git a/src/com/android/settings/enterprise/CaCertsCurrentUserPreferenceController.java b/src/com/android/settings/enterprise/CaCertsCurrentUserPreferenceController.java
index 30da90718a..e328fc579e 100644
--- a/src/com/android/settings/enterprise/CaCertsCurrentUserPreferenceController.java
+++ b/src/com/android/settings/enterprise/CaCertsCurrentUserPreferenceController.java
@@ -20,16 +20,13 @@ import android.support.v7.preference.Preference;
import com.android.settings.R;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
public class CaCertsCurrentUserPreferenceController extends CaCertsPreferenceControllerBase {
@VisibleForTesting
static final String CA_CERTS_CURRENT_USER = "ca_certs_current_user";
- public CaCertsCurrentUserPreferenceController(Context context,
- Lifecycle lifecycle) {
- super(context, lifecycle);
+ public CaCertsCurrentUserPreferenceController(Context context) {
+ super(context);
}
@Override
diff --git a/src/com/android/settings/enterprise/CaCertsManagedProfilePreferenceController.java b/src/com/android/settings/enterprise/CaCertsManagedProfilePreferenceController.java
index 2b4e72d724..94b923ff67 100644
--- a/src/com/android/settings/enterprise/CaCertsManagedProfilePreferenceController.java
+++ b/src/com/android/settings/enterprise/CaCertsManagedProfilePreferenceController.java
@@ -17,16 +17,13 @@ package com.android.settings.enterprise;
import android.content.Context;
import android.support.annotation.VisibleForTesting;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
public class CaCertsManagedProfilePreferenceController extends CaCertsPreferenceControllerBase {
@VisibleForTesting
static final String CA_CERTS_MANAGED_PROFILE = "ca_certs_managed_profile";
- public CaCertsManagedProfilePreferenceController(Context context,
- Lifecycle lifecycle) {
- super(context, lifecycle);
+ public CaCertsManagedProfilePreferenceController(Context context) {
+ super(context);
}
@Override
diff --git a/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java b/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java
index 8009caf6fe..b9df20a728 100644
--- a/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java
+++ b/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java
@@ -18,17 +18,17 @@ import android.content.Context;
import android.support.v7.preference.Preference;
import com.android.settings.R;
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.AbstractPreferenceController;
public abstract class CaCertsPreferenceControllerBase
- extends DynamicAvailabilityPreferenceController {
+ extends AbstractPreferenceController implements PreferenceControllerMixin {
protected final EnterprisePrivacyFeatureProvider mFeatureProvider;
- public CaCertsPreferenceControllerBase(Context context, Lifecycle lifecycle) {
- super(context, lifecycle);
+ public CaCertsPreferenceControllerBase(Context context) {
+ super(context);
mFeatureProvider = FeatureFactory.getFactory(context)
.getEnterprisePrivacyFeatureProvider(context);
}
@@ -42,9 +42,7 @@ public abstract class CaCertsPreferenceControllerBase
@Override
public boolean isAvailable() {
- final boolean available = getNumberOfCaCerts() > 0;
- notifyOnAvailabilityUpdate(available);
- return available;
+ return getNumberOfCaCerts() > 0;
}
protected abstract int getNumberOfCaCerts();
diff --git a/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java
index cced8e8526..1086c0e059 100644
--- a/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java
+++ b/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java
@@ -18,21 +18,20 @@ import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.applications.ApplicationFeatureProvider;
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.AbstractPreferenceController;
public class EnterpriseInstalledPackagesPreferenceController
- extends DynamicAvailabilityPreferenceController {
+ extends AbstractPreferenceController implements PreferenceControllerMixin {
private static final String KEY_NUMBER_ENTERPRISE_INSTALLED_PACKAGES
= "number_enterprise_installed_packages";
private final ApplicationFeatureProvider mFeatureProvider;
private final boolean mAsync;
- public EnterpriseInstalledPackagesPreferenceController(Context context, Lifecycle lifecycle,
- boolean async) {
- super(context, lifecycle);
+ public EnterpriseInstalledPackagesPreferenceController(Context context, boolean async) {
+ super(context);
mFeatureProvider = FeatureFactory.getFactory(context)
.getApplicationFeatureProvider(context);
mAsync = async;
@@ -53,7 +52,6 @@ public class EnterpriseInstalledPackagesPreferenceController
}
preference.setVisible(available);
- notifyOnAvailabilityUpdate(available);
});
}
@@ -72,9 +70,8 @@ public class EnterpriseInstalledPackagesPreferenceController
final Boolean[] haveEnterpriseInstalledPackages = { null };
mFeatureProvider.calculateNumberOfPolicyInstalledApps(false /* async */,
(num) -> haveEnterpriseInstalledPackages[0] = num > 0);
- final boolean available = haveEnterpriseInstalledPackages[0];
- notifyOnAvailabilityUpdate(available);
- return available;
+ return haveEnterpriseInstalledPackages[0];
+
}
@Override
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java b/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java
index 6ec091bbca..11fc29e78e 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java
@@ -17,23 +17,27 @@ import android.content.Context;
import android.support.v7.preference.Preference;
import com.android.settings.R;
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.AbstractPreferenceController;
-public class EnterprisePrivacyPreferenceController extends DynamicAvailabilityPreferenceController {
+public class EnterprisePrivacyPreferenceController extends AbstractPreferenceController implements
+ PreferenceControllerMixin {
private static final String KEY_ENTERPRISE_PRIVACY = "enterprise_privacy";
private final EnterprisePrivacyFeatureProvider mFeatureProvider;
- public EnterprisePrivacyPreferenceController(Context context, Lifecycle lifecycle) {
- super(context, lifecycle);
+ public EnterprisePrivacyPreferenceController(Context context) {
+ super(context);
mFeatureProvider = FeatureFactory.getFactory(context)
.getEnterprisePrivacyFeatureProvider(context);
}
@Override
public void updateState(Preference preference) {
+ if (preference == null) {
+ return;
+ }
final String organizationName = mFeatureProvider.getDeviceOwnerOrganizationName();
if (organizationName == null) {
preference.setSummary(R.string.enterprise_privacy_settings_summary_generic);
@@ -45,9 +49,7 @@ public class EnterprisePrivacyPreferenceController extends DynamicAvailabilityPr
@Override
public boolean isAvailable() {
- final boolean available = mFeatureProvider.hasDeviceOwner();
- notifyOnAvailabilityUpdate(available);
- return available;
+ return mFeatureProvider.hasDeviceOwner();
}
@Override
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
index 4caec302cc..0628dbb826 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
@@ -21,12 +21,11 @@ import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.widget.PreferenceCategoryController;
import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.ArrayList;
import java.util.Arrays;
@@ -53,45 +52,41 @@ public class EnterprisePrivacySettings extends DashboardFragment {
@Override
protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle(), true /* async */);
+ return buildPreferenceControllers(context, true /* async */);
}
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
- Lifecycle lifecycle, boolean async) {
+ boolean async) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new NetworkLogsPreferenceController(context));
controllers.add(new BugReportsPreferenceController(context));
controllers.add(new SecurityLogsPreferenceController(context));
- final List<DynamicAvailabilityPreferenceController> exposureChangesCategoryControllers =
+ final List<AbstractPreferenceController> exposureChangesCategoryControllers =
new ArrayList<>();
exposureChangesCategoryControllers.add(new EnterpriseInstalledPackagesPreferenceController(
- context, lifecycle, async));
+ context, async));
exposureChangesCategoryControllers.add(
- new AdminGrantedLocationPermissionsPreferenceController(context, lifecycle, async));
+ new AdminGrantedLocationPermissionsPreferenceController(context, async));
exposureChangesCategoryControllers.add(
- new AdminGrantedMicrophonePermissionPreferenceController(context, lifecycle,
- async));
+ new AdminGrantedMicrophonePermissionPreferenceController(context, async));
exposureChangesCategoryControllers.add(new AdminGrantedCameraPermissionPreferenceController(
- context, lifecycle, async));
+ context, async));
exposureChangesCategoryControllers.add(new EnterpriseSetDefaultAppsPreferenceController(
- context, lifecycle));
+ context));
exposureChangesCategoryControllers.add(new AlwaysOnVpnCurrentUserPreferenceController(
- context, lifecycle));
+ context));
exposureChangesCategoryControllers.add(new AlwaysOnVpnManagedProfilePreferenceController(
- context, lifecycle));
- exposureChangesCategoryControllers.add(new ImePreferenceController(context, lifecycle));
- exposureChangesCategoryControllers.add(new GlobalHttpProxyPreferenceController(context,
- lifecycle));
- exposureChangesCategoryControllers.add(new CaCertsCurrentUserPreferenceController(
- context, lifecycle));
+ context));
+ exposureChangesCategoryControllers.add(new ImePreferenceController(context));
+ exposureChangesCategoryControllers.add(new GlobalHttpProxyPreferenceController(context));
+ exposureChangesCategoryControllers.add(new CaCertsCurrentUserPreferenceController(context));
exposureChangesCategoryControllers.add(new CaCertsManagedProfilePreferenceController(
- context, lifecycle));
+ context));
controllers.addAll(exposureChangesCategoryControllers);
- controllers.add(new ExposureChangesCategoryPreferenceController(context, lifecycle,
- exposureChangesCategoryControllers, async));
- controllers.add(new FailedPasswordWipeCurrentUserPreferenceController(context, lifecycle));
- controllers.add(new FailedPasswordWipeManagedProfilePreferenceController(context,
- lifecycle));
+ controllers.add(new PreferenceCategoryController(context, "exposure_changes_category",
+ exposureChangesCategoryControllers));
+ controllers.add(new FailedPasswordWipeCurrentUserPreferenceController(context));
+ controllers.add(new FailedPasswordWipeManagedProfilePreferenceController(context));
return controllers;
}
@@ -114,11 +109,12 @@ public class EnterprisePrivacySettings extends DashboardFragment {
final SearchIndexableResource sir = new SearchIndexableResource(context);
sir.xmlResId = R.xml.enterprise_privacy_settings;
return Arrays.asList(sir);
- }
+ }
- @Override
- public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, null /* lifecycle */, false /* async */);
+ @Override
+ public List<AbstractPreferenceController> getPreferenceControllers(
+ Context context) {
+ return buildPreferenceControllers(context, false /* async */);
}
};
}
diff --git a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java
index 537ef780d1..0f9584beeb 100644
--- a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java
+++ b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java
@@ -21,20 +21,20 @@ import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.applications.EnterpriseDefaultApps;
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.users.UserFeatureProvider;
-import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.AbstractPreferenceController;
public class EnterpriseSetDefaultAppsPreferenceController
- extends DynamicAvailabilityPreferenceController {
+ extends AbstractPreferenceController implements PreferenceControllerMixin {
private static final String KEY_DEFAULT_APPS = "number_enterprise_set_default_apps";
private final ApplicationFeatureProvider mApplicationFeatureProvider;
private final UserFeatureProvider mUserFeatureProvider;
- public EnterpriseSetDefaultAppsPreferenceController(Context context, Lifecycle lifecycle) {
- super(context, lifecycle);
+ public EnterpriseSetDefaultAppsPreferenceController(Context context) {
+ super(context);
final FeatureFactory factory = FeatureFactory.getFactory(context);
mApplicationFeatureProvider = factory.getApplicationFeatureProvider(context);
mUserFeatureProvider = factory.getUserFeatureProvider(context);
@@ -49,9 +49,7 @@ public class EnterpriseSetDefaultAppsPreferenceController
@Override
public boolean isAvailable() {
- final boolean available = getNumberOfEnterpriseSetDefaultApps() > 0;
- notifyOnAvailabilityUpdate(available);
- return available;
+ return getNumberOfEnterpriseSetDefaultApps() > 0;
}
@Override
diff --git a/src/com/android/settings/enterprise/ExposureChangesCategoryPreferenceController.java b/src/com/android/settings/enterprise/ExposureChangesCategoryPreferenceController.java
deleted file mode 100644
index 7833325b99..0000000000
--- a/src/com/android/settings/enterprise/ExposureChangesCategoryPreferenceController.java
+++ /dev/null
@@ -1,111 +0,0 @@
-
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package com.android.settings.enterprise;
-
-import android.content.Context;
-import android.support.v7.preference.Preference;
-
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
-import com.android.settings.core.PreferenceAvailabilityObserver;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * A controller that hides a {@link android.support.v7.preference.PreferenceGroup} when none of the
- * {@link Preference}s inside it are visible.
- *
- * TODO(b/62051162): Use {@link android.support.v7.preference.PreferenceGroup}'s native ability to
- * hide itself when all {@link Preference}s inside it are invisible when that functionality becomes
- * available. This custom controller will still be needed to remove the
- * {@link android.support.v7.preference.PreferenceGroup} from the search index as required (by
- * having {@link #isAvailable()} return {@code false} if the method returns {@code false} for all
- * {@link Preference}s in the {@link android.support.v7.preference.PreferenceGroup}).
- */
-public class ExposureChangesCategoryPreferenceController
- extends DynamicAvailabilityPreferenceController implements PreferenceAvailabilityObserver {
-
- private static final String KEY_EXPOSURE_CHANGES_CATEGORY = "exposure_changes_category";
- private final Set<String> mAvailablePrefs = new HashSet<String>();
- private Preference mPreference = null;
- private boolean mControllingUi;
-
- /**
- * When {@code controllingUi} is {@code true}, some of the preferences may have their visibility
- * determined asynchronously. In this case, {@link #isAvailable()} must always return {@code
- * true} and the group should be hidden using {@link Preference#setVisible()} if all preferences
- * report that they are invisible.
- * When {@code controllingUi} is {@code false}, we are running on the search indexer thread and
- * visibility must be determined synchronously. {@link #isAvailable()} can rely on all
- * preferences having their visibility determined already and should return whether the group is
- * visible or not.
- */
- public ExposureChangesCategoryPreferenceController(Context context, Lifecycle lifecycle,
- List<DynamicAvailabilityPreferenceController> controllers, boolean controllingUi) {
- super(context, lifecycle);
- mControllingUi = controllingUi;
- for (final DynamicAvailabilityPreferenceController controller : controllers) {
- controller.setAvailabilityObserver(this);
- }
- }
-
- @Override
- public void onPreferenceAvailabilityUpdated(String key, boolean available) {
- if (available) {
- mAvailablePrefs.add(key);
- } else {
- mAvailablePrefs.remove(key);
- }
- available = haveAnyVisiblePreferences();
- if (mControllingUi) {
- notifyOnAvailabilityUpdate(available);
- }
- if (mPreference != null) {
- mPreference.setVisible(available);
- }
- }
-
- @Override
- public void updateState(Preference preference) {
- mPreference = preference;
- mPreference.setVisible(haveAnyVisiblePreferences());
- }
-
- @Override
- public boolean isAvailable() {
- if (mControllingUi) {
- // When running on the main UI thread, some preferences determine their visibility
- // asynchronously. Always return true here and determine the pref group's actual
- // visibility as the other preferences report their visibility asynchronously via
- // onPreferenceAvailabilityUpdated().
- return true;
- }
- final boolean available = haveAnyVisiblePreferences();
- notifyOnAvailabilityUpdate(available);
- return available;
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_EXPOSURE_CHANGES_CATEGORY;
- }
-
- private boolean haveAnyVisiblePreferences() {
- return mAvailablePrefs.size() > 0;
- }
-}
diff --git a/src/com/android/settings/enterprise/FailedPasswordWipeCurrentUserPreferenceController.java b/src/com/android/settings/enterprise/FailedPasswordWipeCurrentUserPreferenceController.java
index d7f8dc0506..f93025cdcb 100644
--- a/src/com/android/settings/enterprise/FailedPasswordWipeCurrentUserPreferenceController.java
+++ b/src/com/android/settings/enterprise/FailedPasswordWipeCurrentUserPreferenceController.java
@@ -15,16 +15,14 @@ package com.android.settings.enterprise;
import android.content.Context;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
public class FailedPasswordWipeCurrentUserPreferenceController
extends FailedPasswordWipePreferenceControllerBase {
private static final String KEY_FAILED_PASSWORD_WIPE_CURRENT_USER
= "failed_password_wipe_current_user";
- public FailedPasswordWipeCurrentUserPreferenceController(Context context, Lifecycle lifecycle) {
- super(context, lifecycle);
+ public FailedPasswordWipeCurrentUserPreferenceController(Context context) {
+ super(context);
}
@Override
diff --git a/src/com/android/settings/enterprise/FailedPasswordWipeManagedProfilePreferenceController.java b/src/com/android/settings/enterprise/FailedPasswordWipeManagedProfilePreferenceController.java
index 739003a588..5a0e7c8264 100644
--- a/src/com/android/settings/enterprise/FailedPasswordWipeManagedProfilePreferenceController.java
+++ b/src/com/android/settings/enterprise/FailedPasswordWipeManagedProfilePreferenceController.java
@@ -14,7 +14,6 @@
package com.android.settings.enterprise;
import android.content.Context;
-import com.android.settingslib.core.lifecycle.Lifecycle;
public class FailedPasswordWipeManagedProfilePreferenceController
extends FailedPasswordWipePreferenceControllerBase {
@@ -22,9 +21,8 @@ public class FailedPasswordWipeManagedProfilePreferenceController
private static final String KEY_FAILED_PASSWORD_WIPE_MANAGED_PROFILE
= "failed_password_wipe_managed_profile";
- public FailedPasswordWipeManagedProfilePreferenceController(Context context,
- Lifecycle lifecycle) {
- super(context, lifecycle);
+ public FailedPasswordWipeManagedProfilePreferenceController(Context context) {
+ super(context);
}
@Override
diff --git a/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java b/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java
index 298f911999..3c78c21335 100644
--- a/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java
+++ b/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java
@@ -15,21 +15,20 @@
package com.android.settings.enterprise;
import android.content.Context;
-import android.content.res.Resources;
import android.support.v7.preference.Preference;
import com.android.settings.R;
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.AbstractPreferenceController;
public abstract class FailedPasswordWipePreferenceControllerBase
- extends DynamicAvailabilityPreferenceController {
+ extends AbstractPreferenceController implements PreferenceControllerMixin {
protected final EnterprisePrivacyFeatureProvider mFeatureProvider;
- public FailedPasswordWipePreferenceControllerBase(Context context, Lifecycle lifecycle) {
- super(context, lifecycle);
+ public FailedPasswordWipePreferenceControllerBase(Context context) {
+ super(context);
mFeatureProvider = FeatureFactory.getFactory(context)
.getEnterprisePrivacyFeatureProvider(context);
}
@@ -46,8 +45,6 @@ public abstract class FailedPasswordWipePreferenceControllerBase
@Override
public boolean isAvailable() {
- final boolean available = getMaximumFailedPasswordsBeforeWipe() > 0;
- notifyOnAvailabilityUpdate(available);
- return available;
+ return getMaximumFailedPasswordsBeforeWipe() > 0;
}
}
diff --git a/src/com/android/settings/enterprise/GlobalHttpProxyPreferenceController.java b/src/com/android/settings/enterprise/GlobalHttpProxyPreferenceController.java
index 55552b689a..04e63aa1e8 100644
--- a/src/com/android/settings/enterprise/GlobalHttpProxyPreferenceController.java
+++ b/src/com/android/settings/enterprise/GlobalHttpProxyPreferenceController.java
@@ -15,26 +15,25 @@ package com.android.settings.enterprise;
import android.content.Context;
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.AbstractPreferenceController;
-public class GlobalHttpProxyPreferenceController extends DynamicAvailabilityPreferenceController {
+public class GlobalHttpProxyPreferenceController extends AbstractPreferenceController implements
+ PreferenceControllerMixin {
private static final String KEY_GLOBAL_HTTP_PROXY = "global_http_proxy";
private final EnterprisePrivacyFeatureProvider mFeatureProvider;
- public GlobalHttpProxyPreferenceController(Context context, Lifecycle lifecycle) {
- super(context, lifecycle);
+ public GlobalHttpProxyPreferenceController(Context context) {
+ super(context);
mFeatureProvider = FeatureFactory.getFactory(context)
.getEnterprisePrivacyFeatureProvider(context);
}
@Override
public boolean isAvailable() {
- final boolean available = mFeatureProvider.isGlobalHttpProxySet();
- notifyOnAvailabilityUpdate(available);
- return available;
+ return mFeatureProvider.isGlobalHttpProxySet();
}
@Override
diff --git a/src/com/android/settings/enterprise/ImePreferenceController.java b/src/com/android/settings/enterprise/ImePreferenceController.java
index ca52fc00f3..7a4ea2cea8 100644
--- a/src/com/android/settings/enterprise/ImePreferenceController.java
+++ b/src/com/android/settings/enterprise/ImePreferenceController.java
@@ -15,21 +15,21 @@
package com.android.settings.enterprise;
import android.content.Context;
-import android.content.res.Resources;
import android.support.v7.preference.Preference;
import com.android.settings.R;
-import com.android.settings.core.DynamicAvailabilityPreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.AbstractPreferenceController;
-public class ImePreferenceController extends DynamicAvailabilityPreferenceController {
+public class ImePreferenceController extends AbstractPreferenceController implements
+ PreferenceControllerMixin {
private static final String KEY_INPUT_METHOD = "input_method";
private final EnterprisePrivacyFeatureProvider mFeatureProvider;
- public ImePreferenceController(Context context, Lifecycle lifecycle) {
- super(context, lifecycle);
+ public ImePreferenceController(Context context) {
+ super(context);
mFeatureProvider = FeatureFactory.getFactory(context)
.getEnterprisePrivacyFeatureProvider(context);
}
@@ -37,15 +37,13 @@ public class ImePreferenceController extends DynamicAvailabilityPreferenceContro
@Override
public void updateState(Preference preference) {
preference.setSummary(mContext.getResources().getString(
- R.string.enterprise_privacy_input_method_name,
- mFeatureProvider.getImeLabelIfOwnerSet()));
+ R.string.enterprise_privacy_input_method_name,
+ mFeatureProvider.getImeLabelIfOwnerSet()));
}
@Override
public boolean isAvailable() {
- final boolean available = mFeatureProvider.getImeLabelIfOwnerSet() != null;
- notifyOnAvailabilityUpdate(available);
- return available;
+ return mFeatureProvider.getImeLabelIfOwnerSet() != null;
}
@Override