diff options
| author | 2019-03-11 13:13:40 +0000 | |
|---|---|---|
| committer | 2019-03-11 13:13:40 +0000 | |
| commit | bc978e834e93958a9498fcf130ccda61ae771588 (patch) | |
| tree | 8b249a1712b69ed844af23bfe4fb4775ae489a00 | |
| parent | bfbbd9e39519964bbaa4316bcac0a82a6e24f7c4 (diff) | |
| parent | 85ed7da962a36595494f9fd62d8e892e301ee9d2 (diff) | |
Merge "Separate vibration log buffers"
| -rw-r--r-- | services/core/java/com/android/server/VibratorService.java | 31 |
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(" "); |