Add fallback for TEXTURE_TICK

TEXTURE_TICK vibration effect should fallback to TICK effect if not
supported by HAL (and, if necessary, fallback further to TICK effect
fallback)
Bug: 129275029
Test: atest VibrationEffectTest
Test: adb cmd vibrator prebaked 21 on a phone which does not support
TEXTURE_TICK - you should feel the device vibrates

Change-Id: I788b0835312e2b2ab590c26ef2f9961fe542cf77
This commit is contained in:
Alexey Kuzmin
2019-04-04 18:39:38 +01:00
parent 78290da566
commit bebf04aaaf
3 changed files with 6 additions and 0 deletions

View File

@@ -1895,6 +1895,7 @@ package android.os {
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_TEXTURE_TICK = 21; // 0x15
field public static final int EFFECT_THUD = 3; // 0x3
field public static final int[] RINGTONES;
}

View File

@@ -104,6 +104,7 @@ public abstract class VibrationEffect implements Parcelable {
* @see #get(int)
* @hide
*/
@TestApi
public static final int EFFECT_TEXTURE_TICK = Effect.TEXTURE_TICK;
/** {@hide} */

View File

@@ -236,6 +236,7 @@ public class VibratorService extends IVibratorService.Stub
case VibrationEffect.EFFECT_CLICK:
case VibrationEffect.EFFECT_DOUBLE_CLICK:
case VibrationEffect.EFFECT_HEAVY_CLICK:
case VibrationEffect.EFFECT_TEXTURE_TICK:
case VibrationEffect.EFFECT_TICK:
case VibrationEffect.EFFECT_POP:
case VibrationEffect.EFFECT_THUD:
@@ -379,6 +380,9 @@ public class VibratorService extends IVibratorService.Stub
mFallbackEffects.put(VibrationEffect.EFFECT_TICK, tickEffect);
mFallbackEffects.put(VibrationEffect.EFFECT_HEAVY_CLICK, heavyClickEffect);
mFallbackEffects.put(VibrationEffect.EFFECT_TEXTURE_TICK,
VibrationEffect.get(VibrationEffect.EFFECT_TICK, false));
mScaleLevels = new SparseArray<>();
mScaleLevels.put(SCALE_VERY_LOW,
new ScaleLevel(SCALE_VERY_LOW_GAMMA, SCALE_VERY_LOW_MAX_AMPLITUDE));