summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-08-09 18:22:59 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-08-09 18:22:59 +0000
commit0d4952a23c4d3236701964d341dea79ccfd1ddcb (patch)
tree840ac4f7c38e1befb76fc24537adbdcea11b0524
parentd439c6190e217780329f747d18e9683fce8a5002 (diff)
parent01dda268ff27269fc6f4f3a02a68a42d793ba43d (diff)
Merge "Report vendor vibrations via VibrationReported atom" into main
-rw-r--r--services/core/java/com/android/server/vibrator/HalVibration.java8
-rw-r--r--services/core/java/com/android/server/vibrator/PerformVendorEffectVibratorStep.java1
-rw-r--r--services/core/java/com/android/server/vibrator/VibrationStats.java11
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) {