Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d4952a2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Report vendor vibrations via VibrationReported atom" into main

parents d439c619 01dda268
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -170,7 +170,9 @@ 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()
        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(
+1 −0
Original line number Diff line number Diff line
@@ -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 {
+10 −1
Original line number Diff line number Diff line
@@ -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) {