From b0551beb8dab6e399179fcc6525407237fc8ee56 Mon Sep 17 00:00:00 2001 From: Shuzhen Wang Date: Tue, 7 Mar 2023 13:26:37 -0800 Subject: [PATCH] Camera: Remove GPS_LOCATION if set is called with null Per CaptureRequest documentation, if CaptureRequest.set(GPS_LOCATION) is called with null, the corresponding entries in the CameraMetata should be cleared. Make the logic so. Test: Camera CTS Bug: 268581420 Change-Id: Ib7801e14237e4500a7a9d5c00b2f15c35d482798 --- .../android/hardware/camera2/impl/CameraMetadataNative.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java index 9640b0e506dab..631df014a5809 100644 --- a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java +++ b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java @@ -1132,6 +1132,12 @@ public class CameraMetadataNative implements Parcelable { private boolean setGpsLocation(Location l) { if (l == null) { + // If Location value being set is null, remove corresponding keys. + // This is safe because api1/client2/CameraParameters.cpp already erases + // the keys for JPEG_GPS_LOCATION for certain cases. + setBase(CaptureRequest.JPEG_GPS_TIMESTAMP, null); + setBase(CaptureRequest.JPEG_GPS_COORDINATES, null); + setBase(CaptureRequest.JPEG_GPS_PROCESSING_METHOD, null); return false; }