summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorRobin Lee <rgl@google.com>2015-06-26 20:44:55 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-26 20:44:57 +0000
commitcd7ceb0711672eabd1de578f2452ddcb8a322f68 (patch)
tree342103be4e098e8686ed36d6327aeecfa9a1574d /packages
parent6356d3b2504cefce59761d67b642ae37f8ba2d8b (diff)
parent63204eeafe7a51953d346717639f3e6eeb1f9bd5 (diff)
downloadframeworks_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.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java19
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();
}