Merge "Disable trimMemory(BACKGROUND) on lock with a Flag" into udc-dev

This commit is contained in:
Treehugger Robot
2023-05-17 19:03:59 +00:00
committed by Android (Google) Code Review
3 changed files with 23 additions and 3 deletions

View File

@@ -671,6 +671,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

View File

@@ -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,

View File

@@ -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()
}