Loading Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -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 := \ Loading api/current.txt +16 −4 Original line number Diff line number Diff line Loading @@ -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 { api/system-current.txt +16 −4 Original line number Diff line number Diff line Loading @@ -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 { api/test-current.txt +16 −4 Original line number Diff line number Diff line Loading @@ -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 { core/java/android/hardware/input/InputManager.java +20 −9 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 Loading
Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -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 := \ Loading
api/current.txt +16 −4 Original line number Diff line number Diff line Loading @@ -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 {
api/system-current.txt +16 −4 Original line number Diff line number Diff line Loading @@ -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 {
api/test-current.txt +16 −4 Original line number Diff line number Diff line Loading @@ -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 {
core/java/android/hardware/input/InputManager.java +20 −9 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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