Merge "SystemUI: show owner VPN for restricted profile" into mnc-dev
This commit is contained in:
@@ -2931,6 +2931,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
|
|||||||
if (mZenModeController != null) {
|
if (mZenModeController != null) {
|
||||||
mZenModeController.setUserId(mCurrentUserId);
|
mZenModeController.setUserId(mCurrentUserId);
|
||||||
}
|
}
|
||||||
|
if (mSecurityController != null) {
|
||||||
|
mSecurityController.onUserSwitched(mCurrentUserId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetUserSetupObserver() {
|
private void resetUserSetupObserver() {
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ public class SecurityControllerImpl implements SecurityController {
|
|||||||
|
|
||||||
private SparseArray<VpnConfig> mCurrentVpns = new SparseArray<>();
|
private SparseArray<VpnConfig> mCurrentVpns = new SparseArray<>();
|
||||||
private int mCurrentUserId;
|
private int mCurrentUserId;
|
||||||
|
private int mVpnUserId;
|
||||||
|
|
||||||
public SecurityControllerImpl(Context context) {
|
public SecurityControllerImpl(Context context) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
@@ -78,7 +79,7 @@ public class SecurityControllerImpl implements SecurityController {
|
|||||||
|
|
||||||
// TODO: re-register network callback on user change.
|
// TODO: re-register network callback on user change.
|
||||||
mConnectivityManager.registerNetworkCallback(REQUEST, mNetworkCallback);
|
mConnectivityManager.registerNetworkCallback(REQUEST, mNetworkCallback);
|
||||||
mCurrentUserId = ActivityManager.getCurrentUser();
|
onUserSwitched(ActivityManager.getCurrentUser());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
|
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
|
||||||
@@ -123,9 +124,9 @@ public class SecurityControllerImpl implements SecurityController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPrimaryVpnName() {
|
public String getPrimaryVpnName() {
|
||||||
VpnConfig cfg = mCurrentVpns.get(mCurrentUserId);
|
VpnConfig cfg = mCurrentVpns.get(mVpnUserId);
|
||||||
if (cfg != null) {
|
if (cfg != null) {
|
||||||
return getNameForVpnConfig(cfg, new UserHandle(mCurrentUserId));
|
return getNameForVpnConfig(cfg, new UserHandle(mVpnUserId));
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -133,8 +134,8 @@ public class SecurityControllerImpl implements SecurityController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getProfileVpnName() {
|
public String getProfileVpnName() {
|
||||||
for (UserInfo profile : mUserManager.getProfiles(mCurrentUserId)) {
|
for (UserInfo profile : mUserManager.getProfiles(mVpnUserId)) {
|
||||||
if (profile.id == mCurrentUserId) {
|
if (profile.id == mVpnUserId) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
VpnConfig cfg = mCurrentVpns.get(profile.id);
|
VpnConfig cfg = mCurrentVpns.get(profile.id);
|
||||||
@@ -147,7 +148,7 @@ public class SecurityControllerImpl implements SecurityController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isVpnEnabled() {
|
public boolean isVpnEnabled() {
|
||||||
for (UserInfo profile : mUserManager.getProfiles(mCurrentUserId)) {
|
for (UserInfo profile : mUserManager.getProfiles(mVpnUserId)) {
|
||||||
if (mCurrentVpns.get(profile.id) != null) {
|
if (mCurrentVpns.get(profile.id) != null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -172,6 +173,12 @@ public class SecurityControllerImpl implements SecurityController {
|
|||||||
@Override
|
@Override
|
||||||
public void onUserSwitched(int newUserId) {
|
public void onUserSwitched(int newUserId) {
|
||||||
mCurrentUserId = newUserId;
|
mCurrentUserId = newUserId;
|
||||||
|
if (mUserManager.getUserInfo(newUserId).isRestricted()) {
|
||||||
|
// VPN for a restricted profile is routed through its owner user
|
||||||
|
mVpnUserId = UserHandle.USER_OWNER;
|
||||||
|
} else {
|
||||||
|
mVpnUserId = mCurrentUserId;
|
||||||
|
}
|
||||||
fireCallbacks();
|
fireCallbacks();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user