diff options
author | Robin Lee <rgl@google.com> | 2015-06-26 20:44:55 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-26 20:44:57 +0000 |
commit | cd7ceb0711672eabd1de578f2452ddcb8a322f68 (patch) | |
tree | 342103be4e098e8686ed36d6327aeecfa9a1574d /packages | |
parent | 6356d3b2504cefce59761d67b642ae37f8ba2d8b (diff) | |
parent | 63204eeafe7a51953d346717639f3e6eeb1f9bd5 (diff) | |
download | frameworks_base-cd7ceb0711672eabd1de578f2452ddcb8a322f68.zip frameworks_base-cd7ceb0711672eabd1de578f2452ddcb8a322f68.tar.gz frameworks_base-cd7ceb0711672eabd1de578f2452ddcb8a322f68.tar.bz2 |
Merge "SystemUI: show owner VPN for restricted profile" into mnc-dev
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java | 3 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java | 19 |
2 files changed, 16 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 860a6b7..3678cf1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -2931,6 +2931,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if (mZenModeController != null) { mZenModeController.setUserId(mCurrentUserId); } + if (mSecurityController != null) { + mSecurityController.onUserSwitched(mCurrentUserId); + } } private void resetUserSetupObserver() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java index 962000a..b505d9d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java @@ -64,6 +64,7 @@ public class SecurityControllerImpl implements SecurityController { private SparseArray<VpnConfig> mCurrentVpns = new SparseArray<>(); private int mCurrentUserId; + private int mVpnUserId; public SecurityControllerImpl(Context context) { mContext = context; @@ -78,7 +79,7 @@ public class SecurityControllerImpl implements SecurityController { // TODO: re-register network callback on user change. mConnectivityManager.registerNetworkCallback(REQUEST, mNetworkCallback); - mCurrentUserId = ActivityManager.getCurrentUser(); + onUserSwitched(ActivityManager.getCurrentUser()); } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { @@ -123,9 +124,9 @@ public class SecurityControllerImpl implements SecurityController { @Override public String getPrimaryVpnName() { - VpnConfig cfg = mCurrentVpns.get(mCurrentUserId); + VpnConfig cfg = mCurrentVpns.get(mVpnUserId); if (cfg != null) { - return getNameForVpnConfig(cfg, new UserHandle(mCurrentUserId)); + return getNameForVpnConfig(cfg, new UserHandle(mVpnUserId)); } else { return null; } @@ -133,8 +134,8 @@ public class SecurityControllerImpl implements SecurityController { @Override public String getProfileVpnName() { - for (UserInfo profile : mUserManager.getProfiles(mCurrentUserId)) { - if (profile.id == mCurrentUserId) { + for (UserInfo profile : mUserManager.getProfiles(mVpnUserId)) { + if (profile.id == mVpnUserId) { continue; } VpnConfig cfg = mCurrentVpns.get(profile.id); @@ -147,7 +148,7 @@ public class SecurityControllerImpl implements SecurityController { @Override public boolean isVpnEnabled() { - for (UserInfo profile : mUserManager.getProfiles(mCurrentUserId)) { + for (UserInfo profile : mUserManager.getProfiles(mVpnUserId)) { if (mCurrentVpns.get(profile.id) != null) { return true; } @@ -172,6 +173,12 @@ public class SecurityControllerImpl implements SecurityController { @Override public void onUserSwitched(int 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(); } |