summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-03-11 13:13:40 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-03-11 13:13:40 +0000
commitbc978e834e93958a9498fcf130ccda61ae771588 (patch)
tree8b249a1712b69ed844af23bfe4fb4775ae489a00
parentbfbbd9e39519964bbaa4316bcac0a82a6e24f7c4 (diff)
parent85ed7da962a36595494f9fd62d8e892e301ee9d2 (diff)
Merge "Separate vibration log buffers"
-rw-r--r--services/core/java/com/android/server/VibratorService.java31
1 files changed, 28 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/VibratorService.java b/services/core/java/com/android/server/VibratorService.java
index 5cca159192e6..5d0fa26f640e 100644
--- a/services/core/java/com/android/server/VibratorService.java
+++ b/services/core/java/com/android/server/VibratorService.java
@@ -111,6 +111,8 @@ public class VibratorService extends IVibratorService.Stub
// intensity level. It's important that we apply the scaling on the delta between the two so
// that the default intensity level applies no scaling to application provided effects.
private final SparseArray<ScaleLevel> mScaleLevels;
+ private final LinkedList<VibrationInfo> mPreviousRingVibrations;
+ private final LinkedList<VibrationInfo> mPreviousNotificationVibrations;
private final LinkedList<VibrationInfo> mPreviousVibrations;
private final int mPreviousVibrationsLimit;
private final boolean mAllowPriorityVibrationsInLowPowerMode;
@@ -354,6 +356,8 @@ public class VibratorService extends IVibratorService.Stub
mAllowPriorityVibrationsInLowPowerMode = mContext.getResources().getBoolean(
com.android.internal.R.bool.config_allowPriorityVibrationsInLowPowerMode);
+ mPreviousRingVibrations = new LinkedList<>();
+ mPreviousNotificationVibrations = new LinkedList<>();
mPreviousVibrations = new LinkedList<>();
IntentFilter filter = new IntentFilter();
@@ -620,10 +624,19 @@ public class VibratorService extends IVibratorService.Stub
}
private void addToPreviousVibrationsLocked(Vibration vib) {
- if (mPreviousVibrations.size() > mPreviousVibrationsLimit) {
- mPreviousVibrations.removeFirst();
+ final LinkedList<VibrationInfo> previousVibrations;
+ if (vib.isRingtone()) {
+ previousVibrations = mPreviousRingVibrations;
+ } else if (vib.isNotification()) {
+ previousVibrations = mPreviousNotificationVibrations;
+ } else {
+ previousVibrations = mPreviousVibrations;
}
- mPreviousVibrations.addLast(vib.toInfo());
+
+ if (previousVibrations.size() > mPreviousVibrationsLimit) {
+ previousVibrations.removeFirst();
+ }
+ previousVibrations.addLast(vib.toInfo());
}
@Override // Binder call
@@ -1355,6 +1368,18 @@ public class VibratorService extends IVibratorService.Stub
pw.println(" mNotificationIntensity=" + mNotificationIntensity);
pw.println(" mRingIntensity=" + mRingIntensity);
pw.println("");
+ pw.println(" Previous ring vibrations:");
+ for (VibrationInfo info : mPreviousRingVibrations) {
+ pw.print(" ");
+ pw.println(info.toString());
+ }
+
+ pw.println(" Previous notification vibrations:");
+ for (VibrationInfo info : mPreviousNotificationVibrations) {
+ pw.print(" ");
+ pw.println(info.toString());
+ }
+
pw.println(" Previous vibrations:");
for (VibrationInfo info : mPreviousVibrations) {
pw.print(" ");