Directly implement areAllEffectsSupported and areAllPrimitivesSupported
rather than creating and throwing away an extra array to pass into the non-All version. Test: presubmit Change-Id: I8539e16272a591a193d846b490b02f72e95aba6a
This commit is contained in:
@@ -546,18 +546,22 @@ public abstract class Vibrator {
|
||||
@VibrationEffectSupport
|
||||
public final int areAllEffectsSupported(
|
||||
@NonNull @VibrationEffect.EffectType int... effectIds) {
|
||||
int support = VIBRATION_EFFECT_SUPPORT_YES;
|
||||
for (int supported : areEffectsSupported(effectIds)) {
|
||||
if (supported == VIBRATION_EFFECT_SUPPORT_NO) {
|
||||
return VIBRATION_EFFECT_SUPPORT_NO;
|
||||
} else if (supported == VIBRATION_EFFECT_SUPPORT_UNKNOWN) {
|
||||
support = VIBRATION_EFFECT_SUPPORT_UNKNOWN;
|
||||
VibratorInfo info = getInfo();
|
||||
int allSupported = VIBRATION_EFFECT_SUPPORT_YES;
|
||||
for (int effectId : effectIds) {
|
||||
switch (info.isEffectSupported(effectId)) {
|
||||
case VIBRATION_EFFECT_SUPPORT_NO:
|
||||
return VIBRATION_EFFECT_SUPPORT_NO;
|
||||
case VIBRATION_EFFECT_SUPPORT_YES:
|
||||
continue;
|
||||
default: // VIBRATION_EFFECT_SUPPORT_UNKNOWN
|
||||
allSupported = VIBRATION_EFFECT_SUPPORT_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return support;
|
||||
return allSupported;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Query whether the vibrator supports the given primitives.
|
||||
*
|
||||
@@ -598,8 +602,9 @@ public abstract class Vibrator {
|
||||
*/
|
||||
public final boolean areAllPrimitivesSupported(
|
||||
@NonNull @VibrationEffect.Composition.PrimitiveType int... primitiveIds) {
|
||||
for (boolean supported : arePrimitivesSupported(primitiveIds)) {
|
||||
if (!supported) {
|
||||
VibratorInfo info = getInfo();
|
||||
for (int primitiveId : primitiveIds) {
|
||||
if (!info.isPrimitiveSupported(primitiveId)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user