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

Commit e076854f authored by Lais Andrade's avatar Lais Andrade Committed by Android (Google) Code Review
Browse files

Merge "Collect VibrationReported metrics" into tm-qpr-dev

parents 5a54deb0 b8674b79
Loading
Loading
Loading
Loading
+35 −3
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ message VibrationAttributesProto {
    optional int32 flags = 3;
}

// Next id: 8
// Next Tag: 9
message VibrationProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
    optional int64 start_time = 1;
@@ -94,11 +94,43 @@ message VibrationProto {
    optional CombinedVibrationEffectProto effect = 3;
    optional CombinedVibrationEffectProto original_effect = 4;
    optional VibrationAttributesProto attributes = 5;
    optional int32 status = 6;
    optional int64 duration_ms = 7;
    optional Status status = 8;
    reserved 6; // prev int32 status

    // Also used by VibrationReported from frameworks/proto_logging/stats/atoms.proto.
    // Next Tag: 26
    enum Status {
        UNKNOWN = 0;
        RUNNING = 1;
        FINISHED = 2;
        FINISHED_UNEXPECTED = 3;  // Didn't terminate in the usual way.
        FORWARDED_TO_INPUT_DEVICES = 4;
        CANCELLED_BINDER_DIED = 5;
        CANCELLED_BY_SCREEN_OFF = 6;
        CANCELLED_BY_SETTINGS_UPDATE = 7;
        CANCELLED_BY_USER = 8;
        CANCELLED_BY_UNKNOWN_REASON = 9;
        CANCELLED_SUPERSEDED = 10;
        IGNORED_ERROR_APP_OPS = 11;
        IGNORED_ERROR_CANCELLING = 12;
        IGNORED_ERROR_SCHEDULING = 13;
        IGNORED_ERROR_TOKEN= 14;
        IGNORED_APP_OPS = 15;
        IGNORED_BACKGROUND = 16;
        IGNORED_UNKNOWN_VIBRATION = 17;
        IGNORED_UNSUPPORTED = 18;
        IGNORED_FOR_EXTERNAL = 19;
        IGNORED_FOR_HIGHER_IMPORTANCE = 20;
        IGNORED_FOR_ONGOING = 21;
        IGNORED_FOR_POWER = 22;
        IGNORED_FOR_RINGER_MODE = 23;
        IGNORED_FOR_SETTINGS = 24;
        IGNORED_SUPERSEDED = 25;
    }
}

// Next id: 25
// Next Tag: 25
message VibratorManagerServiceDumpProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
    repeated int32 vibrator_ids = 1;
+4 −0
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ abstract class AbstractVibratorStep extends Step {
                    "Turning off vibrator " + getVibratorId());
        }
        controller.off();
        getVibration().stats().reportVibratorOff();
    }

    protected void changeAmplitude(float amplitude) {
@@ -104,6 +105,7 @@ abstract class AbstractVibratorStep extends Step {
                    "Amplitude changed on vibrator " + getVibratorId() + " to " + amplitude);
        }
        controller.setAmplitude(amplitude);
        getVibration().stats().reportSetAmplitude();
    }

    /**
@@ -147,6 +149,8 @@ abstract class AbstractVibratorStep extends Step {
        if (nextSegmentIndex >= effectSize && repeatIndex >= 0) {
            // Count the loops that were played.
            int loopSize = effectSize - repeatIndex;
            int loopSegmentsPlayed = nextSegmentIndex - repeatIndex;
            getVibration().stats().reportRepetition(loopSegmentsPlayed / loopSize);
            nextSegmentIndex = repeatIndex + ((nextSegmentIndex - effectSize) % loopSize);
        }
        Step nextStep = conductor.nextVibrateStep(nextStartTime, controller, effect,
+4 −3
Original line number Diff line number Diff line
@@ -67,9 +67,10 @@ final class ComposePrimitivesVibratorStep extends AbstractVibratorStep {
                Slog.d(VibrationThread.TAG, "Compose " + primitives + " primitives on vibrator "
                        + controller.getVibratorInfo().getId());
            }
            mVibratorOnResult = controller.on(
                    primitives.toArray(new PrimitiveSegment[primitives.size()]),
                    getVibration().id);
            PrimitiveSegment[] primitivesArray =
                    primitives.toArray(new PrimitiveSegment[primitives.size()]);
            mVibratorOnResult = controller.on(primitivesArray, getVibration().id);
            getVibration().stats().reportComposePrimitives(mVibratorOnResult, primitivesArray);

            return nextSteps(/* segmentsPlayed= */ primitives.size());
        } finally {
+3 −2
Original line number Diff line number Diff line
@@ -68,8 +68,9 @@ final class ComposePwleVibratorStep extends AbstractVibratorStep {
                Slog.d(VibrationThread.TAG, "Compose " + pwles + " PWLEs on vibrator "
                        + controller.getVibratorInfo().getId());
            }
            mVibratorOnResult = controller.on(pwles.toArray(new RampSegment[pwles.size()]),
                    getVibration().id);
            RampSegment[] pwlesArray = pwles.toArray(new RampSegment[pwles.size()]);
            mVibratorOnResult = controller.on(pwlesArray, getVibration().id);
            getVibration().stats().reportComposePwle(mVibratorOnResult, pwlesArray);

            return nextSteps(/* segmentsPlayed= */ pwles.size());
        } finally {
+1 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ final class PerformPrebakedVibratorStep extends AbstractVibratorStep {

            VibrationEffect fallback = getVibration().getFallback(prebaked.getEffectId());
            mVibratorOnResult = controller.on(prebaked, getVibration().id);
            getVibration().stats().reportPerformEffect(mVibratorOnResult, prebaked);

            if (mVibratorOnResult == 0 && prebaked.shouldFallback()
                    && (fallback instanceof VibrationEffect.Composed)) {
Loading