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

Commit bede1943 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Preload old-style flashlight tile's isAvailable() in bg" into main

parents 5ed31e1f 8f623a15
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.systemui.flashlight.data.repository

import android.content.packageManager
import android.content.pm.PackageManager
import android.hardware.camera2.CameraCharacteristics
import android.hardware.camera2.CameraManager.TorchCallback
import android.platform.test.annotations.EnableFlags
@@ -527,6 +529,30 @@ class FlashlightRepositoryTest : SysuiTestCase() {
            assertThat(state).isEqualTo(FlashlightModel.Unavailable.Temporarily.NotFound)
        }

    @Test
    fun deviceSupportsFlashlight_whenFalse_matchesPackageManager() =
        kosmos.runTest {
            startFlashlightRepository(false)

            runCurrent()

            assertThat(packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH))
                .isFalse()
            assertThat(underTest.deviceSupportsFlashlight).isFalse()
        }

    @Test
    fun deviceSupportsFlashlight_whenTrue_matchesPackageManager() =
        kosmos.runTest {
            startFlashlightRepository(true)

            runCurrent()

            assertThat(packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH))
                .isTrue()
            assertThat(underTest.deviceSupportsFlashlight).isTrue()
        }

    companion object {
        private const val BASE_TORCH_LEVEL = 1
        private const val DEFAULT_DEFAULT_LEVEL = 21
+6 −3
Original line number Diff line number Diff line
@@ -107,14 +107,17 @@ constructor(

    private var canAttemptReconnect = AtomicBoolean(true)

    private var _deviceSupportsFlashlight = false

    override fun start() {
        if (FlashlightStrength.isUnexpectedlyInLegacyMode()) {
            return
        }
        dumpManager.registerNormalDumpable(javaClass.simpleName, this)
        bgScope.launch {
            val isSupported = packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)
            if (!isSupported) {
            _deviceSupportsFlashlight =
                packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)
            if (!_deviceSupportsFlashlight) {
                logger.d(
                    "start: device does not have camera flash system feature. " +
                        "Will not attempt to read flashlight info."
@@ -320,7 +323,7 @@ constructor(
    }

    override val deviceSupportsFlashlight: Boolean
        get() = state.value != FlashlightModel.Unavailable.Permanently.NotSupported
        get() = _deviceSupportsFlashlight

    override fun setEnabled(enabled: Boolean) {
        bgScope.launch {