Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17f888f7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Create VibrationThread only after binder calling ID cleared" into sc-dev am: 80e557d6

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13575050

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia949230c96b379138e8fbbfd361f760c141fdaba
parents 0c1ef1b0 80e557d6
Loading
Loading
Loading
Loading
+8 −11
Original line number Diff line number Diff line
@@ -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;
        }