diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt index 05df31bf63b23..90f87293ba3d6 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt @@ -665,6 +665,11 @@ object Flags { val WARN_ON_BLOCKING_BINDER_TRANSACTIONS = unreleasedFlag(2400, "warn_on_blocking_binder_transactions") + // TODO(b/283071711): Tracking bug + @JvmField + val TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK = + unreleasedFlag(2401, "trim_resources_with_background_trim_on_lock") + // 2700 - unfold transitions // TODO(b/265764985): Tracking Bug @Keep diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ResourceTrimmer.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ResourceTrimmer.kt index 4eb7d44ebfa6f..8386a05b6647f 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ResourceTrimmer.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ResourceTrimmer.kt @@ -24,6 +24,8 @@ import com.android.systemui.CoreStartable import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Background +import com.android.systemui.flags.FeatureFlags +import com.android.systemui.flags.Flags import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.shared.model.WakefulnessState import com.android.systemui.utils.GlobalWindowManager @@ -51,10 +53,15 @@ constructor( private val globalWindowManager: GlobalWindowManager, @Application private val applicationScope: CoroutineScope, @Background private val bgDispatcher: CoroutineDispatcher, + private val featureFlags: FeatureFlags, ) : CoreStartable, WakefulnessLifecycle.Observer { override fun start() { Log.d(LOG_TAG, "Resource trimmer registered.") + if (!featureFlags.isEnabled(Flags.TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK)) { + return + } + applicationScope.launch(bgDispatcher) { // We need to wait for the AoD transition (and animation) to complete. // This means we're waiting for isDreaming (== implies isDoze) and dozeAmount == 1f @@ -79,6 +86,10 @@ constructor( isDreaming: Boolean, isDozingFully: Boolean ) { + if (!featureFlags.isEnabled(Flags.TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK)) { + return + } + if (DEBUG) { Log.d( LOG_TAG, diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt index 931f82ce9f6ba..367d206814cbc 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt @@ -4,7 +4,8 @@ import android.content.ComponentCallbacks2 import android.testing.AndroidTestingRunner import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase -import com.android.systemui.flags.FeatureFlags +import com.android.systemui.flags.FakeFeatureFlags +import com.android.systemui.flags.Flags import com.android.systemui.keyguard.data.repository.FakeCommandQueue import com.android.systemui.keyguard.data.repository.FakeKeyguardBouncerRepository import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository @@ -35,14 +36,16 @@ class ResourceTrimmerTest : SysuiTestCase() { private val testDispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(testDispatcher) private val keyguardRepository = FakeKeyguardRepository() + private val featureFlags = FakeFeatureFlags() @Mock private lateinit var globalWindowManager: GlobalWindowManager - @Mock private lateinit var featureFlags: FeatureFlags private lateinit var resourceTrimmer: ResourceTrimmer @Before fun setUp() { MockitoAnnotations.initMocks(this) + featureFlags.set(Flags.TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK, true) + featureFlags.set(Flags.FACE_AUTH_REFACTOR, false) keyguardRepository.setWakefulnessModel( WakefulnessModel(WakefulnessState.AWAKE, WakeSleepReason.OTHER, WakeSleepReason.OTHER) ) @@ -60,7 +63,8 @@ class ResourceTrimmerTest : SysuiTestCase() { interactor, globalWindowManager, testScope.backgroundScope, - testDispatcher + testDispatcher, + featureFlags ) resourceTrimmer.start() }