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

Commit d8b0f782 authored by Alexey Kuzmin's avatar Alexey Kuzmin
Browse files

Add a rolling log of external vibrations

Bug: 133200481
Test: Dump vibrator service after some audio-coupled vibrations
Change-Id: I3c5d8e3f6ce6828282780ece9d5977138b154040
parent a478c5f9
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -116,6 +116,7 @@ public class VibratorService extends IVibratorService.Stub
    private final LinkedList<VibrationInfo> mPreviousRingVibrations;
    private final LinkedList<VibrationInfo> mPreviousNotificationVibrations;
    private final LinkedList<VibrationInfo> mPreviousAlarmVibrations;
    private final LinkedList<ExternalVibration> mPreviousExternalVibrations;
    private final LinkedList<VibrationInfo> mPreviousVibrations;
    private final int mPreviousVibrationsLimit;
    private final boolean mAllowPriorityVibrationsInLowPowerMode;
@@ -368,6 +369,7 @@ public class VibratorService extends IVibratorService.Stub
        mPreviousNotificationVibrations = new LinkedList<>();
        mPreviousAlarmVibrations = new LinkedList<>();
        mPreviousVibrations = new LinkedList<>();
        mPreviousExternalVibrations = new LinkedList<>();

        IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_SCREEN_OFF);
@@ -1418,6 +1420,12 @@ public class VibratorService extends IVibratorService.Stub
                pw.print("    ");
                pw.println(info.toString());
            }

            pw.println("  Previous external vibrations:");
            for (ExternalVibration vib : mPreviousExternalVibrations) {
                pw.print("    ");
                pw.println(vib.toString());
            }
        }
    }

@@ -1462,6 +1470,10 @@ public class VibratorService extends IVibratorService.Stub
                    // Note that this doesn't support multiple concurrent external controls, as we
                    // would need to mute the old one still if it came from a different controller.
                    mCurrentExternalVibration = vib;
                    if (mPreviousExternalVibrations.size() > mPreviousVibrationsLimit) {
                        mPreviousExternalVibrations.removeFirst();
                    }
                    mPreviousExternalVibrations.addLast(vib);
                    if (DEBUG) {
                        Slog.e(TAG, "Playing external vibration: " + vib);
                    }