diff options
| author | 2024-02-22 16:40:45 +0000 | |
|---|---|---|
| committer | 2024-02-22 16:40:45 +0000 | |
| commit | 9e5ff3d1e70a133c9a2147cc833a86287a7358a4 (patch) | |
| tree | 6152d7c9e5e33c54e18e12782da4a6da1627cc99 | |
| parent | 7a5e8da287a66e3c920ae8addcb15f632976ec52 (diff) | |
| parent | 0dab1498fbb4019e344f994df8aed3fdc0421283 (diff) | |
Merge "Add telemetry express for performHapticFeedback(KEYBOARD_*)" into main
3 files changed, 22 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index b5cd943ea605..8781bf19565e 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -236,6 +236,7 @@ import com.android.server.policy.keyguard.KeyguardServiceDelegate.DrawnListener; import com.android.server.policy.keyguard.KeyguardStateMonitor.StateCallback; import com.android.server.statusbar.StatusBarManagerInternal; import com.android.server.vibrator.HapticFeedbackVibrationProvider; +import com.android.server.vibrator.VibratorFrameworkStatsLogger; import com.android.server.vr.VrManagerInternal; import com.android.server.wallpaper.WallpaperManagerInternal; import com.android.server.wm.ActivityTaskManagerInternal; @@ -6431,6 +6432,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { VibrationAttributes attrs = mHapticFeedbackVibrationProvider.getVibrationAttributesForHapticFeedback( effectId, /* bypassVibrationIntensitySetting= */ always); + VibratorFrameworkStatsLogger.logPerformHapticsFeedbackIfKeyboard(uid, effectId); mVibrator.vibrate(uid, packageName, effect, reason, attrs); return true; } diff --git a/services/core/java/com/android/server/vibrator/VibratorFrameworkStatsLogger.java b/services/core/java/com/android/server/vibrator/VibratorFrameworkStatsLogger.java index f600a2964cbc..7e601b64ad18 100644 --- a/services/core/java/com/android/server/vibrator/VibratorFrameworkStatsLogger.java +++ b/services/core/java/com/android/server/vibrator/VibratorFrameworkStatsLogger.java @@ -19,10 +19,12 @@ package com.android.server.vibrator; import android.os.Handler; import android.os.SystemClock; import android.util.Slog; +import android.view.HapticFeedbackConstants; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.FrameworkStatsLog; +import com.android.modules.expresslog.Counter; import java.util.ArrayDeque; import java.util.Queue; @@ -137,4 +139,21 @@ public class VibratorFrameworkStatsLogger { mVibrationReportedLogIntervalMillis); } } + + /** Logs only if the haptics feedback effect is one of the KEYBOARD_ constants. */ + public static void logPerformHapticsFeedbackIfKeyboard(int uid, int hapticsFeedbackEffect) { + boolean isKeyboard; + switch (hapticsFeedbackEffect) { + case HapticFeedbackConstants.KEYBOARD_TAP: + case HapticFeedbackConstants.KEYBOARD_RELEASE: + isKeyboard = true; + break; + default: + isKeyboard = false; + break; + } + if (isKeyboard) { + Counter.logIncrementWithUid("vibrator.value_perform_haptic_feedback_keyboard", uid); + } + } } diff --git a/services/core/java/com/android/server/vibrator/VibratorManagerService.java b/services/core/java/com/android/server/vibrator/VibratorManagerService.java index 5d172a9feef3..d979c6112cf5 100644 --- a/services/core/java/com/android/server/vibrator/VibratorManagerService.java +++ b/services/core/java/com/android/server/vibrator/VibratorManagerService.java @@ -448,6 +448,7 @@ public class VibratorManagerService extends IVibratorManagerService.Stub { VibrationAttributes attrs = hapticVibrationProvider.getVibrationAttributesForHapticFeedback( constant, /* bypassVibrationIntensitySetting= */ always); + VibratorFrameworkStatsLogger.logPerformHapticsFeedbackIfKeyboard(uid, constant); return vibrateWithoutPermissionCheck(uid, deviceId, opPkg, combinedVibration, attrs, "performHapticFeedback: " + reason, token); } |