Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d0dc803d authored by Rucha Katakwar's avatar Rucha Katakwar
Browse files

Camera: Fix up newly added flash control keys.

Set the values to manual flash control keys to 1 if
not set.

Bug: 238348881
Test: Added a new CTS test to test verify the fix up.

Change-Id: Iaac1ee3961dc7838dc3de1a7c70afcf01ccae446
parent 1b72e3f0
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
@@ -1487,6 +1487,56 @@ status_t CameraProviderManager::ProviderInfo::DeviceInfo3::fixupTorchStrengthTag
    return res;
}

status_t CameraProviderManager::ProviderInfo::DeviceInfo3::fixupManualFlashStrengthControlTags() {
    status_t res = OK;
    auto& c = mCameraCharacteristics;
    auto flashSingleStrengthMaxLevelEntry = c.find(ANDROID_FLASH_SINGLE_STRENGTH_MAX_LEVEL);
    if (flashSingleStrengthMaxLevelEntry.count == 0) {
        int32_t flashSingleStrengthMaxLevel = 1;
        res = c.update(ANDROID_FLASH_SINGLE_STRENGTH_MAX_LEVEL,
                &flashSingleStrengthMaxLevel, 1);
        if (res != OK) {
            ALOGE("%s: Failed to update ANDROID_FLASH_SINGLE_STRENGTH_MAX_LEVEL: %s (%d)",
                    __FUNCTION__,strerror(-res), res);
            return res;
        }
    }
    auto flashSingleStrengthDefaultLevelEntry = c.find(ANDROID_FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL);
    if (flashSingleStrengthDefaultLevelEntry.count == 0) {
        int32_t flashSingleStrengthDefaultLevel = 1;
        res = c.update(ANDROID_FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL,
                &flashSingleStrengthDefaultLevel, 1);
        if (res != OK) {
            ALOGE("%s: Failed to update ANDROID_FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL: %s (%d)",
                    __FUNCTION__,strerror(-res), res);
            return res;
        }
    }
    auto flashTorchStrengthMaxLevelEntry = c.find(ANDROID_FLASH_TORCH_STRENGTH_MAX_LEVEL);
    if (flashTorchStrengthMaxLevelEntry.count == 0) {
        int32_t flashTorchStrengthMaxLevel = 1;
        res = c.update(ANDROID_FLASH_TORCH_STRENGTH_MAX_LEVEL,
                &flashTorchStrengthMaxLevel, 1);
        if (res != OK) {
            ALOGE("%s: Failed to update ANDROID_FLASH_TORCH_STRENGTH_MAX_LEVEL: %s (%d)",
                    __FUNCTION__,strerror(-res), res);
            return res;
        }
    }
    auto flashTorchStrengthDefaultLevelEntry = c.find(ANDROID_FLASH_TORCH_STRENGTH_DEFAULT_LEVEL);
    if (flashTorchStrengthDefaultLevelEntry.count == 0) {
        int32_t flashTorchStrengthDefaultLevel = 1;
        res = c.update(ANDROID_FLASH_TORCH_STRENGTH_DEFAULT_LEVEL,
                &flashTorchStrengthDefaultLevel, 1);
        if (res != OK) {
            ALOGE("%s: Failed to update ANDROID_FLASH_TORCH_STRENGTH_DEFAULT_LEVEL: %s (%d)",
                    __FUNCTION__,strerror(-res), res);
            return res;
        }
    }
    return res;
}

status_t CameraProviderManager::ProviderInfo::DeviceInfo3::fixupMonochromeTags() {
    status_t res = OK;
    auto& c = mCameraCharacteristics;
+1 −0
Original line number Diff line number Diff line
@@ -683,6 +683,7 @@ private:
            SystemCameraKind getSystemCameraKind();
            status_t fixupMonochromeTags();
            status_t fixupTorchStrengthTags();
            status_t fixupManualFlashStrengthControlTags();
            status_t addDynamicDepthTags(bool maxResolution = false);
            status_t deriveHeicTags(bool maxResolution = false);
            status_t deriveJpegRTags(bool maxResolution = false);
+6 −0
Original line number Diff line number Diff line
@@ -494,6 +494,12 @@ AidlProviderInfo::AidlDeviceInfo3::AidlDeviceInfo3(
                __FUNCTION__, strerror(-res), res);
        return;
    }
    res = fixupManualFlashStrengthControlTags();
    if (OK != res) {
        ALOGE("%s: Unable to fix up manual flash strength control tags: %s (%d)",
                __FUNCTION__, strerror(-res), res);
        return;
    }
    auto stat = addDynamicDepthTags();
    if (OK != stat) {
        ALOGE("%s: Failed appending dynamic depth tags: %s (%d)", __FUNCTION__, strerror(-stat),
+8 −0
Original line number Diff line number Diff line
@@ -613,6 +613,14 @@ HidlProviderInfo::HidlDeviceInfo3::HidlDeviceInfo3(
                __FUNCTION__, strerror(-res), res);
        return;
    }

    res = fixupManualFlashStrengthControlTags();
    if (OK != res) {
        ALOGE("%s: Unable to fix up manual flash strength control tags: %s (%d)",
                __FUNCTION__, strerror(-res), res);
        return;
    }

    auto stat = addDynamicDepthTags();
    if (OK != stat) {
        ALOGE("%s: Failed appending dynamic depth tags: %s (%d)", __FUNCTION__, strerror(-stat),