diff options
author | 2024-08-09 18:22:59 +0000 | |
---|---|---|
committer | 2024-08-09 18:22:59 +0000 | |
commit | 0d4952a23c4d3236701964d341dea79ccfd1ddcb (patch) | |
tree | 840ac4f7c38e1befb76fc24537adbdcea11b0524 | |
parent | d439c6190e217780329f747d18e9683fce8a5002 (diff) | |
parent | 01dda268ff27269fc6f4f3a02a68a42d793ba43d (diff) |
Merge "Report vendor vibrations via VibrationReported atom" into main
3 files changed, 16 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/vibrator/HalVibration.java b/services/core/java/com/android/server/vibrator/HalVibration.java index 46bd7af159da..fe0cf5909970 100644 --- a/services/core/java/com/android/server/vibrator/HalVibration.java +++ b/services/core/java/com/android/server/vibrator/HalVibration.java @@ -170,9 +170,11 @@ final class HalVibration extends Vibration { /** Return {@link VibrationStats.StatsInfo} with read-only metrics about this vibration. */ public VibrationStats.StatsInfo getStatsInfo(long completionUptimeMillis) { - int vibrationType = isRepeating() - ? FrameworkStatsLog.VIBRATION_REPORTED__VIBRATION_TYPE__REPEATED - : FrameworkStatsLog.VIBRATION_REPORTED__VIBRATION_TYPE__SINGLE; + int vibrationType = mEffectToPlay.hasVendorEffects() + ? FrameworkStatsLog.VIBRATION_REPORTED__VIBRATION_TYPE__VENDOR + : isRepeating() + ? FrameworkStatsLog.VIBRATION_REPORTED__VIBRATION_TYPE__REPEATED + : FrameworkStatsLog.VIBRATION_REPORTED__VIBRATION_TYPE__SINGLE; return new VibrationStats.StatsInfo( callerInfo.uid, vibrationType, callerInfo.attrs.getUsage(), mStatus, stats, completionUptimeMillis); diff --git a/services/core/java/com/android/server/vibrator/PerformVendorEffectVibratorStep.java b/services/core/java/com/android/server/vibrator/PerformVendorEffectVibratorStep.java index 8f36118543ed..407f3d996798 100644 --- a/services/core/java/com/android/server/vibrator/PerformVendorEffectVibratorStep.java +++ b/services/core/java/com/android/server/vibrator/PerformVendorEffectVibratorStep.java @@ -52,6 +52,7 @@ final class PerformVendorEffectVibratorStep extends AbstractVibratorStep { long vibratorOnResult = controller.on(effect, getVibration().id); vibratorOnResult = Math.min(vibratorOnResult, VENDOR_EFFECT_MAX_DURATION_MS); handleVibratorOnResult(vibratorOnResult); + getVibration().stats.reportPerformVendorEffect(vibratorOnResult); return List.of(new CompleteEffectVibratorStep(conductor, startTime, /* cancelled= */ false, controller, mPendingVibratorOffDeadline)); } finally { diff --git a/services/core/java/com/android/server/vibrator/VibrationStats.java b/services/core/java/com/android/server/vibrator/VibrationStats.java index dd66809e7ae6..8179d6aea9ca 100644 --- a/services/core/java/com/android/server/vibrator/VibrationStats.java +++ b/services/core/java/com/android/server/vibrator/VibrationStats.java @@ -79,6 +79,7 @@ final class VibrationStats { private int mVibratorSetAmplitudeCount; private int mVibratorSetExternalControlCount; private int mVibratorPerformCount; + private int mVibratorPerformVendorCount; private int mVibratorComposeCount; private int mVibratorComposePwleCount; @@ -239,6 +240,11 @@ final class VibrationStats { } } + /** Report a call to vibrator method to trigger a vendor vibration effect. */ + void reportPerformVendorEffect(long halResult) { + mVibratorPerformVendorCount++; + } + /** Report a call to vibrator method to trigger a vibration as a composition of primitives. */ void reportComposePrimitives(long halResult, PrimitiveSegment[] primitives) { mVibratorComposeCount++; @@ -313,6 +319,7 @@ final class VibrationStats { public final int halOnCount; public final int halOffCount; public final int halPerformCount; + public final int halPerformVendorCount; public final int halSetAmplitudeCount; public final int halSetExternalControlCount; public final int halCompositionSize; @@ -357,6 +364,7 @@ final class VibrationStats { halOnCount = stats.mVibratorOnCount; halOffCount = stats.mVibratorOffCount; halPerformCount = stats.mVibratorPerformCount; + halPerformVendorCount = stats.mVibratorPerformVendorCount; halSetAmplitudeCount = stats.mVibratorSetAmplitudeCount; halSetExternalControlCount = stats.mVibratorSetExternalControlCount; halCompositionSize = stats.mVibrationCompositionTotalSize; @@ -390,7 +398,8 @@ final class VibrationStats { halOnCount, halOffCount, halPerformCount, halSetAmplitudeCount, halSetExternalControlCount, halSupportedCompositionPrimitivesUsed, halSupportedEffectsUsed, halUnsupportedCompositionPrimitivesUsed, - halUnsupportedEffectsUsed, halCompositionSize, halPwleSize, adaptiveScale); + halUnsupportedEffectsUsed, halCompositionSize, halPwleSize, adaptiveScale, + halPerformVendorCount); } private static int[] filteredKeys(SparseBooleanArray supportArray, boolean supported) { |