summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/WirelessSettings.java
diff options
context:
space:
mode:
authorGeoffrey Borggaard <geoffreyb@google.com>2013-08-02 18:16:27 -0400
committerGeoffrey Borggaard <geoffreyb@google.com>2013-08-06 17:24:37 -0400
commitfe21d9aaa8a8c7f8a759805ba021b59dd821e4fe (patch)
tree6ff78c7c639f19c38e8e9af211b27155eea0f3b9 /src/com/android/settings/WirelessSettings.java
parentd98d2abda6ce097c6473bb40e36810fa13a66403 (diff)
downloadpackages_apps_Settings-fe21d9aaa8a8c7f8a759805ba021b59dd821e4fe.zip
packages_apps_Settings-fe21d9aaa8a8c7f8a759805ba021b59dd821e4fe.tar.gz
packages_apps_Settings-fe21d9aaa8a8c7f8a759805ba021b59dd821e4fe.tar.bz2
Pin protect more screens.
When these screens are locked down with user restrictions, it should prompt the user for the restrictions pin before allowing access to the settings screen. Change-Id: Iadbb087da2d9470b855ea0bea89f2da1ffb9e854
Diffstat (limited to 'src/com/android/settings/WirelessSettings.java')
-rw-r--r--src/com/android/settings/WirelessSettings.java28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index 1f29927..ecb984d 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -16,6 +16,8 @@
package com.android.settings;
+import java.util.HashSet;
+
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -44,7 +46,7 @@ import com.android.internal.telephony.TelephonyProperties;
import com.android.settings.nfc.NfcEnabler;
import com.android.settings.NsdEnabler;
-public class WirelessSettings extends SettingsPreferenceFragment {
+public class WirelessSettings extends RestrictedSettingsFragment {
private static final String TAG = "WirelessSettings";
private static final String KEY_TOGGLE_AIRPLANE = "toggle_airplane";
@@ -73,7 +75,11 @@ public class WirelessSettings extends SettingsPreferenceFragment {
private static final int MANAGE_MOBILE_PLAN_DIALOG_ID = 1;
private static final String SAVED_MANAGE_MOBILE_PLAN_MSG = "mManageMobilePlanMessage";
+ private final HashSet<Preference> mProtectedByRestictionsPrefs = new HashSet<Preference>();
+ public WirelessSettings() {
+ super(null);
+ }
/**
* Invoked on each preference click in this hierarchy, overrides
* PreferenceActivity's implementation. Used to make sure we track the
@@ -81,6 +87,10 @@ public class WirelessSettings extends SettingsPreferenceFragment {
*/
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+ if (mProtectedByRestictionsPrefs.contains(preference) && !hasChallengeSucceeded()) {
+ restrictionsPinCheck(RESTRICTIONS_PIN_SET);
+ return false;
+ }
log("onPreferenceTreeClick: preference=" + preference);
if (preference == mAirplaneModePreference && Boolean.parseBoolean(
SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) {
@@ -145,6 +155,13 @@ public class WirelessSettings extends SettingsPreferenceFragment {
}
}
+ private void protectByRestrictions(String key) {
+ Preference pref = findPreference(key);
+ if (pref != null) {
+ mProtectedByRestictionsPrefs.add(pref);
+ }
+ }
+
@Override
public Dialog onCreateDialog(int dialogId) {
log("onCreateDialog: dialogId=" + dialogId);
@@ -225,6 +242,8 @@ public class WirelessSettings extends SettingsPreferenceFragment {
ps.setDependency(KEY_TOGGLE_AIRPLANE);
}
}
+ protectByRestrictions(KEY_WIMAX_SETTINGS);
+
// 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);
@@ -232,7 +251,7 @@ public class WirelessSettings extends SettingsPreferenceFragment {
if (isSecondaryUser) { // Disable VPN
removePreference(KEY_VPN_SETTINGS);
}
-
+ protectByRestrictions(KEY_VPN_SETTINGS);
// Manually set dependencies for Bluetooth when not toggleable.
if (toggleable == null || !toggleable.contains(Settings.Global.RADIO_BLUETOOTH)) {
// No bluetooth-dependent items in the list. Code kept in case one is added later.
@@ -257,6 +276,8 @@ public class WirelessSettings extends SettingsPreferenceFragment {
removePreference(KEY_MOBILE_NETWORK_SETTINGS);
removePreference(KEY_MANAGE_MOBILE_PLAN);
}
+ protectByRestrictions(KEY_MOBILE_NETWORK_SETTINGS);
+ protectByRestrictions(KEY_MANAGE_MOBILE_PLAN);
// Remove Airplane Mode settings if it's a stationary device such as a TV.
if (getActivity().getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEVISION)) {
@@ -280,6 +301,7 @@ public class WirelessSettings extends SettingsPreferenceFragment {
Preference p = findPreference(KEY_TETHER_SETTINGS);
p.setTitle(Utils.getTetheringLabel(cm));
}
+ protectByRestrictions(KEY_TETHER_SETTINGS);
// Enable link to CMAS app settings depending on the value in config.xml.
boolean isCellBroadcastAppLinkEnabled = this.getResources().getBoolean(
@@ -300,6 +322,7 @@ public class WirelessSettings extends SettingsPreferenceFragment {
Preference ps = findPreference(KEY_CELL_BROADCAST_SETTINGS);
if (ps != null) root.removePreference(ps);
}
+ protectByRestrictions(KEY_CELL_BROADCAST_SETTINGS);
}
@Override
@@ -345,6 +368,7 @@ public class WirelessSettings extends SettingsPreferenceFragment {
mAirplaneModeEnabler.setAirplaneModeInECM(isChoiceYes,
mAirplaneModePreference.isChecked());
}
+ super.onActivityResult(requestCode, resultCode, data);
}
@Override