Add handling for fingerprint swipe in gesture settings.
Hide fingerprint swipe setting if it is not supported, and update the
corresponding config when user enable/disable the fingerprint gesture.
Bug: 28565958
Change-Id: I5a124d3b6933ea6d3aadceaa0eecaa4bee2ccd9d
diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java
index 0889e2a..2aa4f43 100644
--- a/src/com/android/settings/gestures/GestureSettings.java
+++ b/src/com/android/settings/gestures/GestureSettings.java
@@ -22,6 +22,7 @@
import android.os.Bundle;
import android.os.SystemProperties;
import android.provider.SearchIndexableResource;
+import android.provider.Settings.Global;
import android.provider.Settings.Secure;
import android.support.v7.preference.Preference;
import android.text.TextUtils;
@@ -80,6 +81,16 @@
removePreference(PREF_KEY_PICK_UP_AND_NUDGE);
}
+ // Fingerprint slide for notifications
+ if (isSystemUINavigationAvailable(context)) {
+ GesturePreference preference =
+ (GesturePreference) findPreference(PREF_KEY_SWIPE_DOWN_FINGERPRINT);
+ preference.setChecked(isSystemUINavigationEnabled(context));
+ preference.setOnPreferenceChangeListener(this);
+ } else {
+ removePreference(PREF_KEY_SWIPE_DOWN_FINGERPRINT);
+ }
+
}
@Override
@@ -87,10 +98,13 @@
boolean enabled = (boolean) newValue;
String key = preference.getKey();
if (PREF_KEY_DOUBLE_TAP_POWER.equals(key)) {
- Secure.putInt(getActivity().getContentResolver(),
+ Secure.putInt(getContentResolver(),
Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, enabled ? 0 : 1);
} else if (PREF_KEY_PICK_UP_AND_NUDGE.equals(key)) {
- Secure.putInt(getActivity().getContentResolver(), Secure.DOZE_ENABLED, enabled ? 1 : 0);
+ Secure.putInt(getContentResolver(), Secure.DOZE_ENABLED, enabled ? 1 : 0);
+ } else if (PREF_KEY_SWIPE_DOWN_FINGERPRINT.equals(key)) {
+ Global.putInt(getContentResolver(),
+ Global.SYSTEM_NAVIGATION_KEYS_ENABLED, enabled ? 1 : 0);
}
return true;
}
@@ -114,6 +128,16 @@
return !TextUtils.isEmpty(name);
}
+ private static boolean isSystemUINavigationAvailable(Context context) {
+ return context.getResources().getBoolean(
+ com.android.internal.R.bool.config_supportSystemNavigationKeys);
+ }
+
+ private static boolean isSystemUINavigationEnabled(Context context) {
+ return Global.getInt(context.getContentResolver(), Global.SYSTEM_NAVIGATION_KEYS_ENABLED, 0)
+ == 1;
+ }
+
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
@@ -138,6 +162,9 @@
if (!isDozeAvailable(context)) {
result.add(PREF_KEY_PICK_UP_AND_NUDGE);
}
+ if (!isSystemUINavigationAvailable(context)) {
+ result.add(PREF_KEY_SWIPE_DOWN_FINGERPRINT);
+ }
return result;
}
};