From 7c4d52c570c053e03ebbe57e22b24e06414aac17 Mon Sep 17 00:00:00 2001 From: "insight.lee" Date: Thu, 22 Dec 2016 16:14:44 +0900 Subject: [PATCH] Update VPN preference state after disallow configuring VPN policy has changed. 1. When Settings > More and change disallow configuring VPN policy and resume Settings, update VPN preference state. 2. When Settings > More > VPN and change disallow configuring VPN policy and resume VPN Settings, update its state. Test: manual Signed-off-by : Sungmin Lee Change-Id: I4f3c85733ca6ba05cba46e2f4854f54a42b10c21 --- src/com/android/settings/WirelessSettings.java | 13 +++++++++++-- src/com/android/settings/vpn2/VpnSettings.java | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java index 7434e679f83..fc473fc0e42 100644 --- a/src/com/android/settings/WirelessSettings.java +++ b/src/com/android/settings/WirelessSettings.java @@ -80,6 +80,7 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde private AirplaneModeEnabler mAirplaneModeEnabler; private SwitchPreference mAirplaneModePreference; + private RestrictedPreference mVpnPreference; private NfcEnabler mNfcEnabler; private NfcAdapter mNfcAdapter; @@ -230,6 +231,7 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde final Activity activity = getActivity(); mAirplaneModePreference = (SwitchPreference) findPreference(KEY_TOGGLE_AIRPLANE); + mVpnPreference = (RestrictedPreference) findPreference(KEY_VPN_SETTINGS); SwitchPreference nfc = (SwitchPreference) findPreference(KEY_TOGGLE_NFC); RestrictedPreference androidBeam = (RestrictedPreference) findPreference( KEY_ANDROID_BEAM_SETTINGS); @@ -260,7 +262,7 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde // Manually set dependencies for Wifi when not toggleable. if (toggleable == null || !toggleable.contains(Settings.Global.RADIO_WIFI)) { - findPreference(KEY_VPN_SETTINGS).setDependency(KEY_TOGGLE_AIRPLANE); + mVpnPreference.setDependency(KEY_TOGGLE_AIRPLANE); } // Disable VPN. // TODO: http://b/23693383 @@ -366,6 +368,11 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde } else { removePreference(KEY_WFC_SETTINGS); } + + // update VPN setting + if (mVpnPreference != null) { + mVpnPreference.checkRestrictionAndSetDisabled(UserManager.DISALLOW_CONFIG_VPN); + } } @Override @@ -429,11 +436,13 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde final boolean isWimaxEnabled = !isSecondaryUser && context.getResources().getBoolean( com.android.internal.R.bool.config_wimaxEnabled); + final boolean isVpnDisallowed = um.hasUserRestriction( + UserManager.DISALLOW_CONFIG_VPN); if (!isWimaxEnabled) { result.add(KEY_WIMAX_SETTINGS); } - if (isSecondaryUser) { // Disable VPN + if (isSecondaryUser || isVpnDisallowed) { // Disable VPN result.add(KEY_VPN_SETTINGS); } diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java index a675779bf99..0d968abc9b3 100644 --- a/src/com/android/settings/vpn2/VpnSettings.java +++ b/src/com/android/settings/vpn2/VpnSettings.java @@ -164,6 +164,7 @@ public class VpnSettings extends RestrictedSettingsFragment implements public void onResume() { super.onResume(); + mUnavailable = mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_VPN); if (mUnavailable) { // Show a message to explain that VPN settings have been disabled if (!isUiRestrictedByOnlyAdmin()) { @@ -172,6 +173,7 @@ public class VpnSettings extends RestrictedSettingsFragment implements getPreferenceScreen().removeAll(); return; } else { + setEmptyView(getEmptyTextView()); getEmptyTextView().setText(R.string.vpn_no_vpns_added); }