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

Commit 07cfb556 authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

Merge "Make all Vibrator calls async"

parents 4a883f3a 2adbfc91
Loading
Loading
Loading
Loading
+12 −17
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import android.hardware.biometrics.SensorLocationInternal;
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
import android.os.Process;
import android.os.VibrationAttributes;
import android.os.Vibrator;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.MathUtils;
@@ -60,6 +59,7 @@ import com.android.systemui.dump.DumpManager;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.VibratorHelper;
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -103,7 +103,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme

    @NonNull private CharSequence mUnlockedLabel;
    @NonNull private CharSequence mLockedLabel;
    @Nullable private final Vibrator mVibrator;
    @NonNull private final VibratorHelper mVibrator;
    @Nullable private final AuthRippleController mAuthRippleController;

    // Tracks the velocity of a touch to help filter out the touches that move too fast.
@@ -154,7 +154,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
            @NonNull AccessibilityManager accessibilityManager,
            @NonNull ConfigurationController configurationController,
            @NonNull @Main DelayableExecutor executor,
            @Nullable Vibrator vibrator,
            @NonNull VibratorHelper vibrator,
            @Nullable AuthRippleController authRippleController,
            @NonNull @Main Resources resources
    ) {
@@ -560,7 +560,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
        switch(event.getActionMasked()) {
            case MotionEvent.ACTION_DOWN:
            case MotionEvent.ACTION_HOVER_ENTER:
                if (mVibrator != null && !mDownDetected) {
                if (!mDownDetected) {
                    mVibrator.vibrate(
                            Process.myUid(),
                            getContext().getOpPackageName(),
@@ -647,7 +647,6 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
            mOnGestureDetectedRunnable.run();
        }

        if (mVibrator != null) {
        // play device entry haptic (same as biometric success haptic)
        mVibrator.vibrate(
                Process.myUid(),
@@ -655,7 +654,6 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
                UdfpsController.EFFECT_CLICK,
                "lock-icon-device-entry",
                TOUCH_VIBRATION_ATTRIBUTES);
        }

        mKeyguardViewController.showBouncer(/* scrim */ true);
    }
@@ -670,11 +668,8 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
            mVelocityTracker.recycle();
            mVelocityTracker = null;
        }
        if (mVibrator != null) {
        mVibrator.cancel();
    }
    }


    private boolean inLockIconArea(MotionEvent event) {
        return mSensorTouchLocation.contains((int) event.getX(), (int) event.getY())
+9 −11
Original line number Diff line number Diff line
@@ -42,7 +42,6 @@ import android.os.Process;
import android.os.Trace;
import android.os.VibrationAttributes;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -64,6 +63,7 @@ import com.android.systemui.keyguard.ScreenLifecycle;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.LockscreenShadeTransitionController;
import com.android.systemui.statusbar.VibratorHelper;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.SystemUIDialogManager;
@@ -117,7 +117,7 @@ public class UdfpsController implements DozeReceiver {
    @NonNull private final DumpManager mDumpManager;
    @NonNull private final SystemUIDialogManager mDialogManager;
    @NonNull private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    @Nullable private final Vibrator mVibrator;
    @NonNull private final VibratorHelper mVibrator;
    @NonNull private final FalsingManager mFalsingManager;
    @NonNull private final PowerManager mPowerManager;
    @NonNull private final AccessibilityManager mAccessibilityManager;
@@ -506,7 +506,7 @@ public class UdfpsController implements DozeReceiver {
            @NonNull AccessibilityManager accessibilityManager,
            @NonNull LockscreenShadeTransitionController lockscreenShadeTransitionController,
            @NonNull ScreenLifecycle screenLifecycle,
            @Nullable Vibrator vibrator,
            @NonNull VibratorHelper vibrator,
            @NonNull UdfpsHapticsSimulator udfpsHapticsSimulator,
            @NonNull Optional<UdfpsHbmProvider> hbmProvider,
            @NonNull KeyguardStateController keyguardStateController,
@@ -577,7 +577,6 @@ public class UdfpsController implements DozeReceiver {
     */
    @VisibleForTesting
    public void playStartHaptic() {
        if (mVibrator != null) {
        mVibrator.vibrate(
                Process.myUid(),
                mContext.getOpPackageName(),
@@ -585,7 +584,6 @@ public class UdfpsController implements DozeReceiver {
                "udfps-onStart-click",
                VIBRATION_ATTRIBUTES);
    }
    }

    @Nullable
    private FingerprintSensorPropertiesInternal findFirstUdfps() {
+4 −8
Original line number Diff line number Diff line
@@ -18,16 +18,12 @@ package com.android.systemui.biometrics

import android.media.AudioAttributes
import android.os.VibrationEffect
import android.os.Vibrator

import com.android.keyguard.KeyguardUpdateMonitor

import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.commandline.Command
import com.android.systemui.statusbar.commandline.CommandRegistry

import java.io.PrintWriter

import javax.inject.Inject

/**
@@ -36,7 +32,7 @@ import javax.inject.Inject
@SysUISingleton
class UdfpsHapticsSimulator @Inject constructor(
    commandRegistry: CommandRegistry,
    val vibrator: Vibrator?,
    val vibrator: VibratorHelper,
    val keyguardUpdateMonitor: KeyguardUpdateMonitor
) : Command {
    val sonificationEffects =
@@ -60,13 +56,13 @@ class UdfpsHapticsSimulator @Inject constructor(
                }
                "success" -> {
                    // needs to be kept up to date with AcquisitionClient#SUCCESS_VIBRATION_EFFECT
                    vibrator?.vibrate(
                    vibrator.vibrate(
                        VibrationEffect.get(VibrationEffect.EFFECT_CLICK),
                        sonificationEffects)
                }
                "error" -> {
                    // needs to be kept up to date with AcquisitionClient#ERROR_VIBRATION_EFFECT
                    vibrator?.vibrate(
                    vibrator.vibrate(
                        VibrationEffect.get(VibrationEffect.EFFECT_DOUBLE_CLICK),
                        sonificationEffects)
                }
+4 −10
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import android.content.Intent
import android.content.pm.PackageManager
import android.content.pm.ResolveInfo
import android.os.VibrationEffect
import android.os.Vibrator
import android.service.controls.Control
import android.service.controls.actions.BooleanAction
import android.service.controls.actions.CommandAction
@@ -32,16 +31,14 @@ import android.service.controls.actions.FloatAction
import android.util.Log
import android.view.HapticFeedbackConstants
import com.android.internal.annotations.VisibleForTesting
import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.controls.ControlsMetricsLogger
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.globalactions.GlobalActionsComponent
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.VibratorHelper
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.util.concurrency.DelayableExecutor
import com.android.wm.shell.TaskViewFactory
import dagger.Lazy
import java.util.Optional
import javax.inject.Inject

@@ -52,14 +49,11 @@ class ControlActionCoordinatorImpl @Inject constructor(
    @Main private val uiExecutor: DelayableExecutor,
    private val activityStarter: ActivityStarter,
    private val keyguardStateController: KeyguardStateController,
    private val globalActionsComponent: GlobalActionsComponent,
    private val taskViewFactory: Optional<TaskViewFactory>,
    private val broadcastDispatcher: BroadcastDispatcher,
    private val lazyUiController: Lazy<ControlsUiController>,
    private val controlsMetricsLogger: ControlsMetricsLogger
    private val controlsMetricsLogger: ControlsMetricsLogger,
    private val vibrator: VibratorHelper
) : ControlActionCoordinator {
    private var dialog: Dialog? = null
    private val vibrator = context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
    private var pendingAction: Action? = null
    private var actionsInProgress = mutableSetOf<String>()
    private val isLocked: Boolean
@@ -194,7 +188,7 @@ class ControlActionCoordinatorImpl @Inject constructor(
    }

    private fun vibrate(effect: VibrationEffect) {
        bgExecutor.execute { vibrator.vibrate(effect) }
        vibrator.vibrate(effect)
    }

    private fun showDetail(cvh: ControlViewHolder, pendingIntent: PendingIntent) {
+3 −3
Original line number Diff line number Diff line
@@ -62,7 +62,6 @@ import android.os.RemoteException;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.Vibrator;
import android.provider.Settings;
import android.service.dreams.IDreamManager;
import android.sysprop.TelephonyProperties;
@@ -119,6 +118,7 @@ import com.android.systemui.plugins.GlobalActions.GlobalActionsManager;
import com.android.systemui.plugins.GlobalActionsPanelPlugin;
import com.android.systemui.scrim.ScrimDrawable;
import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.VibratorHelper;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.SystemUIDialog;
import com.android.systemui.statusbar.phone.SystemUIDialogManager;
@@ -327,7 +327,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
            TelephonyListenerManager telephonyListenerManager,
            GlobalSettings globalSettings,
            SecureSettings secureSettings,
            @Nullable Vibrator vibrator,
            @NonNull VibratorHelper vibrator,
            @Main Resources resources,
            ConfigurationController configurationController,
            KeyguardStateController keyguardStateController,
@@ -397,7 +397,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
        mGlobalSettings.registerContentObserver(
                Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON), true,
                mAirplaneModeObserver);
        mHasVibrator = vibrator != null && vibrator.hasVibrator();
        mHasVibrator = vibrator.hasVibrator();

        mShowSilentToggle = SHOW_SILENT_TOGGLE && !resources.getBoolean(
                R.bool.config_useFixedVolume);
Loading