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:
Simon Bowden
2022-01-27 19:23:01 +00:00
parent a1919f7805
commit 5b14477dc9

View File

@@ -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;
}
}