Re-enable Ambient Display double tab.
Restoring the changes to move Display->Ambient Display to Moves->Quick screen
This reverts commit 9b3000d8ac256093bbf62d04c518b67df244c311, except for
the removal of res/raw/gesture_ambient_move_lift.mp4
Test: Manual - Go to Settings->Display->Quick screen check and verify
the preference is restored.
Bug: 30595437
Change-Id: Ie50bcebd119714d49422b7139d0d0234f27584e2
diff --git a/res/raw/gesture_ambient_tap.mp4 b/res/raw/gesture_ambient_tap.mp4
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/raw/gesture_ambient_tap.mp4
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 10d35e0..3cbcc56 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2215,7 +2215,7 @@
<!-- [CHAR LIMIT=30] Display settings screen, setting option name to change whether the ambient display feature is enabled. -->
<string name="doze_title">Ambient display</string>
<!-- [CHAR LIMIT=NONE] Display settings screen, setting description for the ambient display feature. -->
- <string name="doze_summary">Wake screen when you receive notifications</string>
+ <string name="doze_summary">Wake screen when you double-tap it or get new notifications. See how</string>
<!-- [CHAR LIMIT=30] Sound & display settings screen, setting option name to change font size -->
<string name="title_font_size">Font size</string>
<!-- Summary for Font size. Lets the user know that this will make text larger or smaller. Appears in the accessibility portion of setup wizard. [CHAR LIMIT=NONE] -->
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index b5e2848..e797b4f 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -79,10 +79,19 @@
android:key="lift_to_wake"
android:title="@string/lift_to_wake_title" />
- <SwitchPreference
+ <PreferenceScreen
android:key="doze"
- android:title="@string/doze_title"
- android:summary="@string/doze_summary" />
+ android:title="@string/ambient_display_title"
+ android:summary="@string/doze_summary" >
+ <intent
+ android:targetPackage="com.android.settings"
+ android:targetClass="com.android.settings.Settings$GestureSettingsActivity" >
+ <extra android:name="show_drawer_menu"
+ android:value="true" />
+ <extra android:name="gesture_scroll_to_preference"
+ android:value="gesture_pick_up_and_nudge" />
+ </intent>
+ </PreferenceScreen>
<SwitchPreference
android:key="tap_to_wake"
diff --git a/res/xml/gesture_settings.xml b/res/xml/gesture_settings.xml
index f8b40b1..c5d4ab4 100644
--- a/res/xml/gesture_settings.xml
+++ b/res/xml/gesture_settings.xml
@@ -37,4 +37,10 @@
android:summary="@string/double_twist_for_camera_mode_summary"
settings:animation="@raw/gesture_twist"/>
+ <com.android.settings.gestures.GesturePreference
+ android:key="gesture_pick_up_and_nudge"
+ android:title="@string/ambient_display_title"
+ android:summary="@string/ambient_display_summary"
+ settings:animation="@raw/gesture_ambient_tap"/>
+
</PreferenceScreen>
\ No newline at end of file
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index f7b9443..87634fc 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -41,6 +41,7 @@
import android.support.v7.preference.ListPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
+import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import android.util.Log;
@@ -96,10 +97,10 @@
private ListPreference mNightModePreference;
private Preference mScreenSaverPreference;
private SwitchPreference mLiftToWakePreference;
- private SwitchPreference mDozePreference;
private SwitchPreference mTapToWakePreference;
private SwitchPreference mAutoBrightnessPreference;
private SwitchPreference mCameraGesturePreference;
+ private PreferenceScreen mDozePreference;
@Override
protected int getMetricsCategory() {
@@ -143,11 +144,10 @@
removePreference(KEY_LIFT_TO_WAKE);
}
- if (isDozeAvailable(activity)) {
- mDozePreference = (SwitchPreference) findPreference(KEY_DOZE);
- mDozePreference.setOnPreferenceChangeListener(this);
- } else {
+ if (!isDozeAvailable(activity)) {
removePreference(KEY_DOZE);
+ } else {
+ mDozePreference = (PreferenceScreen) findPreference(KEY_DOZE);
}
if (isTapToWakeAvailable(getResources())) {
@@ -360,12 +360,6 @@
mTapToWakePreference.setChecked(value != 0);
}
- // Update doze if it is available.
- if (mDozePreference != null) {
- int value = Settings.Secure.getInt(getContentResolver(), DOZE_ENABLED, 1);
- mDozePreference.setChecked(value != 0);
- }
-
// Update camera gesture #1 if it is available.
if (mCameraGesturePreference != null) {
int value = Settings.Secure.getInt(getContentResolver(), CAMERA_GESTURE_DISABLED, 0);
@@ -413,10 +407,6 @@
boolean value = (Boolean) objValue;
Settings.Secure.putInt(getContentResolver(), WAKE_GESTURE_ENABLED, value ? 1 : 0);
}
- if (preference == mDozePreference) {
- boolean value = (Boolean) objValue;
- Settings.Secure.putInt(getContentResolver(), DOZE_ENABLED, value ? 1 : 0);
- }
if (preference == mTapToWakePreference) {
boolean value = (Boolean) objValue;
Settings.Secure.putInt(getContentResolver(), DOUBLE_TAP_TO_WAKE, value ? 1 : 0);
diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java
index 9932bd6..a44c781 100644
--- a/src/com/android/settings/gestures/GestureSettings.java
+++ b/src/com/android/settings/gestures/GestureSettings.java
@@ -20,7 +20,9 @@
import android.content.res.Resources;
import android.hardware.Sensor;
import android.hardware.SensorManager;
+import android.os.Build;
import android.os.Bundle;
+import android.os.SystemProperties;
import android.provider.SearchIndexableResource;
import android.provider.Settings.Secure;
import android.support.v7.preference.Preference;
@@ -50,11 +52,16 @@
private static final String TAG = "GestureSettings";
private static final String PREF_KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
private static final String PREF_KEY_DOUBLE_TWIST = "gesture_double_twist";
+ private static final String PREF_KEY_PICK_UP_AND_NUDGE = "gesture_pick_up_and_nudge";
private static final String PREF_KEY_SWIPE_DOWN_FINGERPRINT = "gesture_swipe_down_fingerprint";
+ private static final String DEBUG_DOZE_COMPONENT = "debug.doze.component";
+ private static final String ARG_SCROLL_TO_PREFERENCE = "gesture_scroll_to_preference";
private static final int PREF_ID_DOUBLE_TAP_POWER = 0;
private static final int PREF_ID_DOUBLE_TWIST = 1;
- private static final int PREF_ID_SWIPE_DOWN_FINGERPRINT = 2;
+ private static final int PREF_ID_PICK_UP_AND_NUDG = 2;
+ private static final int PREF_ID_SWIPE_DOWN_FINGERPRINT = 3;
+ private int mScrollPosition = -1;
private List<GesturePreference> mPreferences;
@Override
@@ -73,10 +80,18 @@
removePreference(PREF_KEY_DOUBLE_TAP_POWER);
}
+ // Ambient Display
+ if (isDozeAvailable(context)) {
+ int dozeEnabled = Secure.getInt(getContentResolver(), Secure.DOZE_ENABLED, 1);
+ addPreference(PREF_KEY_PICK_UP_AND_NUDGE, dozeEnabled != 0, PREF_ID_DOUBLE_TWIST);
+ } else {
+ removePreference(PREF_KEY_PICK_UP_AND_NUDGE);
+ }
+
// Fingerprint slide for notifications
if (isSystemUINavigationAvailable(context)) {
addPreference(PREF_KEY_SWIPE_DOWN_FINGERPRINT, isSystemUINavigationEnabled(context),
- PREF_ID_SWIPE_DOWN_FINGERPRINT);
+ PREF_ID_PICK_UP_AND_NUDG);
} else {
removePreference(PREF_KEY_SWIPE_DOWN_FINGERPRINT);
}
@@ -85,11 +100,23 @@
if (isDoubleTwistAvailable(context)) {
int doubleTwistEnabled = Secure.getInt(
getContentResolver(), Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1);
- addPreference(PREF_KEY_DOUBLE_TWIST, doubleTwistEnabled != 0, PREF_ID_DOUBLE_TWIST);
+ addPreference(PREF_KEY_DOUBLE_TWIST, doubleTwistEnabled != 0,
+ PREF_ID_SWIPE_DOWN_FINGERPRINT);
} else {
removePreference(PREF_KEY_DOUBLE_TWIST);
}
+ if (savedInstanceState == null) {
+ final Bundle args = getArguments();
+ if (args != null && args.containsKey(ARG_SCROLL_TO_PREFERENCE)) {
+ String prefKey = args.getString(ARG_SCROLL_TO_PREFERENCE);
+ GesturePreference pref = (GesturePreference) findPreference(prefKey);
+ if (pref != null) {
+ mScrollPosition = pref.getOrder();
+ }
+ }
+ }
+
}
@Override
@@ -97,6 +124,9 @@
Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
RecyclerView listview = getListView();
+ if (mScrollPosition >= 0) {
+ listview.scrollToPosition(mScrollPosition);
+ }
listview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
@@ -133,6 +163,8 @@
if (PREF_KEY_DOUBLE_TAP_POWER.equals(key)) {
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(getContentResolver(), Secure.DOZE_ENABLED, enabled ? 1 : 0);
} else if (PREF_KEY_SWIPE_DOWN_FINGERPRINT.equals(key)) {
Secure.putInt(getContentResolver(),
Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, enabled ? 1 : 0);
@@ -158,6 +190,15 @@
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled);
}
+ private static boolean isDozeAvailable(Context context) {
+ String name = Build.IS_DEBUGGABLE ? SystemProperties.get(DEBUG_DOZE_COMPONENT) : null;
+ if (TextUtils.isEmpty(name)) {
+ name = context.getResources().getString(
+ com.android.internal.R.string.config_dozeComponent);
+ }
+ return !TextUtils.isEmpty(name);
+ }
+
private static boolean isSystemUINavigationAvailable(Context context) {
return context.getResources().getBoolean(
com.android.internal.R.bool.config_supportSystemNavigationKeys);
@@ -213,6 +254,9 @@
if (!isCameraDoubleTapPowerGestureAvailable(context.getResources())) {
result.add(PREF_KEY_DOUBLE_TAP_POWER);
}
+ if (!isDozeAvailable(context)) {
+ result.add(PREF_KEY_PICK_UP_AND_NUDGE);
+ }
if (!isSystemUINavigationAvailable(context)) {
result.add(PREF_KEY_SWIPE_DOWN_FINGERPRINT);
}