OSDN Git Service

Make Camera support unknown higher hardware support levels.
authorSascha Haeberling <haeberling@google.com>
Tue, 9 Feb 2016 21:38:18 +0000 (13:38 -0800)
committerEino-Ville Talvala <etalvala@google.com>
Mon, 23 May 2016 21:15:14 +0000 (14:15 -0700)
Bug: 28419624

Change-Id: I37e6348178d9a7234456eab50b0ba57a07c33d51

src/com/android/camera/one/v2/OneCameraCharacteristicsImpl.java

index 279ede3..f7a2b7e 100644 (file)
@@ -139,11 +139,11 @@ public class OneCameraCharacteristicsImpl implements OneCameraCharacteristics {
 
     @Override
     public SupportedHardwareLevel getSupportedHardwareLevel() {
-        Integer supportedHardwareLevel = mCameraCharacteristics.get(CameraCharacteristics
-                .INFO_SUPPORTED_HARDWARE_LEVEL);
+        Integer supportedHardwareLevel = mCameraCharacteristics
+                .get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL);
         // If this fails, it is a framework bug, per API documentation.
         checkNotNull(supportedHardwareLevel, "INFO_SUPPORTED_HARDWARE_LEVEL not found");
-        switch ((int) supportedHardwareLevel) {
+        switch (supportedHardwareLevel) {
             case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL:
                 return SupportedHardwareLevel.FULL;
             case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED:
@@ -151,6 +151,12 @@ public class OneCameraCharacteristicsImpl implements OneCameraCharacteristics {
             case CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY:
                 return SupportedHardwareLevel.LEGACY;
             default:
+                if (supportedHardwareLevel >
+                        CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL) {
+                    Log.i(TAG, "Unknown higher hardware level mapped to FULL: "
+                            + supportedHardwareLevel);
+                    return SupportedHardwareLevel.FULL;
+                }
                 throw new IllegalStateException("Invalid value for INFO_SUPPORTED_HARDWARE_LEVEL");
         }
     }