summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adrian Roos <roosa@google.com> 2024-02-22 16:40:45 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-02-22 16:40:45 +0000
commit9e5ff3d1e70a133c9a2147cc833a86287a7358a4 (patch)
tree6152d7c9e5e33c54e18e12782da4a6da1627cc99
parent7a5e8da287a66e3c920ae8addcb15f632976ec52 (diff)
parent0dab1498fbb4019e344f994df8aed3fdc0421283 (diff)
Merge "Add telemetry express for performHapticFeedback(KEYBOARD_*)" into main
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java2
-rw-r--r--services/core/java/com/android/server/vibrator/VibratorFrameworkStatsLogger.java19
-rw-r--r--services/core/java/com/android/server/vibrator/VibratorManagerService.java1
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);
}