summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2021-02-16 03:08:15 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-02-16 03:08:15 +0000
commit80e557d6677c20a1e5cb171ed3300d313ab3af1c (patch)
tree0b32cbaaa00054bb1419549f63194fca4ef74759
parent594fc49d95f365c60fa4a0d7db2ffff22eb5555b (diff)
parent995bd864365e70742d63a5797393723773c29619 (diff)
Merge "Create VibrationThread only after binder calling ID cleared" into sc-dev
-rw-r--r--services/core/java/com/android/server/vibrator/VibratorManagerService.java19
1 files changed, 8 insertions, 11 deletions
diff --git a/services/core/java/com/android/server/vibrator/VibratorManagerService.java b/services/core/java/com/android/server/vibrator/VibratorManagerService.java
index 260d79abd30c..175085475b6c 100644
--- a/services/core/java/com/android/server/vibrator/VibratorManagerService.java
+++ b/services/core/java/com/android/server/vibrator/VibratorManagerService.java
@@ -352,10 +352,7 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
return;
}
- VibrationThread vibThread = new VibrationThread(vib, mVibrators, mWakeLock,
- mBatteryStatsService, mVibrationCallbacks);
-
- ignoreStatus = shouldIgnoreVibrationForCurrentLocked(vibThread);
+ ignoreStatus = shouldIgnoreVibrationForCurrentLocked(vib);
if (ignoreStatus != null) {
endVibrationLocked(vib, ignoreStatus);
return;
@@ -366,7 +363,7 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
if (mCurrentVibration != null) {
mCurrentVibration.cancel();
}
- Vibration.Status status = startVibrationLocked(vibThread);
+ Vibration.Status status = startVibrationLocked(vib);
if (status != Vibration.Status.RUNNING) {
endVibrationLocked(vib, status);
}
@@ -491,19 +488,19 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
}
@GuardedBy("mLock")
- private Vibration.Status startVibrationLocked(VibrationThread vibThread) {
+ private Vibration.Status startVibrationLocked(Vibration vib) {
Trace.traceBegin(Trace.TRACE_TAG_VIBRATOR, "startVibrationLocked");
try {
- Vibration vib = vibThread.getVibration();
vib.updateEffect(mVibrationScaler.scale(vib.getEffect(), vib.attrs.getUsage()));
-
boolean inputDevicesAvailable = mInputDeviceDelegate.vibrateIfAvailable(
vib.uid, vib.opPkg, vib.getEffect(), vib.reason, vib.attrs);
-
if (inputDevicesAvailable) {
return Vibration.Status.FORWARDED_TO_INPUT_DEVICES;
}
+ VibrationThread vibThread = new VibrationThread(vib, mVibrators, mWakeLock,
+ mBatteryStatsService, mVibrationCallbacks);
+
if (mCurrentVibration == null) {
return startVibrationThreadLocked(vibThread);
}
@@ -595,8 +592,8 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
*/
@GuardedBy("mLock")
@Nullable
- private Vibration.Status shouldIgnoreVibrationForCurrentLocked(VibrationThread vibThread) {
- if (vibThread.getVibration().isRepeating()) {
+ private Vibration.Status shouldIgnoreVibrationForCurrentLocked(Vibration vibration) {
+ if (vibration.isRepeating()) {
// Repeating vibrations always take precedence.
return null;
}