Add counter for predictive info for hush gesture
Test: adb shell settings get secure hush_gesture_used
Test: adb shell settings get secure manual_ringer_toggle_count
Change-Id: Id4feeefa03a5951c03b09ab466a6c399d8aadd0e
Fixes: 79537757
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 4038d0b..bda74c3 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -6001,6 +6001,23 @@
new SettingsValidators.ComponentNameListValidator(":");
/**
+ * Whether the hush gesture has ever been used // TODO: beverlyt
+ * @hide
+ */
+ public static final String HUSH_GESTURE_USED = "hush_gesture_used";
+
+ private static final Validator HUSH_GESTURE_USED_VALIDATOR = BOOLEAN_VALIDATOR;
+
+ /**
+ * Number of times the user has manually clicked the ringer toggle
+ * @hide
+ */
+ public static final String MANUAL_RINGER_TOGGLE_COUNT = "manual_ringer_toggle_count";
+
+ private static final Validator MANUAL_RINGER_TOGGLE_COUNT_VALIDATOR =
+ NON_NEGATIVE_INTEGER_VALIDATOR;
+
+ /**
* Uri of the slice that's presented on the keyguard.
* Defaults to a slice with the date and next alarm.
*
@@ -7983,7 +8000,9 @@
SCREENSAVER_ACTIVATE_ON_SLEEP,
LOCKDOWN_IN_POWER_MENU,
SHOW_FIRST_CRASH_DIALOG_DEV_OPTION,
- VOLUME_HUSH_GESTURE
+ VOLUME_HUSH_GESTURE,
+ MANUAL_RINGER_TOGGLE_COUNT,
+ HUSH_GESTURE_USED,
};
/**
@@ -8130,6 +8149,8 @@
ENABLED_NOTIFICATION_ASSISTANT_VALIDATOR); //legacy restore setting
VALIDATORS.put(ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES,
ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES_VALIDATOR); //legacy restore setting
+ VALIDATORS.put(HUSH_GESTURE_USED, HUSH_GESTURE_USED_VALIDATOR);
+ VALIDATORS.put(MANUAL_RINGER_TOGGLE_COUNT, MANUAL_RINGER_TOGGLE_COUNT_VALIDATOR);
}
/**
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 15df0a8..85bbd59 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -2935,7 +2935,7 @@
}
private final class UpgradeController {
- private static final int SETTINGS_VERSION = 166;
+ private static final int SETTINGS_VERSION = 167;
private final int mUserId;
@@ -3770,6 +3770,28 @@
currentVersion = 166;
}
+ if (currentVersion == 166) {
+ // Version 166: add default values for hush gesture used and manual ringer
+ // toggle
+ final SettingsState secureSettings = getSecureSettingsLocked(userId);
+ Setting currentHushUsedSetting = secureSettings.getSettingLocked(
+ Secure.HUSH_GESTURE_USED);
+ if (currentHushUsedSetting.isNull()) {
+ secureSettings.insertSettingLocked(
+ Settings.Secure.HUSH_GESTURE_USED, "0", null, true,
+ SettingsState.SYSTEM_PACKAGE_NAME);
+ }
+
+ Setting currentRingerToggleCountSetting = secureSettings.getSettingLocked(
+ Secure.MANUAL_RINGER_TOGGLE_COUNT);
+ if (currentRingerToggleCountSetting.isNull()) {
+ secureSettings.insertSettingLocked(
+ Settings.Secure.MANUAL_RINGER_TOGGLE_COUNT, "0", null, true,
+ SettingsState.SYSTEM_PACKAGE_NAME);
+ }
+ currentVersion = 167;
+ }
+
// vXXX: Add new settings above this point.
if (currentVersion != newVersion) {
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
index 6b322c7..d76b7f0 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
@@ -36,6 +36,7 @@
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.app.KeyguardManager;
+import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -445,6 +446,7 @@
}
}
Events.writeEvent(mContext, Events.EVENT_RINGER_TOGGLE, newRingerMode);
+ incrementManualToggleCount();
updateRingerH();
provideTouchFeedbackH(newRingerMode);
mController.setRingerMode(newRingerMode, false);
@@ -453,6 +455,11 @@
updateRingerH();
}
+ private void incrementManualToggleCount() {
+ ContentResolver cr = mContext.getContentResolver();
+ int ringerCount = Settings.Secure.getInt(cr, Settings.Secure.MANUAL_RINGER_TOGGLE_COUNT, 0);
+ Settings.Secure.putInt(cr, Settings.Secure.MANUAL_RINGER_TOGGLE_COUNT, ringerCount + 1);
+ }
private void provideTouchFeedbackH(int newRingerMode) {
VibrationEffect effect = null;
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 42215c9..d911761 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -1138,6 +1138,7 @@
}
getAudioManagerInternal();
mAudioManagerInternal.silenceRingerModeInternal("volume_hush");
+ Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.HUSH_GESTURE_USED, 1);
mLogger.action(MetricsProto.MetricsEvent.ACTION_HUSH_GESTURE, mRingerToggleChord);
}