Fixed VPN support for restricted profiles in split system user model
In a new split system user model, owner of a restricted profile is not limited to just user0. restrictedProfileParentId field should be used to get an owner. Bug: 22950929 Change-Id: I928319a9450e543972237a42267eb2404e117c83
This commit is contained in:
@@ -754,6 +754,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
IntentFilter intentFilter = new IntentFilter();
|
IntentFilter intentFilter = new IntentFilter();
|
||||||
intentFilter.addAction(Intent.ACTION_USER_STARTING);
|
intentFilter.addAction(Intent.ACTION_USER_STARTING);
|
||||||
intentFilter.addAction(Intent.ACTION_USER_STOPPING);
|
intentFilter.addAction(Intent.ACTION_USER_STOPPING);
|
||||||
|
intentFilter.addAction(Intent.ACTION_USER_ADDED);
|
||||||
|
intentFilter.addAction(Intent.ACTION_USER_REMOVED);
|
||||||
mContext.registerReceiverAsUser(
|
mContext.registerReceiverAsUser(
|
||||||
mUserIntentReceiver, UserHandle.ALL, intentFilter, null, null);
|
mUserIntentReceiver, UserHandle.ALL, intentFilter, null, null);
|
||||||
|
|
||||||
@@ -3525,6 +3527,26 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onUserAdded(int userId) {
|
||||||
|
synchronized(mVpns) {
|
||||||
|
final int vpnsSize = mVpns.size();
|
||||||
|
for (int i = 0; i < vpnsSize; i++) {
|
||||||
|
Vpn vpn = mVpns.valueAt(i);
|
||||||
|
vpn.onUserAdded(userId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onUserRemoved(int userId) {
|
||||||
|
synchronized(mVpns) {
|
||||||
|
final int vpnsSize = mVpns.size();
|
||||||
|
for (int i = 0; i < vpnsSize; i++) {
|
||||||
|
Vpn vpn = mVpns.valueAt(i);
|
||||||
|
vpn.onUserRemoved(userId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private BroadcastReceiver mUserIntentReceiver = new BroadcastReceiver() {
|
private BroadcastReceiver mUserIntentReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
@@ -3536,6 +3558,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
onUserStart(userId);
|
onUserStart(userId);
|
||||||
} else if (Intent.ACTION_USER_STOPPING.equals(action)) {
|
} else if (Intent.ACTION_USER_STOPPING.equals(action)) {
|
||||||
onUserStop(userId);
|
onUserStop(userId);
|
||||||
|
} else if (Intent.ACTION_USER_ADDED.equals(action)) {
|
||||||
|
onUserAdded(userId);
|
||||||
|
} else if (Intent.ACTION_USER_REMOVED.equals(action)) {
|
||||||
|
onUserRemoved(userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user