/* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.dreams import com.android.systemui.flags.FeatureFlagsClassic import com.android.systemui.flags.Flags import com.android.systemui.flags.fake import com.android.systemui.flags.featureFlagsClassic import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.Kosmos.Fixture import com.android.systemui.kosmos.testDispatcher import com.android.systemui.log.logcatLogBuffer import com.android.systemui.util.reference.FakeWeakReferenceFactory import kotlinx.coroutines.asExecutor val Kosmos.dreamOverlayStateController by Fixture { prepareDreamOverlayStateController(false) } fun Kosmos.prepareDreamOverlayStateController( alwaysShowHomeControls: Boolean ): DreamOverlayStateController { return DreamOverlayStateController( executor = testDispatcher.asExecutor(), weakReferenceFactory = dreamOverlayStateControllerWeakReferenceFactory, featureFlags = prepareFlagsForDreamOverlayStateController(alwaysShowHomeControls), logBuffer = logcatLogBuffer("dreamOverlayStateControllerKosmos"), ) } private fun Kosmos.prepareFlagsForDreamOverlayStateController( alwaysShowHomeControls: Boolean ): FeatureFlagsClassic { featureFlagsClassic.fake.set(Flags.ALWAYS_SHOW_HOME_CONTROLS_ON_DREAMS, alwaysShowHomeControls) return featureFlagsClassic.fake } val Kosmos.dreamOverlayStateControllerWeakReferenceFactory by Fixture { FakeWeakReferenceFactory() }