summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/hardware/camera2/CameraExtensionCharacteristics.java6
-rw-r--r--packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java33
2 files changed, 20 insertions, 19 deletions
diff --git a/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java b/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java
index f6b22edaafb1..76c20ce2184a 100644
--- a/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java
+++ b/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java
@@ -808,13 +808,11 @@ public final class CameraExtensionCharacteristics {
extender.init(mCameraId, mCharacteristicsMapNative);
CameraMetadataNative metadata =
extender.getAvailableCharacteristicsKeyValues(mCameraId);
- CameraCharacteristics fallbackCharacteristics = mCharacteristicsMap.get(mCameraId);
if (metadata == null) {
- return fallbackCharacteristics.get(key);
+ return null;
}
CameraCharacteristics characteristics = new CameraCharacteristics(metadata);
- T value = characteristics.get(key);
- return value == null ? fallbackCharacteristics.get(key) : value;
+ return characteristics.get(key);
}
} catch (RemoteException e) {
Log.e(TAG, "Failed to query the extension for the specified key! Extension "
diff --git a/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java b/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java
index c134a4c5b2ad..d8a94d8b8b59 100644
--- a/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java
+++ b/packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java
@@ -1204,23 +1204,26 @@ public class CameraExtensionsProxyService extends Service {
List<Pair<CameraCharacteristics.Key, Object>> entries =
mAdvancedExtender.getAvailableCharacteristicsKeyValues();
- if ((entries != null) && !entries.isEmpty()) {
- CameraMetadataNative ret = new CameraMetadataNative();
- long vendorId = mMetadataVendorIdMap.containsKey(cameraId)
- ? mMetadataVendorIdMap.get(cameraId) : Long.MAX_VALUE;
- ret.setVendorId(vendorId);
- int[] characteristicsKeyTags = new int[entries.size()];
- int i = 0;
- for (Pair<CameraCharacteristics.Key, Object> entry : entries) {
- int tag = CameraMetadataNative.getTag(entry.first.getName(), vendorId);
- characteristicsKeyTags[i++] = tag;
- ret.set(entry.first, entry.second);
- }
- ret.set(CameraCharacteristics.REQUEST_AVAILABLE_CHARACTERISTICS_KEYS,
- characteristicsKeyTags);
+ if (entries == null || entries.isEmpty()) {
+ throw new RuntimeException("A valid set of key/value pairs are required that "
+ + "are supported by the extension.");
+ }
- return ret;
+ CameraMetadataNative ret = new CameraMetadataNative();
+ long vendorId = mMetadataVendorIdMap.containsKey(cameraId)
+ ? mMetadataVendorIdMap.get(cameraId) : Long.MAX_VALUE;
+ ret.setVendorId(vendorId);
+ int[] characteristicsKeyTags = new int[entries.size()];
+ int i = 0;
+ for (Pair<CameraCharacteristics.Key, Object> entry : entries) {
+ int tag = CameraMetadataNative.getTag(entry.first.getName(), vendorId);
+ characteristicsKeyTags[i++] = tag;
+ ret.set(entry.first, entry.second);
}
+ ret.set(CameraCharacteristics.REQUEST_AVAILABLE_CHARACTERISTICS_KEYS,
+ characteristicsKeyTags);
+
+ return ret;
}
return null;