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

Commit 2bcca1d6 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "BZZZZZZT! BZZZZZT! New Vibrator APIs"

parents 2c64d573 7121697a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -568,6 +568,7 @@ LOCAL_STATIC_JAVA_LIBRARIES := \
    android.hardware.thermal@1.0-java-constants         \
    android.hardware.health@1.0-java-constants          \
    android.hardware.usb@1.0-java-constants             \
    android.hardware.vibrator@1.0-java-constants        \

LOCAL_PROTOC_OPTIMIZE_TYPE := stream
LOCAL_PROTOC_FLAGS := \
+16 −4
Original line number Diff line number Diff line
@@ -31655,13 +31655,25 @@ package android.os {
    field public static final int USER_CREATION_FAILED_NO_MORE_USERS = 2; // 0x2
  }
  public abstract class VibrationEffect implements android.os.Parcelable {
    method public static android.os.VibrationEffect createOneShot(long, int);
    method public static android.os.VibrationEffect createWaveform(long[], int);
    method public static android.os.VibrationEffect createWaveform(long[], int[], int);
    method public int describeContents();
    field public static final android.os.Parcelable.Creator<android.os.VibrationEffect> CREATOR;
    field public static final int DEFAULT_AMPLITUDE = -1; // 0xffffffff
  }
  public abstract class Vibrator {
    method public abstract void cancel();
    method public abstract boolean hasAmplitudeControl();
    method public abstract boolean hasVibrator();
    method public void vibrate(long);
    method public void vibrate(long, android.media.AudioAttributes);
    method public void vibrate(long[], int);
    method public void vibrate(long[], int, android.media.AudioAttributes);
    method public deprecated void vibrate(long);
    method public deprecated void vibrate(long, android.media.AudioAttributes);
    method public deprecated void vibrate(long[], int);
    method public deprecated void vibrate(long[], int, android.media.AudioAttributes);
    method public void vibrate(android.os.VibrationEffect);
    method public void vibrate(android.os.VibrationEffect, android.media.AudioAttributes);
  }
  public class WorkSource implements android.os.Parcelable {
+16 −4
Original line number Diff line number Diff line
@@ -34493,13 +34493,25 @@ package android.os {
  public static abstract class UserManager.UserRestrictionSource implements java.lang.annotation.Annotation {
  }
  public abstract class VibrationEffect implements android.os.Parcelable {
    method public static android.os.VibrationEffect createOneShot(long, int);
    method public static android.os.VibrationEffect createWaveform(long[], int);
    method public static android.os.VibrationEffect createWaveform(long[], int[], int);
    method public int describeContents();
    field public static final android.os.Parcelable.Creator<android.os.VibrationEffect> CREATOR;
    field public static final int DEFAULT_AMPLITUDE = -1; // 0xffffffff
  }
  public abstract class Vibrator {
    method public abstract void cancel();
    method public abstract boolean hasAmplitudeControl();
    method public abstract boolean hasVibrator();
    method public void vibrate(long);
    method public void vibrate(long, android.media.AudioAttributes);
    method public void vibrate(long[], int);
    method public void vibrate(long[], int, android.media.AudioAttributes);
    method public deprecated void vibrate(long);
    method public deprecated void vibrate(long, android.media.AudioAttributes);
    method public deprecated void vibrate(long[], int);
    method public deprecated void vibrate(long[], int, android.media.AudioAttributes);
    method public void vibrate(android.os.VibrationEffect);
    method public void vibrate(android.os.VibrationEffect, android.media.AudioAttributes);
  }
  public class WorkSource implements android.os.Parcelable {
+16 −4
Original line number Diff line number Diff line
@@ -31780,13 +31780,25 @@ package android.os {
    field public static final int USER_CREATION_FAILED_NO_MORE_USERS = 2; // 0x2
  }
  public abstract class VibrationEffect implements android.os.Parcelable {
    method public static android.os.VibrationEffect createOneShot(long, int);
    method public static android.os.VibrationEffect createWaveform(long[], int);
    method public static android.os.VibrationEffect createWaveform(long[], int[], int);
    method public int describeContents();
    field public static final android.os.Parcelable.Creator<android.os.VibrationEffect> CREATOR;
    field public static final int DEFAULT_AMPLITUDE = -1; // 0xffffffff
  }
  public abstract class Vibrator {
    method public abstract void cancel();
    method public abstract boolean hasAmplitudeControl();
    method public abstract boolean hasVibrator();
    method public void vibrate(long);
    method public void vibrate(long, android.media.AudioAttributes);
    method public void vibrate(long[], int);
    method public void vibrate(long[], int, android.media.AudioAttributes);
    method public deprecated void vibrate(long);
    method public deprecated void vibrate(long, android.media.AudioAttributes);
    method public deprecated void vibrate(long[], int);
    method public deprecated void vibrate(long[], int, android.media.AudioAttributes);
    method public void vibrate(android.os.VibrationEffect);
    method public void vibrate(android.os.VibrationEffect, android.media.AudioAttributes);
  }
  public class WorkSource implements android.os.Parcelable {
+20 −9
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.Vibrator;
import android.os.VibrationEffect;
import android.os.ServiceManager.ServiceNotFoundException;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
@@ -1154,23 +1155,33 @@ public final class InputManager {
            return true;
        }

        /**
         * @hide
         */
        @Override
        public void vibrate(int uid, String opPkg, long milliseconds, AudioAttributes attributes) {
            vibrate(new long[] { 0, milliseconds}, -1);
        public boolean hasAmplitudeControl() {
            return false;
        }

        /**
         * @hide
         */
        @Override
        public void vibrate(int uid, String opPkg, long[] pattern, int repeat,
                AudioAttributes attributes) {
            if (repeat >= pattern.length) {
                throw new ArrayIndexOutOfBoundsException();
        public void vibrate(int uid, String opPkg,
                VibrationEffect effect, AudioAttributes attributes) {
            long[] pattern;
            int repeat;
            if (effect instanceof VibrationEffect.OneShot) {
                VibrationEffect.OneShot oneShot = (VibrationEffect.OneShot) effect;
                pattern = new long[] { 0, oneShot.getTiming() };
                repeat = -1;
            } else if (effect instanceof VibrationEffect.Waveform) {
                VibrationEffect.Waveform waveform = (VibrationEffect.Waveform) effect;
                pattern = waveform.getTimings();
                repeat = waveform.getRepeatIndex();
            } else {
                // TODO: Add support for prebaked effects
                Log.w(TAG, "Pre-baked effects aren't supported on input devices");
                return;
            }

            try {
                mIm.vibrate(mDeviceId, pattern, repeat, mToken);
            } catch (RemoteException ex) {
Loading