Merge "Restore trimMemory behaviour from T" into udc-qpr-dev

This commit is contained in:
Jernej Virag
2023-07-24 13:18:35 +00:00
committed by Android (Google) Code Review
2 changed files with 29 additions and 31 deletions

View File

@@ -61,13 +61,7 @@ constructor(
override fun start() { override fun start() {
Log.d(LOG_TAG, "Resource trimmer registered.") Log.d(LOG_TAG, "Resource trimmer registered.")
if ( if (featureFlags.isEnabled(Flags.TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK)) {
!(featureFlags.isEnabled(Flags.TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK) ||
featureFlags.isEnabled(Flags.TRIM_FONT_CACHES_AT_UNLOCK))
) {
return
}
applicationScope.launch(bgDispatcher) { applicationScope.launch(bgDispatcher) {
// We need to wait for the AoD transition (and animation) to complete. // We need to wait for the AoD transition (and animation) to complete.
// This means we're waiting for isDreaming (== implies isDoze) and dozeAmount == 1f // This means we're waiting for isDreaming (== implies isDoze) and dozeAmount == 1f
@@ -84,6 +78,7 @@ constructor(
.distinctUntilChanged() .distinctUntilChanged()
.collect { onWakefulnessUpdated(it.first, it.second, it.third) } .collect { onWakefulnessUpdated(it.first, it.second, it.third) }
} }
}
applicationScope.launch(bgDispatcher) { applicationScope.launch(bgDispatcher) {
// We drop 1 to avoid triggering on initial collect(). // We drop 1 to avoid triggering on initial collect().
@@ -97,18 +92,17 @@ constructor(
@WorkerThread @WorkerThread
private fun onKeyguardGone() { private fun onKeyguardGone() {
if (!featureFlags.isEnabled(Flags.TRIM_FONT_CACHES_AT_UNLOCK)) { // We want to clear temporary caches we've created while rendering and animating
return // 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) { if (DEBUG) {
Log.d(LOG_TAG, "Trimming font caches since keyguard went away.") 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.
globalWindowManager.trimMemory(ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN)
globalWindowManager.trimCaches(HardwareRenderer.CACHE_TRIM_FONT) globalWindowManager.trimCaches(HardwareRenderer.CACHE_TRIM_FONT)
} }
}
@WorkerThread @WorkerThread
private fun onWakefulnessUpdated( private fun onWakefulnessUpdated(

View File

@@ -16,6 +16,7 @@ import com.android.systemui.keyguard.shared.model.TransitionStep
import com.android.systemui.keyguard.shared.model.WakeSleepReason import com.android.systemui.keyguard.shared.model.WakeSleepReason
import com.android.systemui.keyguard.shared.model.WakefulnessModel import com.android.systemui.keyguard.shared.model.WakefulnessModel
import com.android.systemui.keyguard.shared.model.WakefulnessState import com.android.systemui.keyguard.shared.model.WakefulnessState
import com.android.systemui.util.mockito.any
import com.android.systemui.utils.GlobalWindowManager import com.android.systemui.utils.GlobalWindowManager
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.TestScope
@@ -225,6 +226,9 @@ class ResourceTrimmerTest : SysuiTestCase() {
keyguardTransitionRepository.sendTransitionStep( keyguardTransitionRepository.sendTransitionStep(
TransitionStep(KeyguardState.LOCKSCREEN, KeyguardState.GONE) 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())
} }
} }