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

Commit 98b650a2 authored by Kshitij Gupta's avatar Kshitij Gupta Committed by Android (Google) Code Review
Browse files

Merge "ModesTile: Drop usages of runBlocking" into main

parents 1ced5f54 b6eb4417
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -24244,7 +24244,7 @@
        errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/src/com/android/systemui/qs/tiles/ModesTile.kt"
            line="30"
            line="31"
            column="1"/>
    </issue>
+19 −3
Original line number Diff line number Diff line
@@ -20,13 +20,15 @@ import android.graphics.drawable.TestStubDrawable
import android.os.Handler
import android.os.UserManager
import android.platform.test.annotations.EnableFlags
import android.platform.test.flag.junit.FlagsParameterization
import android.platform.test.flag.junit.FlagsParameterization.allCombinationsOf
import android.service.quicksettings.Tile
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.settingslib.notification.modes.TestModeBuilder
import com.android.systemui.Flags.FLAG_DO_NOT_USE_RUN_BLOCKING
import com.android.systemui.SysuiTestCase
import com.android.systemui.classifier.FalsingManagerFake
import com.android.systemui.common.shared.model.asIcon
@@ -73,12 +75,14 @@ import org.mockito.kotlin.eq
import org.mockito.kotlin.mock
import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
import platform.test.runner.parameterized.ParameterizedAndroidJunit4
import platform.test.runner.parameterized.Parameters

@EnableFlags(android.app.Flags.FLAG_MODES_UI_TILE_REACTIVATES_LAST)
@SmallTest
@RunWith(AndroidJUnit4::class)
@RunWith(ParameterizedAndroidJunit4::class)
@RunWithLooper(setAsMainLooper = true)
class ModesTileTest : SysuiTestCase() {
class ModesTileTest(flags: FlagsParameterization) : SysuiTestCase() {
    private val kosmos = testKosmos()
    private val testScope = kosmos.testScope
    private val testDispatcher = kosmos.testDispatcher
@@ -99,6 +103,18 @@ class ModesTileTest : SysuiTestCase() {

    @Mock private lateinit var dialogDelegate: ModesDialogDelegate

    init {
        mSetFlagsRule.setFlagsParameterization(flags)
    }

    companion object {
        @JvmStatic
        @Parameters(name = "{0}")
        fun getParams(): List<FlagsParameterization> {
            return allCombinationsOf(FLAG_DO_NOT_USE_RUN_BLOCKING)
        }
    }

    private val inputHandler = FakeQSTileIntentUserInputHandler()
    private val zenModeRepository = kosmos.zenModeRepository
    private val tileDataInteractor =
+24 −5
Original line number Diff line number Diff line
@@ -25,10 +25,12 @@ import androidx.annotation.DrawableRes
import androidx.annotation.VisibleForTesting
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.coroutineScope
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import com.android.app.tracing.coroutines.launchTraced as launch
import com.android.app.tracing.coroutines.runBlockingTraced as runBlocking
import com.android.internal.logging.MetricsLogger
import com.android.systemui.Flags
import com.android.systemui.animation.Expandable
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
@@ -112,14 +114,31 @@ constructor(
        }
    }

    override fun handleClick(expandable: Expandable?) = runBlocking {
    override fun handleClick(expandable: Expandable?) {
        if (Flags.doNotUseRunBlocking()) {
            lifecycleScope.launch {
                userActionInteractor.handleClick(expandable)
            }
        } else {
            runBlocking {
                userActionInteractor.handleClick(expandable)
            }
        }
    }

    override fun handleSecondaryClick(expandable: Expandable?) = runBlocking {
    override fun handleSecondaryClick(expandable: Expandable?) {
        if (Flags.doNotUseRunBlocking()) {
            lifecycleScope.launch {
                val model = dataInteractor.getCurrentTileModel()
                userActionInteractor.handleToggleClick(model)
            }
        } else {
            runBlocking {
                val model = dataInteractor.getCurrentTileModel()
                userActionInteractor.handleToggleClick(model)
            }
        }
    }

    override fun getDetailsViewModel(): TileDetailsViewModel {
        return ModesDetailsViewModel(