Settings: Add support for allowing/disallowing apps on cellular, vpn and wifi networks
*) Add options to disable all cellular, vpn and wifi data in app data usage settings. *) Disable the existing background data and unrestricted data usage options when all cellular data access is disabled. *) The vpn data option can be selected independently from the Wi-Fi and cellular options. *) Prevent DataSaverBackend from overwriting uid policies This is a replacement for the appops menu based cell/wifi data restriction settings in cm-13.0: Author: Danesh M <daneshm90@gmail.com> Date: Mon Mar 7 15:17:59 2016 -0800 Settings : Add per app internet/data control CYAN-3976 CRACKLING-834 Change-Id: I13192df837c057b5cadde8f31532e12daaf3c1b0 Change-Id: Ic087c27a5ed0bdb84bb8f297c425c6bcbffec848 (cherry picked from commit d4a2eea698cbc4636a635d60f2a52ec1bbc36ba2)
This commit is contained in:
committed by
Michael Bestas
parent
0b57abfdec
commit
0017a2f638
@@ -86,12 +86,15 @@ public class DataSaverBackend {
|
||||
|
||||
public void setIsAllowlisted(int uid, String packageName, boolean allowlisted) {
|
||||
final int policy = allowlisted ? POLICY_ALLOW_METERED_BACKGROUND : POLICY_NONE;
|
||||
mDynamicDenylistManager.setUidPolicyLocked(uid, policy);
|
||||
mUidPolicies.put(uid, policy);
|
||||
if (allowlisted) {
|
||||
mPolicyManager.addUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
|
||||
mMetricsFeatureProvider.action(
|
||||
mContext, SettingsEnums.ACTION_DATA_SAVER_WHITELIST, packageName);
|
||||
} else {
|
||||
mPolicyManager.removeUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
|
||||
}
|
||||
mPolicyManager.removeUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
|
||||
}
|
||||
|
||||
public boolean isAllowlisted(int uid) {
|
||||
@@ -116,12 +119,15 @@ public class DataSaverBackend {
|
||||
|
||||
public void setIsDenylisted(int uid, String packageName, boolean denylisted) {
|
||||
final int policy = denylisted ? POLICY_REJECT_METERED_BACKGROUND : POLICY_NONE;
|
||||
mDynamicDenylistManager.setUidPolicyLocked(uid, policy);
|
||||
mUidPolicies.put(uid, policy);
|
||||
if (denylisted) {
|
||||
mPolicyManager.addUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
|
||||
mMetricsFeatureProvider.action(
|
||||
mContext, SettingsEnums.ACTION_DATA_SAVER_BLACKLIST, packageName);
|
||||
} else {
|
||||
mPolicyManager.removeUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
|
||||
}
|
||||
mPolicyManager.removeUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
|
||||
}
|
||||
|
||||
public boolean isDenylisted(int uid) {
|
||||
@@ -162,6 +168,9 @@ public class DataSaverBackend {
|
||||
loadAllowlist();
|
||||
loadDenylist();
|
||||
|
||||
// We only care about allow/reject metered background policy here.
|
||||
newPolicy &= POLICY_ALLOW_METERED_BACKGROUND | POLICY_REJECT_METERED_BACKGROUND;
|
||||
|
||||
final int oldPolicy = mUidPolicies.get(uid, POLICY_NONE);
|
||||
if (newPolicy == POLICY_NONE) {
|
||||
mUidPolicies.delete(uid);
|
||||
|
||||
Reference in New Issue
Block a user