From fb0664cdac94d60b14d2f62644293d4ae6ac4f02 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Wed, 6 Oct 2021 11:38:45 -0700 Subject: [PATCH 1/5] Add filter for cameras and corresponding test --- .../flutter/plugins/camera/CameraUtils.java | 61 ++++++++--------- .../plugins/camera/CameraUtilsTest.java | 66 ++++++++++++++----- 2 files changed, 79 insertions(+), 48 deletions(-) diff --git a/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java b/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java index 003d80a6c241..1c11c24c2920 100644 --- a/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java +++ b/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java @@ -19,7 +19,8 @@ /** Provides various utilities for camera. */ public final class CameraUtils { - private CameraUtils() {} + private CameraUtils() { + } /** * Gets the {@link CameraManager} singleton. @@ -36,8 +37,8 @@ static CameraManager getCameraManager(Context context) { * * @param orientation The orientation to serialize. * @return The serialized orientation. - * @throws UnsupportedOperationException when the provided orientation not have a corresponding - * string value. + * @throws UnsupportedOperationException when the provided orientation not have + * a corresponding string value. */ static String serializeDeviceOrientation(PlatformChannel.DeviceOrientation orientation) { if (orientation == null) @@ -52,19 +53,19 @@ static String serializeDeviceOrientation(PlatformChannel.DeviceOrientation orien case LANDSCAPE_RIGHT: return "landscapeRight"; default: - throw new UnsupportedOperationException( - "Could not serialize device orientation: " + orientation.toString()); + throw new UnsupportedOperationException("Could not serialize device orientation: " + orientation.toString()); } } /** - * Deserializes a string value to its corresponding {@link PlatformChannel.DeviceOrientation} - * value. + * Deserializes a string value to its corresponding + * {@link PlatformChannel.DeviceOrientation} value. * * @param orientation The string value to deserialize. * @return The deserialized orientation. - * @throws UnsupportedOperationException when the provided string value does not have a - * corresponding {@link PlatformChannel.DeviceOrientation}. + * @throws UnsupportedOperationException when the provided string value does not + * have a corresponding + * {@link PlatformChannel.DeviceOrientation}. */ static PlatformChannel.DeviceOrientation deserializeDeviceOrientation(String orientation) { if (orientation == null) @@ -79,8 +80,7 @@ static PlatformChannel.DeviceOrientation deserializeDeviceOrientation(String ori case "landscapeRight": return PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT; default: - throw new UnsupportedOperationException( - "Could not deserialize device orientation: " + orientation); + throw new UnsupportedOperationException("Could not deserialize device orientation: " + orientation); } } @@ -91,31 +91,32 @@ static PlatformChannel.DeviceOrientation deserializeDeviceOrientation(String ori * @return A map of all the available cameras, with their name as their key. * @throws CameraAccessException when the camera could not be accessed. */ - public static List> getAvailableCameras(Activity activity) - throws CameraAccessException { + public static List> getAvailableCameras(Activity activity) throws CameraAccessException { CameraManager cameraManager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE); String[] cameraNames = cameraManager.getCameraIdList(); List> cameras = new ArrayList<>(); for (String cameraName : cameraNames) { - HashMap details = new HashMap<>(); - CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraName); - details.put("name", cameraName); - int sensorOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); - details.put("sensorOrientation", sensorOrientation); + if (Integer.parseInt(cameraName, 10) >= 0) { + HashMap details = new HashMap<>(); + CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraName); + details.put("name", cameraName); + int sensorOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); + details.put("sensorOrientation", sensorOrientation); - int lensFacing = characteristics.get(CameraCharacteristics.LENS_FACING); - switch (lensFacing) { - case CameraMetadata.LENS_FACING_FRONT: - details.put("lensFacing", "front"); - break; - case CameraMetadata.LENS_FACING_BACK: - details.put("lensFacing", "back"); - break; - case CameraMetadata.LENS_FACING_EXTERNAL: - details.put("lensFacing", "external"); - break; + int lensFacing = characteristics.get(CameraCharacteristics.LENS_FACING); + switch (lensFacing) { + case CameraMetadata.LENS_FACING_FRONT: + details.put("lensFacing", "front"); + break; + case CameraMetadata.LENS_FACING_BACK: + details.put("lensFacing", "back"); + break; + case CameraMetadata.LENS_FACING_EXTERNAL: + details.put("lensFacing", "external"); + break; + } + cameras.add(details); } - cameras.add(details); } return cameras; } diff --git a/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java b/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java index 6b714ce41e34..edb2cf6995c2 100644 --- a/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java +++ b/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java @@ -5,25 +5,33 @@ package io.flutter.plugins.camera; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import android.app.Activity; +import android.content.Context; +import android.hardware.camera2.CameraAccessException; +import android.hardware.camera2.CameraCharacteristics; +import android.hardware.camera2.CameraManager; +import android.hardware.camera2.CameraMetadata; import io.flutter.embedding.engine.systemchannels.PlatformChannel; +import java.util.List; +import java.util.Map; import org.junit.Test; public class CameraUtilsTest { @Test public void serializeDeviceOrientation_serializesCorrectly() { - assertEquals( - "portraitUp", - CameraUtils.serializeDeviceOrientation(PlatformChannel.DeviceOrientation.PORTRAIT_UP)); - assertEquals( - "portraitDown", + assertEquals("portraitUp", CameraUtils.serializeDeviceOrientation(PlatformChannel.DeviceOrientation.PORTRAIT_UP)); + assertEquals("portraitDown", CameraUtils.serializeDeviceOrientation(PlatformChannel.DeviceOrientation.PORTRAIT_DOWN)); - assertEquals( - "landscapeLeft", + assertEquals("landscapeLeft", CameraUtils.serializeDeviceOrientation(PlatformChannel.DeviceOrientation.LANDSCAPE_LEFT)); - assertEquals( - "landscapeRight", + assertEquals("landscapeRight", CameraUtils.serializeDeviceOrientation(PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT)); } @@ -34,17 +42,12 @@ public void serializeDeviceOrientation_throws_for_null() { @Test public void deserializeDeviceOrientation_deserializesCorrectly() { - assertEquals( - PlatformChannel.DeviceOrientation.PORTRAIT_UP, - CameraUtils.deserializeDeviceOrientation("portraitUp")); - assertEquals( - PlatformChannel.DeviceOrientation.PORTRAIT_DOWN, + assertEquals(PlatformChannel.DeviceOrientation.PORTRAIT_UP, CameraUtils.deserializeDeviceOrientation("portraitUp")); + assertEquals(PlatformChannel.DeviceOrientation.PORTRAIT_DOWN, CameraUtils.deserializeDeviceOrientation("portraitDown")); - assertEquals( - PlatformChannel.DeviceOrientation.LANDSCAPE_LEFT, + assertEquals(PlatformChannel.DeviceOrientation.LANDSCAPE_LEFT, CameraUtils.deserializeDeviceOrientation("landscapeLeft")); - assertEquals( - PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT, + assertEquals(PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT, CameraUtils.deserializeDeviceOrientation("landscapeRight")); } @@ -52,4 +55,31 @@ public void deserializeDeviceOrientation_deserializesCorrectly() { public void deserializeDeviceOrientation_throwsForNull() { CameraUtils.deserializeDeviceOrientation(null); } + + @Test + public void getAvailableCameras_retrievesValidCameras() throws CameraAccessException { + final Activity mockActivity = mock(Activity.class); + final CameraManager mockCameraManager = mock(CameraManager.class); + final CameraCharacteristics mockCameraCharacteristics = mock(CameraCharacteristics.class); + final String[] mockCameraIds = {"1394902", "-192930", "0283835"}; + final int mockSensorOrientation = 270; + final int mockLensFacing = CameraMetadata.LENS_FACING_FRONT; + + when(mockActivity.getSystemService(Context.CAMERA_SERVICE)).thenReturn(mockCameraManager); + when(mockCameraManager.getCameraIdList()).thenReturn(mockCameraIds); + when(mockCameraManager.getCameraCharacteristics(anyString())).thenReturn(mockCameraCharacteristics); + when(mockCameraCharacteristics.get(CameraCharacteristics.SENSOR_ORIENTATION)).thenReturn(mockSensorOrientation); + when(mockCameraCharacteristics.get(CameraCharacteristics.LENS_FACING)).thenReturn(mockLensFacing); + + List> availableCameras = CameraUtils.getAvailableCameras(mockActivity); + + System.out.println(availableCameras); + assertEquals(availableCameras.size(), 2); + assertEquals(availableCameras.get(0).get("name"), "1394902"); + assertEquals(availableCameras.get(0).get("sensorOrientation"), 0); + assertEquals(availableCameras.get(0).get("lensFacing"), "front"); + assertEquals(availableCameras.get(1).get("name"), "0283835"); + assertEquals(availableCameras.get(1).get("sensorOrientation"), 0); + assertEquals(availableCameras.get(1).get("lensFacing"), "front"); + } } From 7f2bbd6a127c18b76fab0ba0ecd34ba70428b492 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Wed, 6 Oct 2021 14:44:31 -0700 Subject: [PATCH 2/5] Fix sensorOrientation,lensFacing when/thenReturns, format files --- .../flutter/plugins/camera/CameraUtils.java | 25 ++++----- .../plugins/camera/CameraUtilsTest.java | 52 ++++++++++++------- 2 files changed, 46 insertions(+), 31 deletions(-) diff --git a/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java b/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java index 1c11c24c2920..a22da12c4fe7 100644 --- a/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java +++ b/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java @@ -19,8 +19,7 @@ /** Provides various utilities for camera. */ public final class CameraUtils { - private CameraUtils() { - } + private CameraUtils() {} /** * Gets the {@link CameraManager} singleton. @@ -37,8 +36,8 @@ static CameraManager getCameraManager(Context context) { * * @param orientation The orientation to serialize. * @return The serialized orientation. - * @throws UnsupportedOperationException when the provided orientation not have - * a corresponding string value. + * @throws UnsupportedOperationException when the provided orientation not have a corresponding + * string value. */ static String serializeDeviceOrientation(PlatformChannel.DeviceOrientation orientation) { if (orientation == null) @@ -53,19 +52,19 @@ static String serializeDeviceOrientation(PlatformChannel.DeviceOrientation orien case LANDSCAPE_RIGHT: return "landscapeRight"; default: - throw new UnsupportedOperationException("Could not serialize device orientation: " + orientation.toString()); + throw new UnsupportedOperationException( + "Could not serialize device orientation: " + orientation.toString()); } } /** - * Deserializes a string value to its corresponding - * {@link PlatformChannel.DeviceOrientation} value. + * Deserializes a string value to its corresponding {@link PlatformChannel.DeviceOrientation} + * value. * * @param orientation The string value to deserialize. * @return The deserialized orientation. - * @throws UnsupportedOperationException when the provided string value does not - * have a corresponding - * {@link PlatformChannel.DeviceOrientation}. + * @throws UnsupportedOperationException when the provided string value does not have a + * corresponding {@link PlatformChannel.DeviceOrientation}. */ static PlatformChannel.DeviceOrientation deserializeDeviceOrientation(String orientation) { if (orientation == null) @@ -80,7 +79,8 @@ static PlatformChannel.DeviceOrientation deserializeDeviceOrientation(String ori case "landscapeRight": return PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT; default: - throw new UnsupportedOperationException("Could not deserialize device orientation: " + orientation); + throw new UnsupportedOperationException( + "Could not deserialize device orientation: " + orientation); } } @@ -91,7 +91,8 @@ static PlatformChannel.DeviceOrientation deserializeDeviceOrientation(String ori * @return A map of all the available cameras, with their name as their key. * @throws CameraAccessException when the camera could not be accessed. */ - public static List> getAvailableCameras(Activity activity) throws CameraAccessException { + public static List> getAvailableCameras(Activity activity) + throws CameraAccessException { CameraManager cameraManager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE); String[] cameraNames = cameraManager.getCameraIdList(); List> cameras = new ArrayList<>(); diff --git a/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java b/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java index edb2cf6995c2..38122b5c75af 100644 --- a/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java +++ b/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java @@ -5,8 +5,7 @@ package io.flutter.plugins.camera; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -26,12 +25,17 @@ public class CameraUtilsTest { @Test public void serializeDeviceOrientation_serializesCorrectly() { - assertEquals("portraitUp", CameraUtils.serializeDeviceOrientation(PlatformChannel.DeviceOrientation.PORTRAIT_UP)); - assertEquals("portraitDown", + assertEquals( + "portraitUp", + CameraUtils.serializeDeviceOrientation(PlatformChannel.DeviceOrientation.PORTRAIT_UP)); + assertEquals( + "portraitDown", CameraUtils.serializeDeviceOrientation(PlatformChannel.DeviceOrientation.PORTRAIT_DOWN)); - assertEquals("landscapeLeft", + assertEquals( + "landscapeLeft", CameraUtils.serializeDeviceOrientation(PlatformChannel.DeviceOrientation.LANDSCAPE_LEFT)); - assertEquals("landscapeRight", + assertEquals( + "landscapeRight", CameraUtils.serializeDeviceOrientation(PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT)); } @@ -42,12 +46,17 @@ public void serializeDeviceOrientation_throws_for_null() { @Test public void deserializeDeviceOrientation_deserializesCorrectly() { - assertEquals(PlatformChannel.DeviceOrientation.PORTRAIT_UP, CameraUtils.deserializeDeviceOrientation("portraitUp")); - assertEquals(PlatformChannel.DeviceOrientation.PORTRAIT_DOWN, + assertEquals( + PlatformChannel.DeviceOrientation.PORTRAIT_UP, + CameraUtils.deserializeDeviceOrientation("portraitUp")); + assertEquals( + PlatformChannel.DeviceOrientation.PORTRAIT_DOWN, CameraUtils.deserializeDeviceOrientation("portraitDown")); - assertEquals(PlatformChannel.DeviceOrientation.LANDSCAPE_LEFT, + assertEquals( + PlatformChannel.DeviceOrientation.LANDSCAPE_LEFT, CameraUtils.deserializeDeviceOrientation("landscapeLeft")); - assertEquals(PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT, + assertEquals( + PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT, CameraUtils.deserializeDeviceOrientation("landscapeRight")); } @@ -62,24 +71,29 @@ public void getAvailableCameras_retrievesValidCameras() throws CameraAccessExcep final CameraManager mockCameraManager = mock(CameraManager.class); final CameraCharacteristics mockCameraCharacteristics = mock(CameraCharacteristics.class); final String[] mockCameraIds = {"1394902", "-192930", "0283835"}; - final int mockSensorOrientation = 270; - final int mockLensFacing = CameraMetadata.LENS_FACING_FRONT; + final int mockSensorOrientation0 = 90; + final int mockSensorOrientation2 = 270; + final int mockLensFacing0 = CameraMetadata.LENS_FACING_FRONT; + final int mockLensFacing2 = CameraMetadata.LENS_FACING_EXTERNAL; when(mockActivity.getSystemService(Context.CAMERA_SERVICE)).thenReturn(mockCameraManager); when(mockCameraManager.getCameraIdList()).thenReturn(mockCameraIds); - when(mockCameraManager.getCameraCharacteristics(anyString())).thenReturn(mockCameraCharacteristics); - when(mockCameraCharacteristics.get(CameraCharacteristics.SENSOR_ORIENTATION)).thenReturn(mockSensorOrientation); - when(mockCameraCharacteristics.get(CameraCharacteristics.LENS_FACING)).thenReturn(mockLensFacing); + when(mockCameraManager.getCameraCharacteristics(anyString())) + .thenReturn(mockCameraCharacteristics); + when(mockCameraCharacteristics.get(any())) + .thenReturn(mockSensorOrientation0) + .thenReturn(mockLensFacing0) + .thenReturn(mockSensorOrientation2) + .thenReturn(mockLensFacing2); List> availableCameras = CameraUtils.getAvailableCameras(mockActivity); - System.out.println(availableCameras); assertEquals(availableCameras.size(), 2); assertEquals(availableCameras.get(0).get("name"), "1394902"); - assertEquals(availableCameras.get(0).get("sensorOrientation"), 0); + assertEquals(availableCameras.get(0).get("sensorOrientation"), mockSensorOrientation0); assertEquals(availableCameras.get(0).get("lensFacing"), "front"); assertEquals(availableCameras.get(1).get("name"), "0283835"); - assertEquals(availableCameras.get(1).get("sensorOrientation"), 0); - assertEquals(availableCameras.get(1).get("lensFacing"), "front"); + assertEquals(availableCameras.get(1).get("sensorOrientation"), mockSensorOrientation2); + assertEquals(availableCameras.get(1).get("lensFacing"), "external"); } } From b0ff1148186c2498e19f22f45251ac65a894b7e6 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Wed, 6 Oct 2021 15:27:28 -0700 Subject: [PATCH 3/5] Simplified filter conditional --- .../flutter/plugins/camera/CameraUtils.java | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java b/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java index a22da12c4fe7..20a9e6760f9a 100644 --- a/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java +++ b/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java @@ -97,27 +97,28 @@ public static List> getAvailableCameras(Activity activity) String[] cameraNames = cameraManager.getCameraIdList(); List> cameras = new ArrayList<>(); for (String cameraName : cameraNames) { - if (Integer.parseInt(cameraName, 10) >= 0) { - HashMap details = new HashMap<>(); - CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraName); - details.put("name", cameraName); - int sensorOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); - details.put("sensorOrientation", sensorOrientation); + if (Integer.parseInt(cameraName, 10) < 0) { + continue; + } + HashMap details = new HashMap<>(); + CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraName); + details.put("name", cameraName); + int sensorOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); + details.put("sensorOrientation", sensorOrientation); - int lensFacing = characteristics.get(CameraCharacteristics.LENS_FACING); - switch (lensFacing) { - case CameraMetadata.LENS_FACING_FRONT: - details.put("lensFacing", "front"); - break; - case CameraMetadata.LENS_FACING_BACK: - details.put("lensFacing", "back"); - break; - case CameraMetadata.LENS_FACING_EXTERNAL: - details.put("lensFacing", "external"); - break; - } - cameras.add(details); + int lensFacing = characteristics.get(CameraCharacteristics.LENS_FACING); + switch (lensFacing) { + case CameraMetadata.LENS_FACING_FRONT: + details.put("lensFacing", "front"); + break; + case CameraMetadata.LENS_FACING_BACK: + details.put("lensFacing", "back"); + break; + case CameraMetadata.LENS_FACING_EXTERNAL: + details.put("lensFacing", "external"); + break; } + cameras.add(details); } return cameras; } From 00792c3b0c6bc948d0deb0de28ac27258bc08d6e Mon Sep 17 00:00:00 2001 From: camsim99 Date: Wed, 6 Oct 2021 15:47:02 -0700 Subject: [PATCH 4/5] Added parseInt error handling --- .../main/java/io/flutter/plugins/camera/CameraUtils.java | 9 ++++++++- .../java/io/flutter/plugins/camera/CameraUtilsTest.java | 5 +++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java b/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java index 20a9e6760f9a..c2c080e17e2a 100644 --- a/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java +++ b/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java @@ -97,9 +97,16 @@ public static List> getAvailableCameras(Activity activity) String[] cameraNames = cameraManager.getCameraIdList(); List> cameras = new ArrayList<>(); for (String cameraName : cameraNames) { - if (Integer.parseInt(cameraName, 10) < 0) { + int cameraId; + try { + cameraId = Integer.parseInt(cameraName, 10); + } catch (Exception e) { + cameraId = -1; + } + if (cameraId < 0) { continue; } + HashMap details = new HashMap<>(); CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraName); details.put("name", cameraName); diff --git a/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java b/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java index 38122b5c75af..e59b05bf4fe3 100644 --- a/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java +++ b/packages/camera/camera/android/src/test/java/io/flutter/plugins/camera/CameraUtilsTest.java @@ -66,11 +66,12 @@ public void deserializeDeviceOrientation_throwsForNull() { } @Test - public void getAvailableCameras_retrievesValidCameras() throws CameraAccessException { + public void getAvailableCameras_retrievesValidCameras() + throws CameraAccessException, NumberFormatException { final Activity mockActivity = mock(Activity.class); final CameraManager mockCameraManager = mock(CameraManager.class); final CameraCharacteristics mockCameraCharacteristics = mock(CameraCharacteristics.class); - final String[] mockCameraIds = {"1394902", "-192930", "0283835"}; + final String[] mockCameraIds = {"1394902", "-192930", "0283835", "foobar"}; final int mockSensorOrientation0 = 90; final int mockSensorOrientation2 = 270; final int mockLensFacing0 = CameraMetadata.LENS_FACING_FRONT; From 46daf88d68072bada77be62bb89abfe09ccb36b5 Mon Sep 17 00:00:00 2001 From: camsim99 Date: Wed, 6 Oct 2021 15:58:38 -0700 Subject: [PATCH 5/5] Changed Exception type --- .../src/main/java/io/flutter/plugins/camera/CameraUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java b/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java index c2c080e17e2a..11b6eeaa5b50 100644 --- a/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java +++ b/packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/CameraUtils.java @@ -100,7 +100,7 @@ public static List> getAvailableCameras(Activity activity) int cameraId; try { cameraId = Integer.parseInt(cameraName, 10); - } catch (Exception e) { + } catch (NumberFormatException e) { cameraId = -1; } if (cameraId < 0) {