Add policy transparency for metered data related settings.
With API Dpm.setMeteredDataDisabled, admins can restrict some packages from accessing metered data and when admin does restrict packages, user settings to enable usage of mobile data in background or allow unrestricted access during data saver mode are not relevant. Add policy transparency to these settings so that user knows that admin disabled them. Bug: 63700027 Test: make RunSettingsRoboTests Test: manual Change-Id: I450f7a91356ed8fb33f464620c73fa9407a1ff83
This commit is contained in:
@@ -33,7 +33,6 @@ import android.os.Bundle;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.support.v14.preference.SwitchPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceCategory;
|
||||
import android.text.format.Formatter;
|
||||
@@ -48,6 +47,9 @@ import com.android.settings.R;
|
||||
import com.android.settings.applications.AppInfoBase;
|
||||
import com.android.settings.widget.EntityHeaderController;
|
||||
import com.android.settingslib.AppItem;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||
import com.android.settingslib.RestrictedSwitchPreference;
|
||||
import com.android.settingslib.net.ChartData;
|
||||
import com.android.settingslib.net.ChartDataLoader;
|
||||
import com.android.settingslib.net.UidDetail;
|
||||
@@ -80,7 +82,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
|
||||
private Preference mForegroundUsage;
|
||||
private Preference mBackgroundUsage;
|
||||
private Preference mAppSettings;
|
||||
private SwitchPreference mRestrictBackground;
|
||||
private RestrictedSwitchPreference mRestrictBackground;
|
||||
private PreferenceCategory mAppList;
|
||||
|
||||
private Drawable mIcon;
|
||||
@@ -97,7 +99,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
|
||||
private AppItem mAppItem;
|
||||
private Intent mAppSettingsIntent;
|
||||
private SpinnerPreference mCycle;
|
||||
private SwitchPreference mUnrestrictedData;
|
||||
private RestrictedSwitchPreference mUnrestrictedData;
|
||||
private DataSaverBackend mDataSaverBackend;
|
||||
|
||||
@Override
|
||||
@@ -160,9 +162,11 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
|
||||
removePreference(KEY_UNRESTRICTED_DATA);
|
||||
removePreference(KEY_RESTRICT_BACKGROUND);
|
||||
} else {
|
||||
mRestrictBackground = (SwitchPreference) findPreference(KEY_RESTRICT_BACKGROUND);
|
||||
mRestrictBackground = (RestrictedSwitchPreference) findPreference(
|
||||
KEY_RESTRICT_BACKGROUND);
|
||||
mRestrictBackground.setOnPreferenceChangeListener(this);
|
||||
mUnrestrictedData = (SwitchPreference) findPreference(KEY_UNRESTRICTED_DATA);
|
||||
mUnrestrictedData = (RestrictedSwitchPreference) findPreference(
|
||||
KEY_UNRESTRICTED_DATA);
|
||||
mUnrestrictedData.setOnPreferenceChangeListener(this);
|
||||
}
|
||||
mDataSaverBackend = new DataSaverBackend(getContext());
|
||||
@@ -261,8 +265,11 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
|
||||
}
|
||||
|
||||
private void updatePrefs(boolean restrictBackground, boolean unrestrictData) {
|
||||
final EnforcedAdmin admin = RestrictedLockUtils.checkIfMeteredDataRestricted(
|
||||
getContext(), mPackageName, UserHandle.getUserId(mAppItem.key));
|
||||
if (mRestrictBackground != null) {
|
||||
mRestrictBackground.setChecked(!restrictBackground);
|
||||
mRestrictBackground.setDisabledByAdmin(admin);
|
||||
}
|
||||
if (mUnrestrictedData != null) {
|
||||
if (restrictBackground) {
|
||||
@@ -270,6 +277,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
|
||||
} else {
|
||||
mUnrestrictedData.setVisible(true);
|
||||
mUnrestrictedData.setChecked(unrestrictData);
|
||||
mUnrestrictedData.setDisabledByAdmin(admin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user