diff options
5 files changed, 21 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java index ca38528b05d0..47189b023132 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java @@ -140,13 +140,13 @@ public class QSFooter implements OnClickListener, DialogInterface.OnClickListene mDialog.setTitle(getTitle(deviceOwner)); mDialog.setMessage(getMessage(deviceOwner, profileOwner, primaryVpn, profileVpn, managed)); mDialog.setButton(DialogInterface.BUTTON_POSITIVE, getPositiveButton(), this); - if (mSecurityController.isVpnEnabled()) { - mDialog.setButton(DialogInterface.BUTTON_NEGATIVE, getNegativeButton(), this); + if (mSecurityController.isVpnEnabled() && !mSecurityController.isVpnRestricted()) { + mDialog.setButton(DialogInterface.BUTTON_NEGATIVE, getSettingsButton(), this); } mDialog.show(); } - private String getNegativeButton() { + private String getSettingsButton() { return mContext.getString(R.string.status_bar_settings_settings_button); } diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/CustomQSTileHost.java b/packages/SystemUI/src/com/android/systemui/qs/customize/CustomQSTileHost.java index f676ea3499cb..3491cb6fdf8a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/customize/CustomQSTileHost.java +++ b/packages/SystemUI/src/com/android/systemui/qs/customize/CustomQSTileHost.java @@ -160,6 +160,11 @@ public class CustomQSTileHost extends QSTileHost { } @Override + public boolean isVpnRestricted() { + return false; + } + + @Override public String getPrimaryVpnName() { return null; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityController.java index 40984d477cff..f06e5d354a12 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityController.java @@ -22,6 +22,7 @@ public interface SecurityController { String getDeviceOwnerName(); String getProfileOwnerName(); boolean isVpnEnabled(); + boolean isVpnRestricted(); String getPrimaryVpnName(); String getProfileVpnName(); void onUserSwitched(int newUserId); 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 e0823b41554d..88f028fa4b7d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java @@ -162,6 +162,13 @@ public class SecurityControllerImpl implements SecurityController { } @Override + public boolean isVpnRestricted() { + UserHandle currentUser = new UserHandle(mCurrentUserId); + return mUserManager.getUserInfo(mCurrentUserId).isRestricted() + || mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_VPN, currentUser); + } + + @Override public void removeCallback(SecurityControllerCallback callback) { synchronized (mCallbacks) { if (callback == null) return; diff --git a/packages/SystemUI/src/com/android/systemui/tuner/QsTuner.java b/packages/SystemUI/src/com/android/systemui/tuner/QsTuner.java index 703ee6610314..3ac2a943034d 100644 --- a/packages/SystemUI/src/com/android/systemui/tuner/QsTuner.java +++ b/packages/SystemUI/src/com/android/systemui/tuner/QsTuner.java @@ -350,6 +350,11 @@ public class QsTuner extends Fragment implements Callback { } @Override + public boolean isVpnRestricted() { + return false; + } + + @Override public String getPrimaryVpnName() { return null; } |