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
This commit is contained in:
Doris Ling
2016-06-16 12:30:53 -07:00
parent 600a1eeec5
commit b1eadb11b4

View File

@@ -22,6 +22,7 @@ import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.provider.SearchIndexableResource; import android.provider.SearchIndexableResource;
import android.provider.Settings.Global;
import android.provider.Settings.Secure; import android.provider.Settings.Secure;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.text.TextUtils; import android.text.TextUtils;
@@ -80,6 +81,16 @@ public class GestureSettings extends SettingsPreferenceFragment implements
removePreference(PREF_KEY_PICK_UP_AND_NUDGE); 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 @Override
@@ -87,10 +98,13 @@ public class GestureSettings extends SettingsPreferenceFragment implements
boolean enabled = (boolean) newValue; boolean enabled = (boolean) newValue;
String key = preference.getKey(); String key = preference.getKey();
if (PREF_KEY_DOUBLE_TAP_POWER.equals(key)) { 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); Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, enabled ? 0 : 1);
} else if (PREF_KEY_PICK_UP_AND_NUDGE.equals(key)) { } 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; return true;
} }
@@ -114,6 +128,16 @@ public class GestureSettings extends SettingsPreferenceFragment implements
return !TextUtils.isEmpty(name); 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 = public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() { new BaseSearchIndexProvider() {
@Override @Override
@@ -138,6 +162,9 @@ public class GestureSettings extends SettingsPreferenceFragment implements
if (!isDozeAvailable(context)) { if (!isDozeAvailable(context)) {
result.add(PREF_KEY_PICK_UP_AND_NUDGE); result.add(PREF_KEY_PICK_UP_AND_NUDGE);
} }
if (!isSystemUINavigationAvailable(context)) {
result.add(PREF_KEY_SWIPE_DOWN_FINGERPRINT);
}
return result; return result;
} }
}; };