summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Robin Lee <rgl@google.com> 2015-10-06 15:58:30 +0100
committer Robin Lee <rgl@google.com> 2015-10-06 15:58:30 +0100
commit80d505367a5b51ea20e272e582c242ac30df3c9a (patch)
tree6676e7a525e7929c7dbe4cd556e806476cee3bb9
parent4e5c14f3e8eb327d2d89d7b0a624ee1f20fec596 (diff)
Hide VPN "settings" button when VPN is restricted
Opening Settings will just launch an empty, grayed-out page in this case. Bug: 24674409 Change-Id: I382f1add965c104d7d93443678c0e4b67fd55ad8
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSFooter.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/customize/CustomQSTileHost.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityController.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/tuner/QsTuner.java5
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;
}