Loading core/java/android/net/NetworkPolicyManager.java +7 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,13 @@ public class NetworkPolicyManager { */ public static final int POLICY_REJECT_ALL = 0x40000; /** @hide */ public static final int POLICY_LOCKDOWN_VPN = POLICY_REJECT_WIFI | POLICY_REJECT_CELLULAR; /** @hide */ public static final int POLICY_LOCKDOWN_VPN_MASK = POLICY_REJECT_WIFI | POLICY_REJECT_CELLULAR | POLICY_REJECT_VPN; /* * Rules defining whether an uid has access to a network given its type (metered / non-metered). * Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBottomAreaViewBinder.kt +26 −4 Original line number Diff line number Diff line Loading @@ -324,7 +324,7 @@ object KeyguardBottomAreaViewBinder { Utils.getColorAttr( view.context, if (viewModel.isActivated) { com.android.internal.R.attr.colorAccentPrimary com.android.internal.R.attr.colorAccent } else { com.android.internal.R.attr.colorSurface } Loading Loading @@ -383,6 +383,12 @@ object KeyguardBottomAreaViewBinder { private val longPressDurationMs = ViewConfiguration.getLongPressTimeout().toLong() private var longPressAnimator: ViewPropertyAnimator? = null private val areAllPrimitivesSupported = vibratorHelper?.areAllPrimitivesSupported( VibrationEffect.Composition.PRIMITIVE_TICK, VibrationEffect.Composition.PRIMITIVE_QUICK_RISE, VibrationEffect.Composition.PRIMITIVE_QUICK_FALL ) ?: false @SuppressLint("ClickableViewAccessibility") override fun onTouch(v: View?, event: MotionEvent?): Boolean { return when (event?.actionMasked) { Loading Loading @@ -470,7 +476,12 @@ object KeyguardBottomAreaViewBinder { CycleInterpolator(ShakeAnimationCycles) shakeAnimator.start() vibratorHelper?.vibrate(Vibrations.Shake) vibratorHelper?.vibrate( if (areAllPrimitivesSupported) { Vibrations.Shake } else { Vibrations.ShakeAlt }) } } else { null Loading @@ -493,9 +504,17 @@ object KeyguardBottomAreaViewBinder { view.setOnClickListener { vibratorHelper?.vibrate( if (viewModel.isActivated) { if (areAllPrimitivesSupported) { Vibrations.Activated } else { Vibrations.ActivatedAlt } } else { if (areAllPrimitivesSupported) { Vibrations.Deactivated } else { Vibrations.DeactivatedAlt } } ) viewModel.onClicked( Loading Loading @@ -623,6 +642,7 @@ object KeyguardBottomAreaViewBinder { } } .compose() val ShakeAlt = VibrationEffect.createPredefined(VibrationEffect.EFFECT_DOUBLE_CLICK) val Activated = VibrationEffect.startComposition() Loading @@ -637,6 +657,7 @@ object KeyguardBottomAreaViewBinder { 0, ) .compose() val ActivatedAlt = VibrationEffect.createPredefined(VibrationEffect.EFFECT_HEAVY_CLICK) val Deactivated = VibrationEffect.startComposition() Loading @@ -651,5 +672,6 @@ object KeyguardBottomAreaViewBinder { 0, ) .compose() val DeactivatedAlt = VibrationEffect.createPredefined(VibrationEffect.EFFECT_HEAVY_CLICK) } } packages/SystemUI/src/com/android/systemui/statusbar/VibratorHelper.java +9 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,15 @@ public class VibratorHelper { return mVibrator != null && mVibrator.hasVibrator(); } /** * @see areAllPrimitivesSupported#hasVibrator() */ public boolean areAllPrimitivesSupported( @NonNull @VibrationEffect.Composition.PrimitiveType int... primitiveIds) { return mVibrator != null && mVibrator.areAllPrimitivesSupported(primitiveIds); } /** * @see Vibrator#cancel() */ Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +42 −34 Original line number Diff line number Diff line Loading @@ -22,18 +22,20 @@ import android.annotation.Nullable; import android.app.ActivityTaskManager; import android.app.AlarmManager; import android.app.AlarmManager.AlarmClockInfo; import android.app.AppGlobals; import android.app.admin.DevicePolicyManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.media.AudioManager; import android.net.ConnectivityManager; import android.net.INetworkPolicyListener; import android.net.INetworkPolicyManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkPolicyManager; import android.os.Handler; import android.os.Looper; Loading @@ -48,6 +50,7 @@ import android.text.format.DateFormat; import android.util.Log; import android.view.View; import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import com.android.systemui.R; Loading Loading @@ -85,8 +88,6 @@ import com.android.systemui.util.time.DateFormatUtil; import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.concurrent.Executor; Loading Loading @@ -136,6 +137,7 @@ public class PhoneStatusBarPolicy private final DateFormatUtil mDateFormatUtil; private final TelecomManager mTelecomManager; private final Context mContext; private final Handler mHandler; private final CastController mCast; private final HotspotController mHotspot; Loading @@ -162,6 +164,8 @@ public class PhoneStatusBarPolicy private final RecordingController mRecordingController; private final RingerModeTracker mRingerModeTracker; private final PrivacyLogger mPrivacyLogger; private final ConnectivityManager mConnectivityManager; private final NetworkPolicyManager mNetworkPolicyManager; private boolean mZenVisible; private boolean mVibrateVisible; Loading @@ -171,11 +175,13 @@ public class PhoneStatusBarPolicy private boolean mManagedProfileIconVisible = false; private boolean mFirewallVisible = false; private int mLastResumedActivityUid = -1; private BluetoothController mBluetooth; private AlarmManager.AlarmClockInfo mNextAlarm; @Inject public PhoneStatusBarPolicy(StatusBarIconController iconController, public PhoneStatusBarPolicy(Context context, StatusBarIconController iconController, CommandQueue commandQueue, BroadcastDispatcher broadcastDispatcher, @Main Executor mainExecutor, @UiBackground Executor uiBgExecutor, @Main Looper looper, @Main Resources resources, CastController castController, Loading @@ -194,6 +200,7 @@ public class PhoneStatusBarPolicy RingerModeTracker ringerModeTracker, PrivacyItemController privacyItemController, PrivacyLogger privacyLogger) { mContext = context; mIconController = iconController; mCommandQueue = commandQueue; mBroadcastDispatcher = broadcastDispatcher; Loading Loading @@ -222,6 +229,8 @@ public class PhoneStatusBarPolicy mTelecomManager = telecomManager; mRingerModeTracker = ringerModeTracker; mPrivacyLogger = privacyLogger; mConnectivityManager = context.getSystemService(ConnectivityManager.class); mNetworkPolicyManager = context.getSystemService(NetworkPolicyManager.class); mSlotCast = resources.getString(com.android.internal.R.string.status_bar_cast); mSlotHotspot = resources.getString(com.android.internal.R.string.status_bar_hotspot); Loading Loading @@ -269,6 +278,8 @@ public class PhoneStatusBarPolicy // listen for user / profile change. mUserTracker.addCallback(mUserSwitchListener, mMainExecutor); mNetworkPolicyManager.registerListener(mNetworkPolicyListener); // TTY status updateTTY(); Loading Loading @@ -359,8 +370,6 @@ public class PhoneStatusBarPolicy mLocationController.addCallback(this); mRecordingController.addCallback(this); registerNetworkPolicyListener(); mCommandQueue.addCallback(this); // Get initial user setup state Loading Loading @@ -597,12 +606,24 @@ public class PhoneStatusBarPolicy mUiBgExecutor.execute(() -> { try { final int uid = ActivityTaskManager.getService().getLastResumedActivityUid(); final boolean isRestricted = INetworkPolicyManager.Stub.asInterface( ServiceManager.getService(Context.NETWORK_POLICY_SERVICE)) .isUidNetworkingBlocked(uid, false); if (mLastResumedActivityUid != uid) { mLastResumedActivityUid = uid; try { mConnectivityManager.unregisterNetworkCallback(mNetworkCallback); } catch (IllegalArgumentException e) { // Ignore } mConnectivityManager.registerDefaultNetworkCallbackForUid(uid, mNetworkCallback, mHandler); } final boolean isRestricted = mNetworkPolicyManager.isUidNetworkingBlocked(uid, false /*meteredNetwork*/); boolean isLauncher = false; List<ResolveInfo> homeActivities = new ArrayList<>(); AppGlobals.getPackageManager().getHomeActivities(homeActivities); List<ResolveInfo> homeActivities = mContext.getPackageManager().queryIntentActivitiesAsUser( new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME) .addCategory(Intent.CATEGORY_DEFAULT), PackageManager.ResolveInfoFlags.of(0), UserHandle.getUserId(uid)); for (ResolveInfo homeActivity : homeActivities) { if (uid == homeActivity.activityInfo.applicationInfo.uid) { isLauncher = true; Loading Loading @@ -630,33 +651,20 @@ public class PhoneStatusBarPolicy }); } private void registerNetworkPolicyListener() { try { INetworkPolicyManager policyManager = INetworkPolicyManager.Stub.asInterface( ServiceManager.getService(Context.NETWORK_POLICY_SERVICE)); policyManager.registerListener(mNetworkPolicyListener); } catch (RemoteException e) { Log.e(TAG, "registerNetworkPolicyListener: ", e); return; } private final ConnectivityManager.NetworkCallback mNetworkCallback = new ConnectivityManager.NetworkCallback() { @Override public void onCapabilitiesChanged(@NonNull Network network, @NonNull NetworkCapabilities networkCapabilities) { mHandler.post(() -> updateFirewall()); } }; private final INetworkPolicyListener mNetworkPolicyListener = new NetworkPolicyManager.Listener() { @Override public void onUidRulesChanged(int uid, int uidRules) { if (DEBUG) Log.d(TAG, "INetworkPolicyListener." + "onUidRulesChanged: uid: " + uid + ", uidRules: " + uidRules); updateFirewall(); } @Override public void onUidPoliciesChanged(int uid, int uidPolicies) { if (DEBUG) Log.d(TAG, "INetworkPolicyListener." + "onUidPoliciesChanged: uid: " + uid + ", uidPolicies: " + uidPolicies); updateFirewall(); mHandler.post(() -> updateFirewall()); } }; Loading services/core/java/com/android/server/net/NetworkPolicyManagerService.java +217 −151 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
core/java/android/net/NetworkPolicyManager.java +7 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,13 @@ public class NetworkPolicyManager { */ public static final int POLICY_REJECT_ALL = 0x40000; /** @hide */ public static final int POLICY_LOCKDOWN_VPN = POLICY_REJECT_WIFI | POLICY_REJECT_CELLULAR; /** @hide */ public static final int POLICY_LOCKDOWN_VPN_MASK = POLICY_REJECT_WIFI | POLICY_REJECT_CELLULAR | POLICY_REJECT_VPN; /* * Rules defining whether an uid has access to a network given its type (metered / non-metered). * Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBottomAreaViewBinder.kt +26 −4 Original line number Diff line number Diff line Loading @@ -324,7 +324,7 @@ object KeyguardBottomAreaViewBinder { Utils.getColorAttr( view.context, if (viewModel.isActivated) { com.android.internal.R.attr.colorAccentPrimary com.android.internal.R.attr.colorAccent } else { com.android.internal.R.attr.colorSurface } Loading Loading @@ -383,6 +383,12 @@ object KeyguardBottomAreaViewBinder { private val longPressDurationMs = ViewConfiguration.getLongPressTimeout().toLong() private var longPressAnimator: ViewPropertyAnimator? = null private val areAllPrimitivesSupported = vibratorHelper?.areAllPrimitivesSupported( VibrationEffect.Composition.PRIMITIVE_TICK, VibrationEffect.Composition.PRIMITIVE_QUICK_RISE, VibrationEffect.Composition.PRIMITIVE_QUICK_FALL ) ?: false @SuppressLint("ClickableViewAccessibility") override fun onTouch(v: View?, event: MotionEvent?): Boolean { return when (event?.actionMasked) { Loading Loading @@ -470,7 +476,12 @@ object KeyguardBottomAreaViewBinder { CycleInterpolator(ShakeAnimationCycles) shakeAnimator.start() vibratorHelper?.vibrate(Vibrations.Shake) vibratorHelper?.vibrate( if (areAllPrimitivesSupported) { Vibrations.Shake } else { Vibrations.ShakeAlt }) } } else { null Loading @@ -493,9 +504,17 @@ object KeyguardBottomAreaViewBinder { view.setOnClickListener { vibratorHelper?.vibrate( if (viewModel.isActivated) { if (areAllPrimitivesSupported) { Vibrations.Activated } else { Vibrations.ActivatedAlt } } else { if (areAllPrimitivesSupported) { Vibrations.Deactivated } else { Vibrations.DeactivatedAlt } } ) viewModel.onClicked( Loading Loading @@ -623,6 +642,7 @@ object KeyguardBottomAreaViewBinder { } } .compose() val ShakeAlt = VibrationEffect.createPredefined(VibrationEffect.EFFECT_DOUBLE_CLICK) val Activated = VibrationEffect.startComposition() Loading @@ -637,6 +657,7 @@ object KeyguardBottomAreaViewBinder { 0, ) .compose() val ActivatedAlt = VibrationEffect.createPredefined(VibrationEffect.EFFECT_HEAVY_CLICK) val Deactivated = VibrationEffect.startComposition() Loading @@ -651,5 +672,6 @@ object KeyguardBottomAreaViewBinder { 0, ) .compose() val DeactivatedAlt = VibrationEffect.createPredefined(VibrationEffect.EFFECT_HEAVY_CLICK) } }
packages/SystemUI/src/com/android/systemui/statusbar/VibratorHelper.java +9 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,15 @@ public class VibratorHelper { return mVibrator != null && mVibrator.hasVibrator(); } /** * @see areAllPrimitivesSupported#hasVibrator() */ public boolean areAllPrimitivesSupported( @NonNull @VibrationEffect.Composition.PrimitiveType int... primitiveIds) { return mVibrator != null && mVibrator.areAllPrimitivesSupported(primitiveIds); } /** * @see Vibrator#cancel() */ Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +42 −34 Original line number Diff line number Diff line Loading @@ -22,18 +22,20 @@ import android.annotation.Nullable; import android.app.ActivityTaskManager; import android.app.AlarmManager; import android.app.AlarmManager.AlarmClockInfo; import android.app.AppGlobals; import android.app.admin.DevicePolicyManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.media.AudioManager; import android.net.ConnectivityManager; import android.net.INetworkPolicyListener; import android.net.INetworkPolicyManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkPolicyManager; import android.os.Handler; import android.os.Looper; Loading @@ -48,6 +50,7 @@ import android.text.format.DateFormat; import android.util.Log; import android.view.View; import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import com.android.systemui.R; Loading Loading @@ -85,8 +88,6 @@ import com.android.systemui.util.time.DateFormatUtil; import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.concurrent.Executor; Loading Loading @@ -136,6 +137,7 @@ public class PhoneStatusBarPolicy private final DateFormatUtil mDateFormatUtil; private final TelecomManager mTelecomManager; private final Context mContext; private final Handler mHandler; private final CastController mCast; private final HotspotController mHotspot; Loading @@ -162,6 +164,8 @@ public class PhoneStatusBarPolicy private final RecordingController mRecordingController; private final RingerModeTracker mRingerModeTracker; private final PrivacyLogger mPrivacyLogger; private final ConnectivityManager mConnectivityManager; private final NetworkPolicyManager mNetworkPolicyManager; private boolean mZenVisible; private boolean mVibrateVisible; Loading @@ -171,11 +175,13 @@ public class PhoneStatusBarPolicy private boolean mManagedProfileIconVisible = false; private boolean mFirewallVisible = false; private int mLastResumedActivityUid = -1; private BluetoothController mBluetooth; private AlarmManager.AlarmClockInfo mNextAlarm; @Inject public PhoneStatusBarPolicy(StatusBarIconController iconController, public PhoneStatusBarPolicy(Context context, StatusBarIconController iconController, CommandQueue commandQueue, BroadcastDispatcher broadcastDispatcher, @Main Executor mainExecutor, @UiBackground Executor uiBgExecutor, @Main Looper looper, @Main Resources resources, CastController castController, Loading @@ -194,6 +200,7 @@ public class PhoneStatusBarPolicy RingerModeTracker ringerModeTracker, PrivacyItemController privacyItemController, PrivacyLogger privacyLogger) { mContext = context; mIconController = iconController; mCommandQueue = commandQueue; mBroadcastDispatcher = broadcastDispatcher; Loading Loading @@ -222,6 +229,8 @@ public class PhoneStatusBarPolicy mTelecomManager = telecomManager; mRingerModeTracker = ringerModeTracker; mPrivacyLogger = privacyLogger; mConnectivityManager = context.getSystemService(ConnectivityManager.class); mNetworkPolicyManager = context.getSystemService(NetworkPolicyManager.class); mSlotCast = resources.getString(com.android.internal.R.string.status_bar_cast); mSlotHotspot = resources.getString(com.android.internal.R.string.status_bar_hotspot); Loading Loading @@ -269,6 +278,8 @@ public class PhoneStatusBarPolicy // listen for user / profile change. mUserTracker.addCallback(mUserSwitchListener, mMainExecutor); mNetworkPolicyManager.registerListener(mNetworkPolicyListener); // TTY status updateTTY(); Loading Loading @@ -359,8 +370,6 @@ public class PhoneStatusBarPolicy mLocationController.addCallback(this); mRecordingController.addCallback(this); registerNetworkPolicyListener(); mCommandQueue.addCallback(this); // Get initial user setup state Loading Loading @@ -597,12 +606,24 @@ public class PhoneStatusBarPolicy mUiBgExecutor.execute(() -> { try { final int uid = ActivityTaskManager.getService().getLastResumedActivityUid(); final boolean isRestricted = INetworkPolicyManager.Stub.asInterface( ServiceManager.getService(Context.NETWORK_POLICY_SERVICE)) .isUidNetworkingBlocked(uid, false); if (mLastResumedActivityUid != uid) { mLastResumedActivityUid = uid; try { mConnectivityManager.unregisterNetworkCallback(mNetworkCallback); } catch (IllegalArgumentException e) { // Ignore } mConnectivityManager.registerDefaultNetworkCallbackForUid(uid, mNetworkCallback, mHandler); } final boolean isRestricted = mNetworkPolicyManager.isUidNetworkingBlocked(uid, false /*meteredNetwork*/); boolean isLauncher = false; List<ResolveInfo> homeActivities = new ArrayList<>(); AppGlobals.getPackageManager().getHomeActivities(homeActivities); List<ResolveInfo> homeActivities = mContext.getPackageManager().queryIntentActivitiesAsUser( new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME) .addCategory(Intent.CATEGORY_DEFAULT), PackageManager.ResolveInfoFlags.of(0), UserHandle.getUserId(uid)); for (ResolveInfo homeActivity : homeActivities) { if (uid == homeActivity.activityInfo.applicationInfo.uid) { isLauncher = true; Loading Loading @@ -630,33 +651,20 @@ public class PhoneStatusBarPolicy }); } private void registerNetworkPolicyListener() { try { INetworkPolicyManager policyManager = INetworkPolicyManager.Stub.asInterface( ServiceManager.getService(Context.NETWORK_POLICY_SERVICE)); policyManager.registerListener(mNetworkPolicyListener); } catch (RemoteException e) { Log.e(TAG, "registerNetworkPolicyListener: ", e); return; } private final ConnectivityManager.NetworkCallback mNetworkCallback = new ConnectivityManager.NetworkCallback() { @Override public void onCapabilitiesChanged(@NonNull Network network, @NonNull NetworkCapabilities networkCapabilities) { mHandler.post(() -> updateFirewall()); } }; private final INetworkPolicyListener mNetworkPolicyListener = new NetworkPolicyManager.Listener() { @Override public void onUidRulesChanged(int uid, int uidRules) { if (DEBUG) Log.d(TAG, "INetworkPolicyListener." + "onUidRulesChanged: uid: " + uid + ", uidRules: " + uidRules); updateFirewall(); } @Override public void onUidPoliciesChanged(int uid, int uidPolicies) { if (DEBUG) Log.d(TAG, "INetworkPolicyListener." + "onUidPoliciesChanged: uid: " + uid + ", uidPolicies: " + uidPolicies); updateFirewall(); mHandler.post(() -> updateFirewall()); } }; Loading
services/core/java/com/android/server/net/NetworkPolicyManagerService.java +217 −151 File changed.Preview size limit exceeded, changes collapsed. Show changes