Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 20284a1b authored by Nicolò Mazzucato's avatar Nicolò Mazzucato Committed by Android (Google) Code Review
Browse files

Merge changes I7eab3284,If929f967 into main

* changes:
  Fix flicker in taskbar visibility when shade moves display
  Refactor ConfigurationStateStore to use PerDisplayRepository
parents d683113a e10a48e3
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.view.Display
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.dump.dumpManager
import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.useUnconfinedTestDispatcher
import com.android.systemui.testKosmos
@@ -29,6 +30,9 @@ import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.anyString
import org.mockito.kotlin.eq
import org.mockito.kotlin.verify

@RunWith(AndroidJUnit4::class)
@SmallTest
@@ -99,6 +103,11 @@ class PerDisplayInstanceRepositoryImplTest : SysuiTestCase() {
            assertThat(fakePerDisplayInstanceProviderWithTeardown.destroyed).isEmpty()
        }

    @Test
    fun start_registersDumpable() {
        verify(kosmos.dumpManager).registerNormalDumpable(anyString(), eq(underTest))
    }

    private fun createDisplay(displayId: Int): Display =
        display(type = Display.TYPE_INTERNAL, id = displayId)

+2 −1
Original line number Diff line number Diff line
@@ -598,7 +598,8 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
                mKeyguardClockPositionAlgorithm,
                mMSDLPlayer,
                mBrightnessMirrorShowingRepository,
                new BlurConfig(0f, 0f));
                new BlurConfig(0f, 0f),
                () -> mKosmos.getFakeShadeDisplaysRepository());
        mNotificationPanelViewController.initDependencies(
                mCentralSurfaces,
                null,
+1 −3
Original line number Diff line number Diff line
@@ -195,9 +195,7 @@ public class NotificationPanelViewControllerTest extends NotificationPanelViewCo
    @EnableFlags(Flags.FLAG_SHADE_WINDOW_GOES_AROUND)
    public void updateSystemUiStateFlags_updatesSysuiStateInteractor() {
        var DISPLAY_ID = 10;
        var displayMock = display(TYPE_INTERNAL, /* flags= */ 0, /* id= */DISPLAY_ID,
                /* state= */ null);
        when(mView.getDisplay()).thenReturn(displayMock);
        mKosmos.getFakeShadeDisplaysRepository().setPendingDisplayId(DISPLAY_ID);

        mNotificationPanelViewController.updateSystemUiStateFlags();

+1 −2
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import androidx.annotation.ColorInt
import androidx.annotation.DimenRes
import androidx.annotation.LayoutRes
import com.android.settingslib.Utils
import com.android.systemui.statusbar.data.repository.StatusBarConfigurationState
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.statusbar.policy.onDensityOrFontScaleChanged
import com.android.systemui.statusbar.policy.onThemeChanged
@@ -79,7 +78,7 @@ class ConfigurationStateImpl
constructor(
    @Assisted private val configurationController: ConfigurationController,
    @Assisted private val context: Context,
) : ConfigurationState, StatusBarConfigurationState {
) : ConfigurationState {

    private val layoutInflater = LayoutInflater.from(context)

+15 −1
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ constructor(
        get() = perDisplayInstances.keys

    private suspend fun start() {
        dumpManager.registerDumpable(this)
        dumpManager.registerNormalDumpable("PerDisplayRepository-${debugName}", this)
        displayRepository.displayIds.collectLatest { displayIds ->
            val toRemove = perDisplayInstances.keys - displayIds
            toRemove.forEach { displayId ->
@@ -198,3 +198,17 @@ class DefaultDisplayOnlyInstanceRepositoryImpl<T>(

    override fun get(displayId: Int): T? = lazyDefaultDisplayInstance
}

/**
 * Always returns only one instance.
 *
 * This can be used to provide a single instance based on a flag value during a refactor. Similar to
 * [DefaultDisplayOnlyInstanceRepositoryImpl], but also avoids creating the
 * [PerDisplayInstanceProvider].
 */
class SingleInstanceRepositoryImpl<T>(override val debugName: String, private val instance: T) :
    PerDisplayRepository<T> {
    override val displayIds: Set<Int> = setOf(Display.DEFAULT_DISPLAY)

    override fun get(displayId: Int): T? = instance
}
Loading