Add Restricted Mode settings observer to NetworkPolicyManagerService am: 8b6082b585
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1545866 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I8c42c4c0ac3dcf860d5daacaf2748ea951a9cade
This commit is contained in:
@@ -149,6 +149,7 @@ import android.content.pm.PackageManager;
|
|||||||
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
||||||
import android.content.pm.UserInfo;
|
import android.content.pm.UserInfo;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.database.ContentObserver;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.ConnectivityManager.NetworkCallback;
|
import android.net.ConnectivityManager.NetworkCallback;
|
||||||
import android.net.IConnectivityManager;
|
import android.net.IConnectivityManager;
|
||||||
@@ -609,6 +610,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
@GuardedBy("mUidRulesFirstLock")
|
@GuardedBy("mUidRulesFirstLock")
|
||||||
private final SparseBooleanArray mInternetPermissionMap = new SparseBooleanArray();
|
private final SparseBooleanArray mInternetPermissionMap = new SparseBooleanArray();
|
||||||
|
|
||||||
|
private RestrictedModeObserver mRestrictedModeObserver;
|
||||||
|
|
||||||
// TODO: keep allowlist of system-critical services that should never have
|
// TODO: keep allowlist of system-critical services that should never have
|
||||||
// rules enforced, such as system, phone, and radio UIDs.
|
// rules enforced, such as system, phone, and radio UIDs.
|
||||||
|
|
||||||
@@ -622,7 +625,35 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
int COUNT = IS_UID_NETWORKING_BLOCKED + 1;
|
int COUNT = IS_UID_NETWORKING_BLOCKED + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final StatLogger mStatLogger = new StatLogger(new String[] {
|
private static class RestrictedModeObserver extends ContentObserver {
|
||||||
|
private final Context mContext;
|
||||||
|
private final RestrictedModeListener mListener;
|
||||||
|
|
||||||
|
RestrictedModeObserver(Context ctx, RestrictedModeListener listener) {
|
||||||
|
super(null);
|
||||||
|
mContext = ctx;
|
||||||
|
mListener = listener;
|
||||||
|
mContext.getContentResolver().registerContentObserver(
|
||||||
|
Settings.Global.getUriFor(Settings.Global.RESTRICTED_NETWORKING_MODE), false,
|
||||||
|
this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRestrictedModeEnabled() {
|
||||||
|
return Settings.Global.getInt(mContext.getContentResolver(),
|
||||||
|
Settings.Global.RESTRICTED_NETWORKING_MODE, 0) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onChange(boolean selfChange) {
|
||||||
|
mListener.onChange(isRestrictedModeEnabled());
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface RestrictedModeListener {
|
||||||
|
void onChange(boolean enabled);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public final StatLogger mStatLogger = new StatLogger(new String[]{
|
||||||
"updateNetworkEnabledNL()",
|
"updateNetworkEnabledNL()",
|
||||||
"isUidNetworkingBlocked()",
|
"isUidNetworkingBlocked()",
|
||||||
});
|
});
|
||||||
@@ -797,9 +828,14 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
mRestrictPower = mPowerManagerInternal.getLowPowerState(
|
mRestrictPower = mPowerManagerInternal.getLowPowerState(
|
||||||
ServiceType.NETWORK_FIREWALL).batterySaverEnabled;
|
ServiceType.NETWORK_FIREWALL).batterySaverEnabled;
|
||||||
|
|
||||||
mRestrictedNetworkingMode = Settings.Global.getInt(
|
mRestrictedModeObserver = new RestrictedModeObserver(mContext,
|
||||||
mContext.getContentResolver(),
|
enabled -> {
|
||||||
Settings.Global.RESTRICTED_NETWORKING_MODE, 0) != 0;
|
synchronized (mUidRulesFirstLock) {
|
||||||
|
mRestrictedNetworkingMode = enabled;
|
||||||
|
updateRestrictedModeAllowlistUL();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mRestrictedNetworkingMode = mRestrictedModeObserver.isRestrictedModeEnabled();
|
||||||
|
|
||||||
mSystemReady = true;
|
mSystemReady = true;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user