summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DevelopmentSettings.java
diff options
context:
space:
mode:
authorAndres Morales <anmorales@google.com>2014-10-31 18:23:47 -0700
committerAndres Morales <anmorales@google.com>2014-11-03 17:02:11 -0800
commit73bbd4cbffd4c881b8b3a41c4ca9189fecad00a5 (patch)
tree86f2472643dbef6b54d1b14f72c18947bae1b5b1 /src/com/android/settings/DevelopmentSettings.java
parent8f5c0e4660629546fb651e8bc739677a60ad3302 (diff)
downloadpackages_apps_Settings-73bbd4cbffd4c881b8b3a41c4ca9189fecad00a5.zip
packages_apps_Settings-73bbd4cbffd4c881b8b3a41c4ca9189fecad00a5.tar.gz
packages_apps_Settings-73bbd4cbffd4c881b8b3a41c4ca9189fecad00a5.tar.bz2
Request PIN confirmation to enable OEM unlock
Bug: 18191568 Change-Id: I1cfce5131c96711876953a28d8d642342d15201e
Diffstat (limited to 'src/com/android/settings/DevelopmentSettings.java')
-rw-r--r--src/com/android/settings/DevelopmentSettings.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index d410366..97a3b68 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -31,6 +31,7 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
+import android.content.res.Resources;
import android.hardware.usb.IUsbManager;
import android.net.wifi.WifiManager;
import android.os.AsyncTask;
@@ -162,6 +163,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
private static final String PERSISTENT_DATA_BLOCK_PROP = "ro.frp.pst";
+ private static final int REQUEST_CODE_ENABLE_OEM_UNLOCK = 0;
+
private static String DEFAULT_LOG_RING_BUFFER_SIZE_IN_BYTES = "262144"; // 256K
private IWindowManager mWindowManager;
@@ -1311,6 +1314,10 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
writeDebuggerOptions();
updateDebuggerOptions();
}
+ } else if (requestCode == REQUEST_CODE_ENABLE_OEM_UNLOCK) {
+ if (resultCode == Activity.RESULT_OK) {
+ Utils.setOemUnlockEnabled(getActivity(), mEnableOemUnlock.isChecked());
+ }
} else {
super.onActivityResult(requestCode, resultCode, data);
}
@@ -1364,7 +1371,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
} else if (preference == mBtHciSnoopLog) {
writeBtHciSnoopLogOptions();
} else if (preference == mEnableOemUnlock) {
- Utils.setOemUnlockEnabled(getActivity(), mEnableOemUnlock.isChecked());
+ if (!showKeyguardConfirmation(getResources(), REQUEST_CODE_ENABLE_OEM_UNLOCK)) {
+ Utils.setOemUnlockEnabled(getActivity(), mEnableOemUnlock.isChecked());
+ }
} else if (preference == mAllowMockLocation) {
Settings.Secure.putInt(getActivity().getContentResolver(),
Settings.Secure.ALLOW_MOCK_LOCATION,
@@ -1426,6 +1435,13 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
return false;
}
+ private boolean showKeyguardConfirmation(Resources resources, int requestCode) {
+ return new ChooseLockSettingsHelper(getActivity(), this)
+ .launchConfirmationActivity(requestCode,
+ resources.getString(R.string.oem_unlock_enable_pin_prompt),
+ resources.getString(R.string.oem_unlock_enable_pin_description));
+ }
+
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (HDCP_CHECKING_KEY.equals(preference.getKey())) {