|
16 | 16 |
|
17 | 17 | package com.android.settings.biometrics.fingerprint; |
18 | 18 |
|
19 | | - |
20 | 19 | import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME; |
21 | 20 |
|
22 | 21 | import android.app.Activity; |
|
33 | 32 | import android.os.Handler; |
34 | 33 | import android.os.UserHandle; |
35 | 34 | import android.os.UserManager; |
| 35 | +import android.provider.Settings; |
36 | 36 | import android.text.TextUtils; |
37 | 37 | import android.util.Log; |
38 | 38 | import android.view.View; |
|
51 | 51 | import com.android.settings.SettingsPreferenceFragment; |
52 | 52 | import com.android.settings.SubSettings; |
53 | 53 | import com.android.settings.Utils; |
| 54 | +import com.android.settings.accessibility.DividerSwitchPreference; |
54 | 55 | import com.android.settings.biometrics.BiometricEnrollBase; |
55 | 56 | import com.android.settings.core.instrumentation.InstrumentedDialogFragment; |
56 | 57 | import com.android.settings.password.ChooseLockGeneric; |
@@ -111,6 +112,8 @@ public static class FingerprintSettingsFragment extends SettingsPreferenceFragme |
111 | 112 | private static final String KEY_FINGERPRINT_ADD = "key_fingerprint_add"; |
112 | 113 | private static final String KEY_FINGERPRINT_ENABLE_KEYGUARD_TOGGLE = |
113 | 114 | "fingerprint_enable_keyguard_toggle"; |
| 115 | + private static final String KEY_FINGERPRINT_POWER_BUTTON_PRESS = |
| 116 | + "fingerprint_power_button_press"; |
114 | 117 | private static final String KEY_LAUNCHED_CONFIRM = "launched_confirm"; |
115 | 118 |
|
116 | 119 | private static final int MSG_REFRESH_FINGERPRINT_TEMPLATES = 1000; |
@@ -373,6 +376,12 @@ private PreferenceScreen createPreferenceHierarchy() { |
373 | 376 | return root; |
374 | 377 | } |
375 | 378 |
|
| 379 | + private boolean isPowerButtonPressEnabled() { |
| 380 | + return Settings.Secure.getIntForUser(getContext().getContentResolver(), |
| 381 | + Settings.Secure.FINGERPRINT_POWER_BUTTON_PRESS, 0, |
| 382 | + UserHandle.USER_CURRENT) == 1; |
| 383 | + } |
| 384 | + |
376 | 385 | private void addFingerprintItemPreferences(PreferenceGroup root) { |
377 | 386 | root.removeAll(); |
378 | 387 | final List<Fingerprint> items = mFingerprintManager.getEnrolledFingerprints(mUserId); |
@@ -402,6 +411,18 @@ private void addFingerprintItemPreferences(PreferenceGroup root) { |
402 | 411 | root.addPreference(addPreference); |
403 | 412 | addPreference.setOnPreferenceChangeListener(this); |
404 | 413 | updateAddPreference(); |
| 414 | + if (getContext().getResources().getBoolean( |
| 415 | + com.android.internal.R.bool.config_powerButtonFingerprint)) { |
| 416 | + DividerSwitchPreference powerButtonPref = new DividerSwitchPreference(root.getContext()); |
| 417 | + powerButtonPref.setKey(KEY_FINGERPRINT_POWER_BUTTON_PRESS); |
| 418 | + powerButtonPref.setTitle(R.string.fingerprint_power_button_press_title); |
| 419 | + powerButtonPref.setSummary(isPowerButtonPressEnabled() ? |
| 420 | + R.string.fingerprint_power_button_press_on_summary : |
| 421 | + R.string.fingerprint_power_button_press_off_summary); |
| 422 | + powerButtonPref.setChecked(isPowerButtonPressEnabled()); |
| 423 | + powerButtonPref.setOnPreferenceChangeListener(this); |
| 424 | + root.addPreference(powerButtonPref); |
| 425 | + } |
405 | 426 | createFooterPreference(root); |
406 | 427 | } |
407 | 428 |
|
@@ -549,6 +570,14 @@ public boolean onPreferenceChange(Preference preference, Object value) { |
549 | 570 | final String key = preference.getKey(); |
550 | 571 | if (KEY_FINGERPRINT_ENABLE_KEYGUARD_TOGGLE.equals(key)) { |
551 | 572 | // TODO |
| 573 | + } else if (KEY_FINGERPRINT_POWER_BUTTON_PRESS.equals(key)) { |
| 574 | + boolean enabled = (Boolean) value; |
| 575 | + result = Settings.Secure.putIntForUser(getContext().getContentResolver(), |
| 576 | + Settings.Secure.FINGERPRINT_POWER_BUTTON_PRESS, |
| 577 | + enabled ? 1 : 0, UserHandle.USER_CURRENT); |
| 578 | + if (result) |
| 579 | + preference.setSummary(enabled ? R.string.fingerprint_power_button_press_on_summary |
| 580 | + : R.string.fingerprint_power_button_press_off_summary); |
552 | 581 | } else { |
553 | 582 | Log.v(TAG, "Unknown key:" + key); |
554 | 583 | } |
|
0 commit comments