Loading packages/SystemUI/src/com/android/systemui/keyguard/ResourceTrimmer.kt +24 −30 Original line number Diff line number Diff line Loading @@ -61,13 +61,7 @@ constructor( override fun start() { Log.d(LOG_TAG, "Resource trimmer registered.") if ( !(featureFlags.isEnabled(Flags.TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK) || featureFlags.isEnabled(Flags.TRIM_FONT_CACHES_AT_UNLOCK)) ) { return } if (featureFlags.isEnabled(Flags.TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK)) { 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 Loading @@ -84,6 +78,7 @@ constructor( .distinctUntilChanged() .collect { onWakefulnessUpdated(it.first, it.second, it.third) } } } applicationScope.launch(bgDispatcher) { // We drop 1 to avoid triggering on initial collect(). Loading @@ -97,18 +92,17 @@ constructor( @WorkerThread private fun onKeyguardGone() { if (!featureFlags.isEnabled(Flags.TRIM_FONT_CACHES_AT_UNLOCK)) { return } if (DEBUG) { Log.d(LOG_TAG, "Trimming font caches since keyguard went away.") } // We want to clear temporary caches we've created while rendering and animating // lockscreen elements, especially clocks. Log.d(LOG_TAG, "Sending TRIM_MEMORY_UI_HIDDEN.") globalWindowManager.trimMemory(ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) if (featureFlags.isEnabled(Flags.TRIM_FONT_CACHES_AT_UNLOCK)) { if (DEBUG) { Log.d(LOG_TAG, "Trimming font caches since keyguard went away.") } globalWindowManager.trimCaches(HardwareRenderer.CACHE_TRIM_FONT) } } @WorkerThread private fun onWakefulnessUpdated( Loading packages/SystemUI/tests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt +5 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.keyguard.shared.model.WakeSleepReason import com.android.systemui.keyguard.shared.model.WakefulnessModel import com.android.systemui.keyguard.shared.model.WakefulnessState import com.android.systemui.util.mockito.any import com.android.systemui.utils.GlobalWindowManager import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope Loading Loading @@ -227,6 +228,9 @@ class ResourceTrimmerTest : SysuiTestCase() { keyguardTransitionRepository.sendTransitionStep( TransitionStep(KeyguardState.LOCKSCREEN, KeyguardState.GONE) ) verifyNoMoreInteractions(globalWindowManager) // Memory hidden should still be called. verify(globalWindowManager, times(1)) .trimMemory(ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) verify(globalWindowManager, times(0)).trimCaches(any()) } } Loading
packages/SystemUI/src/com/android/systemui/keyguard/ResourceTrimmer.kt +24 −30 Original line number Diff line number Diff line Loading @@ -61,13 +61,7 @@ constructor( override fun start() { Log.d(LOG_TAG, "Resource trimmer registered.") if ( !(featureFlags.isEnabled(Flags.TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK) || featureFlags.isEnabled(Flags.TRIM_FONT_CACHES_AT_UNLOCK)) ) { return } if (featureFlags.isEnabled(Flags.TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK)) { 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 Loading @@ -84,6 +78,7 @@ constructor( .distinctUntilChanged() .collect { onWakefulnessUpdated(it.first, it.second, it.third) } } } applicationScope.launch(bgDispatcher) { // We drop 1 to avoid triggering on initial collect(). Loading @@ -97,18 +92,17 @@ constructor( @WorkerThread private fun onKeyguardGone() { if (!featureFlags.isEnabled(Flags.TRIM_FONT_CACHES_AT_UNLOCK)) { return } if (DEBUG) { Log.d(LOG_TAG, "Trimming font caches since keyguard went away.") } // We want to clear temporary caches we've created while rendering and animating // lockscreen elements, especially clocks. Log.d(LOG_TAG, "Sending TRIM_MEMORY_UI_HIDDEN.") globalWindowManager.trimMemory(ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) if (featureFlags.isEnabled(Flags.TRIM_FONT_CACHES_AT_UNLOCK)) { if (DEBUG) { Log.d(LOG_TAG, "Trimming font caches since keyguard went away.") } globalWindowManager.trimCaches(HardwareRenderer.CACHE_TRIM_FONT) } } @WorkerThread private fun onWakefulnessUpdated( Loading
packages/SystemUI/tests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt +5 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.keyguard.shared.model.WakeSleepReason import com.android.systemui.keyguard.shared.model.WakefulnessModel import com.android.systemui.keyguard.shared.model.WakefulnessState import com.android.systemui.util.mockito.any import com.android.systemui.utils.GlobalWindowManager import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope Loading Loading @@ -227,6 +228,9 @@ class ResourceTrimmerTest : SysuiTestCase() { keyguardTransitionRepository.sendTransitionStep( TransitionStep(KeyguardState.LOCKSCREEN, KeyguardState.GONE) ) verifyNoMoreInteractions(globalWindowManager) // Memory hidden should still be called. verify(globalWindowManager, times(1)) .trimMemory(ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) verify(globalWindowManager, times(0)).trimCaches(any()) } }