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

Commit 7ea3e01e authored by Nicolo' Mazzucato's avatar Nicolo' Mazzucato
Browse files

Fix flakiness of MirroringConfirmationDialogScerenshotTest

The test was flaky because the insets value was racy.
Now it is provided to the view, so screenshot tests will be
deterministic.

Flag: none
Test: MirroringConfirmationDialogTest
Fixes: 308736903
Change-Id: Icd75c319a3eb9bba546f8ff077fdc1ff50ee78ff
parent c737d35e
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import android.os.Bundle
import android.view.View
import android.widget.TextView
import androidx.core.view.updatePadding
import com.android.systemui.biometrics.Utils
import com.android.systemui.res.R
import com.android.systemui.statusbar.phone.SystemUIBottomSheetDialog
import com.android.systemui.statusbar.policy.ConfigurationController
@@ -36,6 +35,7 @@ class MirroringConfirmationDialog(
    context: Context,
    private val onStartMirroringClickListener: View.OnClickListener,
    private val onCancelMirroring: View.OnClickListener,
    private val navbarBottomInsetsProvider: () -> Int,
    configurationController: ConfigurationController? = null,
    theme: Int = R.style.Theme_SystemUI_Dialog,
) : SystemUIBottomSheetDialog(context, configurationController, theme) {
@@ -67,12 +67,12 @@ class MirroringConfirmationDialog(
    private fun setupInsets() {
        // This avoids overlap between dialog content and navigation bars.
        requireViewById<View>(R.id.cd_bottom_sheet).apply {
            val navbarInsets = Utils.getNavbarInsets(context)
            val navbarInsets = navbarBottomInsetsProvider()
            val defaultDialogBottomInset =
                context.resources.getDimensionPixelSize(R.dimen.dialog_bottom_padding)
            // we only care about the bottom inset as in all other configuration where navigations
            // are in other display sides there is no overlap with the dialog.
            updatePadding(bottom = max(navbarInsets.bottom, defaultDialogBottomInset))
            updatePadding(bottom = max(navbarInsets, defaultDialogBottomInset))
        }
    }

+3 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.systemui.display.ui.viewmodel

import android.app.Dialog
import android.content.Context
import com.android.systemui.biometrics.Utils
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Background
@@ -74,7 +75,8 @@ constructor(
                        scope.launch(bgDispatcher) { pendingDisplay.ignore() }
                        hideDialog()
                    },
                    configurationController
                    navbarBottomInsetsProvider = { Utils.getNavbarInsets(context).bottom },
                    configurationController,
                )
                .apply { show() }
    }
+8 −2
Original line number Diff line number Diff line
@@ -20,8 +20,8 @@ import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
import android.view.View
import androidx.test.filters.SmallTest
import com.android.systemui.res.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.res.R
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.mock
import org.junit.After
@@ -45,7 +45,13 @@ class MirroringConfirmationDialogTest : SysuiTestCase() {
    fun setUp() {
        MockitoAnnotations.initMocks(this)

        dialog = MirroringConfirmationDialog(context, onStartMirroringCallback, onCancelCallback)
        dialog =
            MirroringConfirmationDialog(
                context,
                onStartMirroringCallback,
                onCancelCallback,
                navbarBottomInsetsProvider = { 0 },
            )
    }

    @Test