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

Commit 5985ce1b authored by Lais Andrade's avatar Lais Andrade
Browse files

Implement dump and vibrate cmds for Vibrator Manager

Keep previous vibrations to be reported in the dump method, similar to
VibratorService.

Implement some vibrate commands to test VibratorManager in the adb
shell.

Bug: 167946816
Test: VibratorManagerTest
Change-Id: Ie7dd89b0e3b2747454b32fe3cc2d8751daae9e19
parent 502e1ae7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -268,7 +268,7 @@ public final class VibrationAttributes implements Parcelable {
    }

    /** @hide */
    public String usageToString(int usage) {
    public static String usageToString(int usage) {
        switch (usage) {
            case USAGE_UNKNOWN:
                return "UNKNOWN";
+400 −5

File changed.

Preview size limit exceeded, changes collapsed.

+1 −12
Original line number Diff line number Diff line
@@ -772,18 +772,7 @@ public class VibratorService extends IVibratorService.Stub {
            proto.write(VibratorServiceDumpProto.IS_VIBRATING, mVibratorController.isVibrating());
            proto.write(VibratorServiceDumpProto.VIBRATOR_UNDER_EXTERNAL_CONTROL,
                    mVibratorController.isUnderExternalControl());
            proto.write(VibratorServiceDumpProto.HAPTIC_FEEDBACK_INTENSITY,
                    mVibrationSettings.getCurrentIntensity(VibrationAttributes.USAGE_TOUCH));
            proto.write(VibratorServiceDumpProto.HAPTIC_FEEDBACK_DEFAULT_INTENSITY,
                    mVibrationSettings.getDefaultIntensity(VibrationAttributes.USAGE_TOUCH));
            proto.write(VibratorServiceDumpProto.NOTIFICATION_INTENSITY,
                    mVibrationSettings.getCurrentIntensity(VibrationAttributes.USAGE_NOTIFICATION));
            proto.write(VibratorServiceDumpProto.NOTIFICATION_DEFAULT_INTENSITY,
                    mVibrationSettings.getDefaultIntensity(VibrationAttributes.USAGE_NOTIFICATION));
            proto.write(VibratorServiceDumpProto.RING_INTENSITY,
                    mVibrationSettings.getCurrentIntensity(VibrationAttributes.USAGE_RINGTONE));
            proto.write(VibratorServiceDumpProto.RING_DEFAULT_INTENSITY,
                    mVibrationSettings.getDefaultIntensity(VibrationAttributes.USAGE_RINGTONE));
            mVibrationSettings.dumpProto(proto);

            for (Vibration.DebugInfo info : mPreviousRingVibrations) {
                info.dumpProto(proto, VibratorServiceDumpProto.PREVIOUS_RING_VIBRATIONS);
+20 −0
Original line number Diff line number Diff line
@@ -34,10 +34,12 @@ import android.os.VibrationEffect;
import android.os.Vibrator;
import android.provider.Settings;
import android.util.SparseArray;
import android.util.proto.ProtoOutputStream;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.LocalServices;
import com.android.server.VibratorServiceDumpProto;

import java.util.ArrayList;
import java.util.List;
@@ -340,6 +342,24 @@ public final class VibrationSettings {
                + '}';
    }

    /** Write current settings into given {@link ProtoOutputStream}. */
    public void dumpProto(ProtoOutputStream proto) {
        synchronized (mLock) {
            proto.write(VibratorServiceDumpProto.HAPTIC_FEEDBACK_INTENSITY,
                    mHapticFeedbackIntensity);
            proto.write(VibratorServiceDumpProto.HAPTIC_FEEDBACK_DEFAULT_INTENSITY,
                    mVibrator.getDefaultHapticFeedbackIntensity());
            proto.write(VibratorServiceDumpProto.NOTIFICATION_INTENSITY,
                    mNotificationIntensity);
            proto.write(VibratorServiceDumpProto.NOTIFICATION_DEFAULT_INTENSITY,
                    mVibrator.getDefaultNotificationVibrationIntensity());
            proto.write(VibratorServiceDumpProto.RING_INTENSITY,
                    mRingIntensity);
            proto.write(VibratorServiceDumpProto.RING_DEFAULT_INTENSITY,
                    mVibrator.getDefaultRingVibrationIntensity());
        }
    }

    private void notifyListeners() {
        List<OnVibratorSettingsChanged> currentListeners;
        synchronized (mLock) {
+7 −1

File changed.

Preview size limit exceeded, changes collapsed.