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

Commit d9291c0a authored by Lais Andrade's avatar Lais Andrade
Browse files

Add dumpsys information for VibratorControlService

Add debug logs for the VibratorControlService and the cached adaptive
haptics scales received from the registered VibratorController.

Improvements in dumpsys includes:

- Add scale level and adaptive scale values to Vibration.DebugInfo
- Add VibrationAttributes category to vibration logs
- Add missing fields from VibrationConfig to dumpsys
- Add VibrationScaler to dumpsys, including cached adaptive scales
- Add keyboard settings and ringer mode to VibrationSettings dumpsys
- Simplify processStateCache entry from dumpsys
- Rename individual vibrator logs from VibratorController to Vibrator,
  to avoid confusion with new service name.
- Add VibratorControlService logs with pull/push/clear request history

Other code changes includes extracting the logic to dump aggregated
log entries from VibratorManagerService for reuse in the control service
and simplifying the vibration history logs to help debugging.

Fix: 305965431
Test: atest GroupedAggregatedLogRecordsTest
Change-Id: I745f5b02182b4e730c0eb359cc6a134c8c9299ed
parent 19954aa1
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -288,6 +288,15 @@ public final class VibrationAttributes implements Parcelable {
        return mUsage;
    }

    /**
     * Return the original {@link AudioAttributes} used to create the vibration attributes.
     * @hide
     */
    @AudioAttributes.AttributeUsage
    public int getOriginalAudioUsage() {
        return mOriginalAudioUsage;
    }

    /**
     * Return the flags.
     * @return a combined mask of all flags
@@ -405,8 +414,8 @@ public final class VibrationAttributes implements Parcelable {
        return "VibrationAttributes{"
                + "mUsage=" + usageToString()
                + ", mAudioUsage= " + AudioAttributes.usageToString(mOriginalAudioUsage)
                + ", mFlags=" + mFlags
                + ", mCategory=" + categoryToString()
                + ", mFlags=" + mFlags
                + '}';
    }

+10 −4
Original line number Diff line number Diff line
@@ -224,17 +224,19 @@ public class VibrationConfig {
    @Override
    public String toString() {
        return "VibrationConfig{"
                + "mHapticChannelMaxVibrationAmplitude=" + mHapticChannelMaxVibrationAmplitude
                + "mIgnoreVibrationsOnWirelessCharger=" + mIgnoreVibrationsOnWirelessCharger
                + ", mHapticChannelMaxVibrationAmplitude=" + mHapticChannelMaxVibrationAmplitude
                + ", mRampStepDurationMs=" + mRampStepDurationMs
                + ", mRampDownDurationMs=" + mRampDownDurationMs
                + ", mRequestVibrationParamsForUsages="
                + Arrays.toString(getRequestVibrationParamsForUsagesNames())
                + ", mRequestVibrationParamsTimeoutMs=" + mRequestVibrationParamsTimeoutMs
                + ", mDefaultAlarmIntensity=" + mDefaultAlarmVibrationIntensity
                + ", mDefaultHapticFeedbackIntensity=" + mDefaultHapticFeedbackIntensity
                + ", mDefaultMediaIntensity=" + mDefaultMediaVibrationIntensity
                + ", mDefaultNotificationIntensity=" + mDefaultNotificationVibrationIntensity
                + ", mDefaultRingIntensity=" + mDefaultRingVibrationIntensity
                + ", mRequestVibrationParamsTimeoutMs=" + mRequestVibrationParamsTimeoutMs
                + ", mRequestVibrationParamsForUsages=" + Arrays.toString(
                getRequestVibrationParamsForUsagesNames())
                + ", mDefaultKeyboardVibrationEnabled=" + mDefaultKeyboardVibrationEnabled
                + "}";
    }

@@ -246,9 +248,13 @@ public class VibrationConfig {
    public void dumpWithoutDefaultSettings(IndentingPrintWriter pw) {
        pw.println("VibrationConfig:");
        pw.increaseIndent();
        pw.println("ignoreVibrationsOnWirelessCharger = " + mIgnoreVibrationsOnWirelessCharger);
        pw.println("hapticChannelMaxAmplitude = " + mHapticChannelMaxVibrationAmplitude);
        pw.println("rampStepDurationMs = " + mRampStepDurationMs);
        pw.println("rampDownDurationMs = " + mRampDownDurationMs);
        pw.println("requestVibrationParamsForUsages = "
                + Arrays.toString(getRequestVibrationParamsForUsagesNames()));
        pw.println("requestVibrationParamsTimeoutMs = " + mRequestVibrationParamsTimeoutMs);
        pw.decreaseIndent();
    }

+23 −2
Original line number Diff line number Diff line
@@ -79,11 +79,28 @@ message CombinedVibrationEffectProto {
    repeated int32 delays = 2;
}

// Next Tag: 5
message VibrationAttributesProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
    optional int32 usage = 1;
    optional int32 audio_usage = 2;
    optional int32 flags = 3;
    optional int32 category = 4;
}

// Next Tag: 4
message VibrationParamProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
    optional VibrationScaleParamProto scale = 1;
    optional int64 create_time = 2;
    optional bool is_from_request = 3;
}

// Next Tag: 3
message VibrationScaleParamProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
    optional int32 types_mask = 1;
    optional float scale = 2;
}

// Next Tag: 9
@@ -132,16 +149,19 @@ message VibrationProto {
    }
}

// Next Tag: 25
// Next Tag: 29
message VibratorManagerServiceDumpProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;
    repeated int32 vibrator_ids = 1;
    optional VibrationProto current_vibration = 2;
    optional bool is_vibrating = 3;
    optional int32 is_vibrator_controller_registered = 27;
    optional VibrationProto current_external_vibration = 4;
    optional bool vibrator_under_external_control = 5;
    optional bool low_power_mode = 6;
    optional bool vibrate_on = 24;
    optional bool keyboard_vibration_on = 25;
    optional int32 default_vibration_amplitude = 26;
    optional int32 alarm_intensity = 18;
    optional int32 alarm_default_intensity = 19;
    optional int32 haptic_feedback_intensity = 7;
@@ -158,5 +178,6 @@ message VibratorManagerServiceDumpProto {
    repeated VibrationProto previous_notification_vibrations = 14;
    repeated VibrationProto previous_alarm_vibrations = 15;
    repeated VibrationProto previous_vibrations = 16;
    repeated VibrationProto previous_external_vibrations = 17;
    repeated VibrationParamProto previous_vibration_params = 28;
    reserved 17; // prev previous_external_vibrations
}
 No newline at end of file
+7 −0
Original line number Diff line number Diff line
@@ -4101,6 +4101,13 @@
    <!-- How close vibration request should be when they're aggregated for dumpsys, in ms. -->
    <integer name="config_previousVibrationsDumpAggregationTimeMillisLimit">1000</integer>

    <!-- How long history of vibration control service should be kept for the dumpsys. -->
    <integer name="config_vibratorControlServiceDumpSizeLimit">50</integer>

    <!-- How close requests to vibration control service should be when they're aggregated for
         dumpsys, in ms. -->
    <integer name="config_vibratorControlServiceDumpAggregationTimeMillisLimit">60000</integer>

    <!-- The default vibration strength, must be between 1 and 255 inclusive. -->
    <integer name="config_defaultVibrationAmplitude">255</integer>

+2 −0
Original line number Diff line number Diff line
@@ -2083,6 +2083,8 @@
  <java-symbol type="integer" name="config_recentVibrationsDumpSizeLimit" />
  <java-symbol type="integer" name="config_previousVibrationsDumpSizeLimit" />
  <java-symbol type="integer" name="config_previousVibrationsDumpAggregationTimeMillisLimit" />
  <java-symbol type="integer" name="config_vibratorControlServiceDumpSizeLimit" />
  <java-symbol type="integer" name="config_vibratorControlServiceDumpAggregationTimeMillisLimit" />
  <java-symbol type="integer" name="config_defaultVibrationAmplitude" />
  <java-symbol type="dimen" name="config_hapticChannelMaxVibrationAmplitude" />
  <java-symbol type="dimen" name="config_keyboardHapticFeedbackFixedAmplitude" />
Loading