Loading packages/SystemUI/multivalentTests/src/com/android/systemui/flashlight/data/repository/FlashlightRepositoryTest.kt +26 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading packages/SystemUI/src/com/android/systemui/flashlight/data/repository/FlashlightRepository.kt +6 −3 Original line number Diff line number Diff line Loading @@ -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." Loading Loading @@ -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 { Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/flashlight/data/repository/FlashlightRepositoryTest.kt +26 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/flashlight/data/repository/FlashlightRepository.kt +6 −3 Original line number Diff line number Diff line Loading @@ -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." Loading Loading @@ -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 { Loading