Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading services/core/java/com/android/server/vibrator/VibratorFrameworkStatsLogger.java +19 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } } services/core/java/com/android/server/vibrator/VibratorManagerService.java +1 −0 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading
services/core/java/com/android/server/vibrator/VibratorFrameworkStatsLogger.java +19 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } }
services/core/java/com/android/server/vibrator/VibratorManagerService.java +1 −0 Original line number Diff line number Diff line Loading @@ -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); } Loading