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

Commit 19abea72 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topics "444180543_1", "444180543_2" into main

* changes:
  Remove qs refactor flag from tile request dialog [3/N]
  Remove qs refactor flag from FooterActions [2/N]
  Remove qs refactor flag in tiles [1/N]
parents 9d0a0c36 27ef2a2d
Loading
Loading
Loading
Loading
+8 −20
Original line number Diff line number Diff line
@@ -93,8 +93,6 @@ import com.android.systemui.common.shared.model.Icon
import com.android.systemui.common.ui.compose.Icon
import com.android.systemui.common.ui.compose.load
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.qs.flags.QSComposeFragment
import com.android.systemui.qs.flags.QsInCompose
import com.android.systemui.qs.footer.ui.compose.FooterActionsDefaults.FOOTER_TEXT_FADE_DURATION_MILLIS
import com.android.systemui.qs.footer.ui.compose.FooterActionsDefaults.FOOTER_TEXT_MINIMUM_SCALE_Y
import com.android.systemui.qs.footer.ui.compose.FooterActionsDefaults.FooterButtonHeight
@@ -233,7 +231,7 @@ fun FooterActions(viewModel: FooterActionsViewModel, modifier: Modifier = Modifi
        verticalAlignment = Alignment.CenterVertically,
    ) {
        CompositionLocalProvider(LocalContentColor provides contentColor) {
            val useModifierBasedExpandable = remember { QSComposeFragment.isEnabled }
            val useModifierBasedExpandable = true

            // The viewModel to show, in order of priority:
            // 1. Text feedback
@@ -531,13 +529,8 @@ private fun TextButton(
            Text(
                text,
                Modifier.weight(1f),
                style =
                    if (QsInCompose.isEnabled) {
                        MaterialTheme.typography.labelLarge
                    } else {
                        MaterialTheme.typography.bodyMedium
                    },
                letterSpacing = if (QsInCompose.isEnabled) 0.em else 0.01.em,
                style = MaterialTheme.typography.labelLarge,
                letterSpacing = 0.em,
                color = colors.content,
                maxLines = 1,
                overflow = TextOverflow.Ellipsis,
@@ -578,13 +571,8 @@ private fun TextButtonContent(
        Text(
            text,
            Modifier.weight(1f),
            style =
                if (QsInCompose.isEnabled) {
                    MaterialTheme.typography.labelLarge
                } else {
                    MaterialTheme.typography.bodyMedium
                },
            letterSpacing = if (QsInCompose.isEnabled) 0.em else 0.01.em,
            style = MaterialTheme.typography.labelLarge,
            letterSpacing = 0.em,
            color = contentColor,
            maxLines = 1,
            overflow = TextOverflow.Ellipsis,
@@ -639,7 +627,7 @@ private fun Modifier.animatedScaledHeight(scale: () -> Float): Modifier {
@Composable
@ReadOnlyComposable
private fun textButtonColors(): TextButtonColors {
    return if (QsInCompose.isEnabled && notificationShadeBlur()) {
    return if (notificationShadeBlur()) {
        FooterActionsDefaults.blurTextButtonColors()
    } else {
        FooterActionsDefaults.textButtonColors()
@@ -649,7 +637,7 @@ private fun textButtonColors(): TextButtonColors {
@Composable
@ReadOnlyComposable
private fun numberButtonColors(): TextButtonColors {
    return if (QsInCompose.isEnabled && notificationShadeBlur()) {
    return if (notificationShadeBlur()) {
        FooterActionsDefaults.blurTextButtonColors()
    } else {
        FooterActionsDefaults.numberButtonColors()
@@ -659,7 +647,7 @@ private fun numberButtonColors(): TextButtonColors {
@Composable
@ReadOnlyComposable
private fun buttonColorsForModel(footerAction: FooterActionsButtonViewModel): ButtonColors {
    return if (QsInCompose.isEnabled && notificationShadeBlur()) {
    return if (notificationShadeBlur()) {
        when (footerAction) {
            is FooterActionsButtonViewModel.PowerActionViewModel ->
                FooterActionsDefaults.activeButtonColors()
+7 −10
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.app.StatusBarManager
import android.content.ComponentName
import android.content.DialogInterface
import android.graphics.drawable.Icon
import android.platform.test.annotations.EnableFlags
import android.view.WindowManager
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
@@ -30,10 +29,9 @@ import com.android.systemui.SysuiTestCase
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.runCurrent
import com.android.systemui.kosmos.runTest
import com.android.systemui.qs.external.ui.dialog.FakeTileRequestDialogComposeDelegateFactory
import com.android.systemui.qs.external.ui.dialog.FakeTileRequestDialogDelegateFactory
import com.android.systemui.qs.external.ui.dialog.fake
import com.android.systemui.qs.external.ui.dialog.tileRequestDialogComposeDelegateFactory
import com.android.systemui.qs.flags.QSComposeFragment
import com.android.systemui.qs.external.ui.dialog.tileRequestDialogDelegateFactory
import com.android.systemui.qs.pipeline.data.repository.fakeInstalledTilesRepository
import com.android.systemui.qs.pipeline.domain.interactor.currentTilesInteractor
import com.android.systemui.qs.pipeline.shared.TileSpec
@@ -48,8 +46,7 @@ import org.mockito.kotlin.mock

@SmallTest
@RunWith(AndroidJUnit4::class)
@EnableFlags(QSComposeFragment.FLAG_NAME)
class TileServiceRequestControllerTestComposeOn : SysuiTestCase() {
class TileServiceRequestControllerTest : SysuiTestCase() {
    private val kosmos = testKosmos()

    private val userId: Int
@@ -189,7 +186,7 @@ class TileServiceRequestControllerTestComposeOn : SysuiTestCase() {
    fun positiveAction_tileAdded() =
        kosmos.runTest {
            // Not using a real dialog
            tileRequestDialogComposeDelegateFactory = FakeTileRequestDialogComposeDelegateFactory()
            tileRequestDialogDelegateFactory = FakeTileRequestDialogDelegateFactory()

            val callback = Callback()
            val dialog =
@@ -202,7 +199,7 @@ class TileServiceRequestControllerTestComposeOn : SysuiTestCase() {
                    callback,
                )

            tileRequestDialogComposeDelegateFactory.fake.clickListener.onClick(
            tileRequestDialogDelegateFactory.fake.clickListener.onClick(
                dialog,
                DialogInterface.BUTTON_POSITIVE,
            )
@@ -217,7 +214,7 @@ class TileServiceRequestControllerTestComposeOn : SysuiTestCase() {
    fun negativeAction_tileNotAdded() =
        kosmos.runTest {
            // Not using a real dialog
            tileRequestDialogComposeDelegateFactory = FakeTileRequestDialogComposeDelegateFactory()
            tileRequestDialogDelegateFactory = FakeTileRequestDialogDelegateFactory()

            val callback = Callback()
            val dialog =
@@ -230,7 +227,7 @@ class TileServiceRequestControllerTestComposeOn : SysuiTestCase() {
                    callback,
                )

            tileRequestDialogComposeDelegateFactory.fake.clickListener.onClick(
            tileRequestDialogDelegateFactory.fake.clickListener.onClick(
                dialog,
                DialogInterface.BUTTON_NEGATIVE,
            )
+1 −30
Original line number Diff line number Diff line
@@ -38,12 +38,9 @@ import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.common.shared.model.ContentDescription
import com.android.systemui.common.shared.model.Icon
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.flags.DisableSceneContainer
import com.android.systemui.flags.EnableSceneContainer
import com.android.systemui.qs.FakeFgsManagerController
import com.android.systemui.qs.QSSecurityFooterUtils
import com.android.systemui.qs.QsEventLoggerFake
import com.android.systemui.qs.flags.QSComposeFragment
import com.android.systemui.qs.footer.FooterActionsTestUtils
import com.android.systemui.qs.footer.domain.model.SecurityButtonConfig
import com.android.systemui.qs.panels.ui.viewmodel.TextFeedbackViewModel
@@ -502,33 +499,7 @@ class FooterActionsViewModelTest : SysuiTestCase() {
    }

    @Test
    @DisableFlags(QSComposeFragment.FLAG_NAME)
    @DisableSceneContainer
    fun textFeedback_neverFeedback() = runTest {
        val qsTileConfigProvider = createAndPopulateQsTileConfigProvider()
        val textFeedbackInteractor =
            utils.textFeedbackInteractor(qsTileConfigProvider = qsTileConfigProvider)
        val underTest =
            utils.footerActionsViewModel(textFeedbackInteractor = textFeedbackInteractor)

        val textFeedback by collectLastValue(underTest.textFeedback)

        assertThat(textFeedback).isEqualTo(TextFeedbackViewModel.NoFeedback)

        textFeedbackInteractor.requestShowFeedback(AIRPLANE_MODE_TILE_SPEC)

        assertThat(textFeedback).isEqualTo(TextFeedbackViewModel.NoFeedback)
    }

    @Test
    @EnableFlags(QSComposeFragment.FLAG_NAME)
    fun textFeedback_composeFragmentEnabled() = runTest { textFeedback_newComposeUI() }

    @Test
    @EnableSceneContainer
    fun textFeedback_sceneContainerEnabled() = runTest { textFeedback_newComposeUI() }

    private fun TestScope.textFeedback_newComposeUI() {
    fun textFeedback() = runTest {
        val qsTileConfigProvider = createAndPopulateQsTileConfigProvider()
        val textFeedbackInteractor =
            utils.textFeedbackInteractor(qsTileConfigProvider = qsTileConfigProvider)
+4 −26
Original line number Diff line number Diff line
@@ -18,9 +18,8 @@ package com.android.systemui.qs.tiles

import android.net.ConnectivityManager
import android.os.Handler
import android.platform.test.flag.junit.FlagsParameterization
import android.platform.test.flag.junit.FlagsParameterization.allCombinationsOf
import android.testing.TestableLooper
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.internal.logging.MetricsLogger
import com.android.systemui.SysuiTestCase
@@ -31,10 +30,7 @@ import com.android.systemui.plugins.qs.QSTile
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.qs.QSHost
import com.android.systemui.qs.QsEventLogger
import com.android.systemui.qs.flags.QSComposeFragment
import com.android.systemui.qs.flags.QsInCompose.isEnabled
import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.qs.tileimpl.QSTileImpl.DrawableIconWithRes
import com.android.systemui.res.R
import com.android.systemui.settings.UserTracker
@@ -52,17 +48,11 @@ import org.mockito.MockitoAnnotations
import org.mockito.kotlin.any
import org.mockito.kotlin.times
import org.mockito.kotlin.verify
import platform.test.runner.parameterized.ParameterizedAndroidJunit4
import platform.test.runner.parameterized.Parameters

@RunWith(ParameterizedAndroidJunit4::class)
@RunWith(AndroidJUnit4::class)
@TestableLooper.RunWithLooper(setAsMainLooper = true)
@SmallTest
class AirplaneModeTileTest(flags: FlagsParameterization) : SysuiTestCase() {

    init {
        mSetFlagsRule.setFlagsParameterization(flags)
    }
class AirplaneModeTileTest : SysuiTestCase() {

    @Mock private lateinit var mHost: QSHost
    @Mock private lateinit var mMetricsLogger: MetricsLogger
@@ -140,18 +130,6 @@ class AirplaneModeTileTest(flags: FlagsParameterization) : SysuiTestCase() {
    }

    private fun createExpectedIcon(resId: Int): QSTile.Icon {
        return if (isEnabled) {
            DrawableIconWithRes(mContext.getDrawable(resId), resId)
        } else {
            QSTileImpl.ResourceIcon.get(resId)
        }
    }

    companion object {
        @JvmStatic
        @Parameters(name = "{0}")
        fun getParams(): List<FlagsParameterization> {
            return allCombinationsOf(QSComposeFragment.FLAG_NAME)
        }
        return DrawableIconWithRes(mContext.getDrawable(resId), resId)
    }
}
+4 −24
Original line number Diff line number Diff line
@@ -18,10 +18,9 @@ package com.android.systemui.qs.tiles

import android.content.Context
import android.os.Handler
import android.platform.test.flag.junit.FlagsParameterization
import android.platform.test.flag.junit.FlagsParameterization.allCombinationsOf
import android.testing.TestableLooper
import android.testing.TestableLooper.RunWithLooper
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.internal.logging.MetricsLogger
import com.android.systemui.SysuiTestCase
@@ -32,10 +31,7 @@ import com.android.systemui.plugins.qs.QSTile
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.qs.QSHost
import com.android.systemui.qs.QsEventLogger
import com.android.systemui.qs.flags.QSComposeFragment
import com.android.systemui.qs.flags.QsInCompose.isEnabled
import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.qs.tileimpl.QSTileImpl.DrawableIconWithRes
import com.android.systemui.res.R
import com.android.systemui.statusbar.policy.BatteryController
@@ -53,26 +49,14 @@ import org.mockito.Mockito.never
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations
import platform.test.runner.parameterized.ParameterizedAndroidJunit4
import platform.test.runner.parameterized.Parameters

@RunWith(ParameterizedAndroidJunit4::class)
@RunWith(AndroidJUnit4::class)
@RunWithLooper(setAsMainLooper = true)
@SmallTest
class BatterySaverTileTest(flagsParameterization: FlagsParameterization) : SysuiTestCase() {
class BatterySaverTileTest : SysuiTestCase() {

    companion object {
        private const val USER = 10

        @JvmStatic
        @Parameters(name = "{0}")
        fun getParams(): List<FlagsParameterization> {
            return allCombinationsOf(QSComposeFragment.FLAG_NAME)
        }
    }

    init {
        mSetFlagsRule.setFlagsParameterization(flagsParameterization)
    }

    @Mock private lateinit var userContext: Context
@@ -180,10 +164,6 @@ class BatterySaverTileTest(flagsParameterization: FlagsParameterization) : Sysui
    }

    private fun createExpectedIcon(resId: Int): QSTile.Icon {
        return if (isEnabled) {
            DrawableIconWithRes(mContext.getDrawable(resId), resId)
        } else {
            QSTileImpl.ResourceIcon.get(resId)
        }
        return DrawableIconWithRes(mContext.getDrawable(resId), resId)
    }
}
Loading