From a6e468831ad855c7a328657e873d1320db8b433e Mon Sep 17 00:00:00 2001 From: Beverly Date: Wed, 9 Oct 2019 18:15:27 -0400 Subject: [PATCH] Add motion sense tap gesture + touch counts AWARE_TAP_PAUSE_GESTURE_COUNT is the number of times the user has used the Motion Sense tap gesture to pause media. This number is used to determine whether to show the "Tap to pause media" contextual tooltip. AWARE_TAP_PAUSE_TOUCH_COUNT is the number of times the user has touched the device to pause media instead of using the Motion Sense tap gesture (Motion Sense and tap gesture must be active for this value to increment). This number is also used to determine whether to show the "Tap to pause media" contextual tip. We back up these counts so that users moving to new devices with Motion Sense will not be given these contextual tips again if they already know how to use the feature. Test: manual Bug: 138296598 Change-Id: I702719fb7cec8b6be9dff91d212a00fb26129957 --- core/java/android/provider/Settings.java | 13 +++++++++++++ core/proto/android/providers/settings/secure.proto | 5 +++++ .../provider/settings/backup/SecureSettings.java | 4 +++- .../validators/SecureSettingsValidators.java | 2 ++ .../providers/settings/SettingsProtoDumpUtil.java | 6 ++++++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 800c15c18143f..bdc78342d42a0 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -7318,6 +7318,19 @@ public final class Settings { */ public static final String SILENCE_CALL_TOUCH_COUNT = "silence_call_touch_count"; + /** + * Number of successful "Motion Sense" tap gestures to pause media. + * @hide + */ + public static final String AWARE_TAP_PAUSE_GESTURE_COUNT = "aware_tap_pause_gesture_count"; + + /** + * Number of touch interactions to pause media when a "Motion Sense" gesture could + * have been used. + * @hide + */ + public static final String AWARE_TAP_PAUSE_TOUCH_COUNT = "aware_tap_pause_touch_count"; + /** * The current night mode that has been selected by the user. Owned * and controlled by UiModeManagerService. Constants are as per diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto index d5528deeaf151..4ea574dadc734 100644 --- a/core/proto/android/providers/settings/secure.proto +++ b/core/proto/android/providers/settings/secure.proto @@ -211,6 +211,11 @@ message SecureSettingsProto { optional SettingProto silence_timer_touch_count = 11 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto skip_touch_count = 12 [ (android.privacy).dest = DEST_AUTOMATIC ]; + optional SettingProto aware_tap_pause_gesture_count = 13 [ + (android.privacy).dest = + DEST_AUTOMATIC ]; + optional SettingProto aware_tap_pause_touch_count = 14 [ (android.privacy).dest = + DEST_AUTOMATIC ]; } optional Gesture gesture = 74; diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java index 8c9705753dec2..146f30d788d3c 100644 --- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java +++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java @@ -152,6 +152,8 @@ public class SecureSettings { Settings.Secure.SILENCE_TIMER_TOUCH_COUNT, Settings.Secure.DARK_MODE_DIALOG_SEEN, Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED, - Settings.Secure.AWARE_LOCK_ENABLED + Settings.Secure.AWARE_LOCK_ENABLED, + Settings.Secure.AWARE_TAP_PAUSE_GESTURE_COUNT, + Settings.Secure.AWARE_TAP_PAUSE_TOUCH_COUNT }; } diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java index ef67bbdcec4a2..f7fc0c5fdc494 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java @@ -220,6 +220,8 @@ public class SecureSettingsValidators { VALIDATORS.put(Secure.SILENCE_ALARMS_TOUCH_COUNT, NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(Secure.SILENCE_TIMER_TOUCH_COUNT, NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(Secure.SILENCE_CALL_TOUCH_COUNT, NON_NEGATIVE_INTEGER_VALIDATOR); + VALIDATORS.put(Secure.AWARE_TAP_PAUSE_GESTURE_COUNT, NON_NEGATIVE_INTEGER_VALIDATOR); + VALIDATORS.put(Secure.AWARE_TAP_PAUSE_TOUCH_COUNT, NON_NEGATIVE_INTEGER_VALIDATOR); VALIDATORS.put(Secure.ODI_CAPTIONS_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.DARK_MODE_DIALOG_SEEN, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.UI_NIGHT_MODE, new InclusiveIntegerRangeValidator(0, 2)); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index 2ce4e9771d7ce..6bd26bf03a556 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -2047,6 +2047,12 @@ class SettingsProtoDumpUtil { dumpSetting(s, p, Settings.Secure.SKIP_TOUCH_COUNT, SecureSettingsProto.Gesture.SKIP_TOUCH_COUNT); + dumpSetting(s, p, + Settings.Secure.AWARE_TAP_PAUSE_GESTURE_COUNT, + SecureSettingsProto.Gesture.AWARE_TAP_PAUSE_GESTURE_COUNT); + dumpSetting(s, p, + Settings.Secure.AWARE_TAP_PAUSE_TOUCH_COUNT, + SecureSettingsProto.Gesture.AWARE_TAP_PAUSE_TOUCH_COUNT); p.end(gestureToken); dumpSetting(s, p,