Add a rolling log of external vibrations

Bug: 133200481
Test: Dump vibrator service after some audio-coupled vibrations
Change-Id: I3c5d8e3f6ce6828282780ece9d5977138b154040
This commit is contained in:
Alexey Kuzmin
2019-06-05 17:20:26 +01:00
parent a478c5f9aa
commit d8b0f782f3

View File

@@ -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);
}