Make flash availability quirk case-insensitive
Ensures that the manufacturer and model are compared
case-insensitive when determining whether the device exhibits the
quirk.
Test: Checked known devices with FlashAvailabilityCheckerTest
Bug: 268105526
Bug: 264945468
Change-Id: I4f9b10c63df392ed4a1a6fddd2e1a931f5d6ce96
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/quirk/FlashAvailabilityBufferUnderflowQuirk.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/quirk/FlashAvailabilityBufferUnderflowQuirk.java
index d3ef576..45701e8 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/quirk/FlashAvailabilityBufferUnderflowQuirk.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/quirk/FlashAvailabilityBufferUnderflowQuirk.java
@@ -20,11 +20,11 @@
import android.os.Build;
import android.util.Pair;
+import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.camera.core.impl.Quirk;
import java.nio.BufferUnderflowException;
-import java.util.Arrays;
import java.util.HashSet;
import java.util.Locale;
import java.util.Set;
@@ -44,12 +44,17 @@
*/
@RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
public class FlashAvailabilityBufferUnderflowQuirk implements Quirk {
- private static final Set<Pair<String, String>> KNOWN_AFFECTED_MODELS = new HashSet<>(
- Arrays.asList(
- // Devices enumerated as Pair(Build.MANUFACTURER, Build.MODEL)
- new Pair<>("sprd", "lemp"),
- new Pair<>("sprd", "DM20C")
- ));
+ private static final Set<Pair<String, String>> KNOWN_AFFECTED_MODELS = new HashSet<>();
+ static {
+ // Devices enumerated as Pair(Build.MANUFACTURER, Build.MODEL).
+ addAffectedDevice("sprd", "lemp");
+ addAffectedDevice("sprd", "DM20C");
+ }
+
+ private static void addAffectedDevice(@NonNull String manufacturer, @NonNull String model) {
+ KNOWN_AFFECTED_MODELS.add(new Pair<>(manufacturer.toLowerCase(Locale.US),
+ model.toLowerCase(Locale.US)));
+ }
static boolean load() {
return KNOWN_AFFECTED_MODELS.contains(new Pair<>(Build.MANUFACTURER.toLowerCase(Locale.US),