diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 803c2db83d..0c798ec606 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -815,6 +815,8 @@ public class ConnectivityService extends IConnectivityManager.Stub intentFilter.addAction(Intent.ACTION_USER_UNLOCKED); mContext.registerReceiverAsUser( mUserIntentReceiver, UserHandle.ALL, intentFilter, null, null); + mContext.registerReceiverAsUser(mUserPresentReceiver, UserHandle.SYSTEM, + new IntentFilter(Intent.ACTION_USER_PRESENT), null, null); try { mNetd.registerObserver(mTethering); @@ -4000,6 +4002,16 @@ public class ConnectivityService extends IConnectivityManager.Stub } }; + private BroadcastReceiver mUserPresentReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + // Try creating lockdown tracker, since user present usually means + // unlocked keystore. + updateLockdownVpn(); + mContext.unregisterReceiver(this); + } + }; + private final HashMap mNetworkFactoryInfos = new HashMap(); private final HashMap mNetworkRequests =