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

Commit e1f06b88 authored by Alexey Kuzmin's avatar Alexey Kuzmin
Browse files

Add an optional reason field to vibrator service

Test: Run vibration test, see reason written to log and trace.
Bug: 109654229
Change-Id: I13db6968c125e7c2b2483a14faad5b6ea9b4cda6
parent f94dcd98
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1191,8 +1191,8 @@ public final class InputManager {
         * @hide
         */
        @Override
        public void vibrate(int uid, String opPkg,
                VibrationEffect effect, AudioAttributes attributes) {
        public void vibrate(int uid, String opPkg, VibrationEffect effect,
                String reason, AudioAttributes attributes) {
            long[] pattern;
            int repeat;
            if (effect instanceof VibrationEffect.OneShot) {
+2 −1
Original line number Diff line number Diff line
@@ -23,7 +23,8 @@ interface IVibratorService
{
    boolean hasVibrator();
    boolean hasAmplitudeControl();
    void vibrate(int uid, String opPkg, in VibrationEffect effect, int usageHint, IBinder token);
    void vibrate(int uid, String opPkg, in VibrationEffect effect, int usageHint, String reason,
            IBinder token);
    void cancelVibrate(IBinder token);
}
+2 −2
Original line number Diff line number Diff line
@@ -44,8 +44,8 @@ public class NullVibrator extends Vibrator {
    }

    @Override
    public void vibrate(int uid, String opPkg,
            VibrationEffect effect, AudioAttributes attributes) {
    public void vibrate(int uid, String opPkg, VibrationEffect effect,
            String reason, AudioAttributes attributes) {
    }

    @Override
+3 −3
Original line number Diff line number Diff line
@@ -67,14 +67,14 @@ public class SystemVibrator extends Vibrator {
    }

    @Override
    public void vibrate(int uid, String opPkg,
            VibrationEffect effect, AudioAttributes attributes) {
    public void vibrate(int uid, String opPkg, VibrationEffect effect,
            String reason, AudioAttributes attributes) {
        if (mService == null) {
            Log.w(TAG, "Failed to vibrate; no vibrator service.");
            return;
        }
        try {
            mService.vibrate(uid, opPkg, effect, usageForAttributes(attributes), mToken);
            mService.vibrate(uid, opPkg, effect, usageForAttributes(attributes), reason, mToken);
        } catch (RemoteException e) {
            Log.w(TAG, "Failed to vibrate.", e);
        }
+5 −5
Original line number Diff line number Diff line
@@ -248,17 +248,17 @@ public abstract class Vibrator {

    @RequiresPermission(android.Manifest.permission.VIBRATE)
    public void vibrate(VibrationEffect vibe, AudioAttributes attributes) {
        vibrate(Process.myUid(), mPackageName, vibe, attributes);
        vibrate(Process.myUid(), mPackageName, vibe, null, attributes);
    }

    /**
     * Like {@link #vibrate(VibrationEffect, AudioAttributes)}, but allowing the caller to specify
     * that the vibration is owned by someone else.
     * Like {@link #vibrate(int, String, VibrationEffect, AudioAttributes)}, but allows the
     * caller to specify the vibration is owned by someone else and set reason for vibration.
     * @hide
     */
    @RequiresPermission(android.Manifest.permission.VIBRATE)
    public abstract void vibrate(int uid, String opPkg,
            VibrationEffect vibe, AudioAttributes attributes);
    public abstract void vibrate(int uid, String opPkg, VibrationEffect vibe,
            String reason, AudioAttributes attributes);

    /**
     * Turn the vibrator off.
Loading