diff options
author | Andres Morales <anmorales@google.com> | 2014-10-31 18:23:47 -0700 |
---|---|---|
committer | Andres Morales <anmorales@google.com> | 2014-11-03 17:02:11 -0800 |
commit | 73bbd4cbffd4c881b8b3a41c4ca9189fecad00a5 (patch) | |
tree | 86f2472643dbef6b54d1b14f72c18947bae1b5b1 /src/com/android/settings/DevelopmentSettings.java | |
parent | 8f5c0e4660629546fb651e8bc739677a60ad3302 (diff) | |
download | packages_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.java | 18 |
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())) { |