From 4357e528208c301ccf733b074eb9a815997447c9 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Wed, 1 Jun 2016 14:17:58 -0400 Subject: [PATCH] Only call finish on operations that have started. Change-Id: I77d10913a68be529ea2c5a3f2a53ad91a4a41f47 Fixes: 29069613 --- services/core/java/com/android/server/VibratorService.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/VibratorService.java b/services/core/java/com/android/server/VibratorService.java index 4db60d536bdd..7f3eb15c6ebf 100644 --- a/services/core/java/com/android/server/VibratorService.java +++ b/services/core/java/com/android/server/VibratorService.java @@ -306,7 +306,6 @@ public class VibratorService extends IVibratorService.Stub synchronized (mVibrations) { removeVibrationLocked(token); doCancelVibrateLocked(); - mCurrentVibration = vib; addToPreviousVibrationsLocked(vib); startVibrationLocked(vib); } @@ -368,7 +367,6 @@ public class VibratorService extends IVibratorService.Stub } else { // A negative repeat means that this pattern is not meant // to repeat. Treat it like a simple vibration. - mCurrentVibration = vib; startVibrationLocked(vib); } addToPreviousVibrationsLocked(vib); @@ -443,8 +441,7 @@ public class VibratorService extends IVibratorService.Stub mCurrentVibration = null; return; } - mCurrentVibration = mVibrations.getFirst(); - startVibrationLocked(mCurrentVibration); + startVibrationLocked(mVibrations.getFirst()); } // Lock held on mVibrations @@ -466,7 +463,9 @@ public class VibratorService extends IVibratorService.Stub mode = mAppOpsService.startOperation(AppOpsManager.getToken(mAppOpsService), AppOpsManager.OP_VIBRATE, vib.mUid, vib.mOpPkg); } - if (mode != AppOpsManager.MODE_ALLOWED) { + if (mode == AppOpsManager.MODE_ALLOWED) { + mCurrentVibration = vib; + } else { if (mode == AppOpsManager.MODE_ERRORED) { Slog.w(TAG, "Would be an error: vibrate from uid " + vib.mUid); } -- 2.11.0