Camera3: Report correct flash mode and flash state

Report flash state unavailable if there is no flash on camera.
Report correct enum for flash mode.

Bug: 13681666
Bug: 13083390
Change-Id: Ifa5efe6a104616b6e6301e9ac604ef63453f5c89
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index d7229ff..c46221d 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -2066,15 +2066,21 @@
              break;
           }
           case CAM_INTF_META_FLASH_STATE: {
-             uint8_t  *flashState =
-                (uint8_t *)POINTER_OF(CAM_INTF_META_FLASH_STATE, metadata);
-             camMetadata.update(ANDROID_FLASH_STATE, flashState, 1);
+             uint8_t  flashState =
+                *((uint8_t *)POINTER_OF(CAM_INTF_META_FLASH_STATE, metadata));
+             if (!gCamCapability[mCameraId]->flash_available) {
+                 flashState = ANDROID_FLASH_STATE_UNAVAILABLE;
+             }
+             camMetadata.update(ANDROID_FLASH_STATE, &flashState, 1);
              break;
           }
           case CAM_INTF_META_FLASH_MODE:{
-             uint8_t *flashMode = (uint8_t*)
-                 POINTER_OF(CAM_INTF_META_FLASH_MODE, metadata);
-             camMetadata.update(ANDROID_FLASH_MODE, flashMode, 1);
+             uint8_t flashMode = *((uint8_t*)
+                 POINTER_OF(CAM_INTF_META_FLASH_MODE, metadata));
+             uint8_t fwk_flashMode = lookupFwkName(FLASH_MODES_MAP,
+                                          sizeof(FLASH_MODES_MAP),
+                                          flashMode);
+             camMetadata.update(ANDROID_FLASH_MODE, &fwk_flashMode, 1);
              break;
           }
           case CAM_INTF_META_HOTPIXEL_MODE: {