diff options
| author | 2023-08-30 17:30:21 +0000 | |
|---|---|---|
| committer | 2023-08-30 17:30:21 +0000 | |
| commit | b63accfa3d13818c807f5b22c6e1b742327a49fe (patch) | |
| tree | 59195badc2f169a422bbd233204fbb4b2e8f03d3 | |
| parent | 723e9f1bd1cdf177bef162c53a1225c7d89bd47a (diff) | |
| parent | 53aa2a3a077e2ce97646d7baca8da62719dabfe9 (diff) | |
Merge "Precalculate lazy fields on component initialization." into main
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/controls/dagger/ControlsComponent.kt | 39 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/controls/dagger/ControlsComponentTest.kt | 8 |
2 files changed, 24 insertions, 23 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/controls/dagger/ControlsComponent.kt b/packages/SystemUI/src/com/android/systemui/controls/dagger/ControlsComponent.kt index 94e563319524..88b9612e8efd 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/dagger/ControlsComponent.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/dagger/ControlsComponent.kt @@ -16,7 +16,6 @@ package com.android.systemui.controls.dagger -import android.content.Context import com.android.internal.widget.LockPatternUtils import com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_BOOT import com.android.systemui.controls.controller.ControlsController @@ -44,10 +43,9 @@ class ControlsComponent @Inject constructor( @ControlsFeatureEnabled private val featureEnabled: Boolean, - private val context: Context, - private val lazyControlsController: Lazy<ControlsController>, - private val lazyControlsUiController: Lazy<ControlsUiController>, - private val lazyControlsListingController: Lazy<ControlsListingController>, + lazyControlsController: Lazy<ControlsController>, + lazyControlsUiController: Lazy<ControlsUiController>, + lazyControlsListingController: Lazy<ControlsListingController>, private val lockPatternUtils: LockPatternUtils, private val keyguardStateController: KeyguardStateController, private val userTracker: UserTracker, @@ -55,27 +53,25 @@ constructor( optionalControlsTileResourceConfiguration: Optional<ControlsTileResourceConfiguration> ) { + private val controlsController: Optional<ControlsController> = + optionalIf(isEnabled(), lazyControlsController) + private val controlsUiController: Optional<ControlsUiController> = + optionalIf(isEnabled(), lazyControlsUiController) + private val controlsListingController: Optional<ControlsListingController> = + optionalIf(isEnabled(), lazyControlsListingController) + val canShowWhileLockedSetting: StateFlow<Boolean> = controlsSettingsRepository.canShowControlsInLockscreen private val controlsTileResourceConfiguration: ControlsTileResourceConfiguration = optionalControlsTileResourceConfiguration.orElse(ControlsTileResourceConfigurationImpl()) - fun getControlsController(): Optional<ControlsController> { - return if (featureEnabled) Optional.of(lazyControlsController.get()) else Optional.empty() - } + fun getControlsController(): Optional<ControlsController> = controlsController - fun getControlsUiController(): Optional<ControlsUiController> { - return if (featureEnabled) Optional.of(lazyControlsUiController.get()) else Optional.empty() - } + fun getControlsUiController(): Optional<ControlsUiController> = controlsUiController - fun getControlsListingController(): Optional<ControlsListingController> { - return if (featureEnabled) { - Optional.of(lazyControlsListingController.get()) - } else { - Optional.empty() - } - } + fun getControlsListingController(): Optional<ControlsListingController> = + controlsListingController /** @return true if controls are feature-enabled and the user has the setting enabled */ fun isEnabled() = featureEnabled @@ -118,4 +114,11 @@ constructor( fun getTileImageId(): Int { return controlsTileResourceConfiguration.getTileImageId() } + + private fun <T : Any> optionalIf(condition: Boolean, provider: Lazy<T>): Optional<T> = + if (condition) { + Optional.of(provider.get()) + } else { + Optional.empty() + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/dagger/ControlsComponentTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/dagger/ControlsComponentTest.kt index 0b27bc9c7dbd..54f66dc957d9 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/controls/dagger/ControlsComponentTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/controls/dagger/ControlsComponentTest.kt @@ -29,7 +29,6 @@ import com.android.systemui.controls.settings.FakeControlsSettingsRepository import com.android.systemui.controls.ui.ControlsUiController import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.policy.KeyguardStateController -import dagger.Lazy import java.util.Optional import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse @@ -173,10 +172,9 @@ class ControlsComponentTest : SysuiTestCase() { private fun setupComponent(enabled: Boolean): ControlsComponent { return ControlsComponent( enabled, - mContext, - Lazy { controller }, - Lazy { uiController }, - Lazy { listingController }, + { controller }, + { uiController }, + { listingController }, lockPatternUtils, keyguardStateController, userTracker, |