Loading services/java/com/android/server/VibratorService.java +12 −0 Original line number Diff line number Diff line Loading @@ -247,6 +247,7 @@ public class VibratorService extends IVibratorService.Stub { // Lock held on mVibrations private void startNextVibrationLocked() { if (mVibrations.size() <= 0) { mCurrentVibration = null; return; } mCurrentVibration = mVibrations.getFirst(); Loading @@ -273,17 +274,27 @@ public class VibratorService extends IVibratorService.Stub { Vibration vib = iter.next(); if (vib.mToken == token) { iter.remove(); unlinkVibration(vib); return vib; } } // We might be looking for a simple vibration which is only stored in // mCurrentVibration. if (mCurrentVibration != null && mCurrentVibration.mToken == token) { unlinkVibration(mCurrentVibration); return mCurrentVibration; } return null; } private void unlinkVibration(Vibration vib) { if (vib.mPattern != null) { // If Vibration object has a pattern, // the Vibration object has also been linkedToDeath. vib.mToken.unlinkToDeath(vib, 0); } } private class VibrateThread extends Thread { final Vibration mVibration; boolean mDone; Loading Loading @@ -360,6 +371,7 @@ public class VibratorService extends IVibratorService.Stub { // If this vibration finished naturally, start the next // vibration. mVibrations.remove(mVibration); unlinkVibration(mVibration); startNextVibrationLocked(); } } Loading Loading
services/java/com/android/server/VibratorService.java +12 −0 Original line number Diff line number Diff line Loading @@ -247,6 +247,7 @@ public class VibratorService extends IVibratorService.Stub { // Lock held on mVibrations private void startNextVibrationLocked() { if (mVibrations.size() <= 0) { mCurrentVibration = null; return; } mCurrentVibration = mVibrations.getFirst(); Loading @@ -273,17 +274,27 @@ public class VibratorService extends IVibratorService.Stub { Vibration vib = iter.next(); if (vib.mToken == token) { iter.remove(); unlinkVibration(vib); return vib; } } // We might be looking for a simple vibration which is only stored in // mCurrentVibration. if (mCurrentVibration != null && mCurrentVibration.mToken == token) { unlinkVibration(mCurrentVibration); return mCurrentVibration; } return null; } private void unlinkVibration(Vibration vib) { if (vib.mPattern != null) { // If Vibration object has a pattern, // the Vibration object has also been linkedToDeath. vib.mToken.unlinkToDeath(vib, 0); } } private class VibrateThread extends Thread { final Vibration mVibration; boolean mDone; Loading Loading @@ -360,6 +371,7 @@ public class VibratorService extends IVibratorService.Stub { // If this vibration finished naturally, start the next // vibration. mVibrations.remove(mVibration); unlinkVibration(mVibration); startNextVibrationLocked(); } } Loading