diff options
| author | 2019-01-24 14:59:57 +0000 | |
|---|---|---|
| committer | 2019-01-24 14:59:57 +0000 | |
| commit | 8ac0a656a8611653e49c5a3b0520d4f63f02be7a (patch) | |
| tree | d1d341c646c8ab8d9001d93d96e31a061d2b407d | |
| parent | ce236a3a4a8a3e8ca824759b13c9e4ed82ac59ab (diff) | |
| parent | 3a8a39f3787542a643e820885d246bcd5f33a327 (diff) | |
Merge "Surface HAL constants"
| -rw-r--r-- | api/current.txt | 5 | ||||
| -rw-r--r-- | api/test-current.txt | 4 | ||||
| -rw-r--r-- | core/java/android/os/VibrationEffect.java | 42 |
3 files changed, 39 insertions, 12 deletions
diff --git a/api/current.txt b/api/current.txt index 049272bee3ce..ebeb411b7c60 100644 --- a/api/current.txt +++ b/api/current.txt @@ -35295,11 +35295,16 @@ package android.os { public abstract class VibrationEffect implements android.os.Parcelable { method public static android.os.VibrationEffect createOneShot(long, int); + method public static android.os.VibrationEffect createPrebaked(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 + field public static final int EFFECT_CLICK = 0; // 0x0 + field public static final int EFFECT_DOUBLE_CLICK = 1; // 0x1 + field public static final int EFFECT_HEAVY_CLICK = 5; // 0x5 + field public static final int EFFECT_TICK = 2; // 0x2 } public abstract class Vibrator { diff --git a/api/test-current.txt b/api/test-current.txt index 1b5bb10e959b..223ddb9aa962 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -1299,15 +1299,11 @@ package android.os { method @Nullable public static android.os.VibrationEffect get(android.net.Uri, android.content.Context); method public abstract long getDuration(); method protected static int scale(int, float, int); - field public static final int EFFECT_CLICK = 0; // 0x0 - field public static final int EFFECT_DOUBLE_CLICK = 1; // 0x1 - field public static final int EFFECT_HEAVY_CLICK = 5; // 0x5 field public static final int EFFECT_POP = 4; // 0x4 field public static final int EFFECT_STRENGTH_LIGHT = 0; // 0x0 field public static final int EFFECT_STRENGTH_MEDIUM = 1; // 0x1 field public static final int EFFECT_STRENGTH_STRONG = 2; // 0x2 field public static final int EFFECT_THUD = 3; // 0x3 - field public static final int EFFECT_TICK = 2; // 0x2 field public static final int[] RINGTONES; } diff --git a/core/java/android/os/VibrationEffect.java b/core/java/android/os/VibrationEffect.java index 01d85c6c6c85..99fb608b80dc 100644 --- a/core/java/android/os/VibrationEffect.java +++ b/core/java/android/os/VibrationEffect.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.IntDef; import android.annotation.Nullable; import android.annotation.TestApi; import android.content.ContentResolver; @@ -25,6 +26,8 @@ import android.hardware.vibrator.V1_2.Effect; import android.net.Uri; import android.util.MathUtils; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.Arrays; /** @@ -52,26 +55,20 @@ public abstract class VibrationEffect implements Parcelable { * A click effect. * * @see #get(int) - * @hide */ - @TestApi public static final int EFFECT_CLICK = Effect.CLICK; /** * A double click effect. * * @see #get(int) - * @hide */ - @TestApi public static final int EFFECT_DOUBLE_CLICK = Effect.DOUBLE_CLICK; /** * A tick effect. * @see #get(int) - * @hide */ - @TestApi public static final int EFFECT_TICK = Effect.TICK; /** @@ -93,9 +90,7 @@ public abstract class VibrationEffect implements Parcelable { /** * A heavy click effect. * @see #get(int) - * @hide */ - @TestApi public static final int EFFECT_HEAVY_CLICK = Effect.HEAVY_CLICK; /** {@hide} */ @@ -136,6 +131,16 @@ public abstract class VibrationEffect implements Parcelable { Effect.RINGTONE_15 }; + /** @hide */ + @IntDef(prefix = { "EFFECT_" }, value = { + EFFECT_TICK, + EFFECT_CLICK, + EFFECT_HEAVY_CLICK, + EFFECT_DOUBLE_CLICK, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface EffectType {} + /** @hide to prevent subclassing from outside of the framework */ public VibrationEffect() { } @@ -219,6 +224,27 @@ public abstract class VibrationEffect implements Parcelable { } /** + * Create a predefined vibration effect. + * + * Predefined effects are a set of common vibration effects that should be identical, regardless + * of the app they come from, in order to provide a cohesive experience for users across + * the entire device. They also may be custom tailored to the device hardware in order to + * provide a better experience than you could otherwise build using the generic building + * blocks. + * + * This will fallback to a generic pattern if one exists and there does not exist a + * hardware-specific implementation of the effect. + * + * @param effectId The ID of the effect to perform: + * {@link #EFFECT_CLICK}, {@link #EFFECT_DOUBLE_CLICK}, {@link #EFFECT_TICK} + * + * @return The desired effect. + */ + public static VibrationEffect createPrebaked(@EffectType int effectId) { + return get(effectId, true); + } + + /** * Get a predefined vibration effect. * * Predefined effects are a set of common vibration effects that should be identical, regardless |