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

Commit a07692cf authored by Behnam Heydarshahi's avatar Behnam Heydarshahi Committed by Android (Google) Code Review
Browse files

Merge "Inject resources instead of context in QSTileState" into main

parents a4e1417d b7a96f1c
Loading
Loading
Loading
Loading
+3 −15
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.systemui.qs.tiles.impl.flashlight.domain

import android.graphics.drawable.Drawable
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
@@ -26,7 +25,6 @@ import com.android.systemui.qs.tiles.impl.flashlight.domain.model.FlashlightTile
import com.android.systemui.qs.tiles.impl.flashlight.qsFlashlightTileConfig
import com.android.systemui.qs.tiles.viewmodel.QSTileState
import com.android.systemui.res.R
import com.android.systemui.util.mockito.mock
import com.google.common.truth.Truth.assertThat
import junit.framework.Assert.assertEquals
import org.junit.Test
@@ -37,7 +35,7 @@ import org.junit.runner.RunWith
class FlashlightMapperTest : SysuiTestCase() {
    private val kosmos = Kosmos()
    private val qsTileConfig = kosmos.qsFlashlightTileConfig
    private val mapper by lazy { FlashlightMapper(context) }
    private val mapper by lazy { FlashlightMapper(context.orCreateTestableResources.resources) }

    @Test
    fun mapsDisabledDataToInactiveState() {
@@ -58,12 +56,7 @@ class FlashlightMapperTest : SysuiTestCase() {

    @Test
    fun mapsEnabledDataToOnIconState() {
        val fakeDrawable = mock<Drawable>()
        context.orCreateTestableResources.addOverride(
            R.drawable.qs_flashlight_icon_on,
            fakeDrawable
        )
        val expectedIcon = Icon.Loaded(fakeDrawable, null)
        val expectedIcon = Icon.Resource(R.drawable.qs_flashlight_icon_on, null)

        val tileState: QSTileState = mapper.map(qsTileConfig, FlashlightTileModel(true))

@@ -73,12 +66,7 @@ class FlashlightMapperTest : SysuiTestCase() {

    @Test
    fun mapsDisabledDataToOffIconState() {
        val fakeDrawable = mock<Drawable>()
        context.orCreateTestableResources.addOverride(
            R.drawable.qs_flashlight_icon_off,
            fakeDrawable
        )
        val expectedIcon = Icon.Loaded(fakeDrawable, null)
        val expectedIcon = Icon.Resource(R.drawable.qs_flashlight_icon_off, null)

        val tileState: QSTileState = mapper.map(qsTileConfig, FlashlightTileModel(false))

+4 −9
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.systemui.qs.tiles.impl.location.domain

import android.graphics.drawable.Drawable
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
@@ -26,7 +25,6 @@ import com.android.systemui.qs.tiles.impl.location.domain.model.LocationTileMode
import com.android.systemui.qs.tiles.impl.location.qsLocationTileConfig
import com.android.systemui.qs.tiles.viewmodel.QSTileState
import com.android.systemui.res.R
import com.android.systemui.util.mockito.mock
import com.google.common.truth.Truth
import junit.framework.Assert
import org.junit.Test
@@ -37,7 +35,8 @@ import org.junit.runner.RunWith
class LocationTileMapperTest : SysuiTestCase() {
    private val kosmos = Kosmos()
    private val qsTileConfig = kosmos.qsLocationTileConfig
    private val mapper by lazy { LocationTileMapper(context) }

    private val mapper by lazy { LocationTileMapper(context.orCreateTestableResources.resources) }

    @Test
    fun mapsDisabledDataToInactiveState() {
@@ -57,9 +56,7 @@ class LocationTileMapperTest : SysuiTestCase() {

    @Test
    fun mapsEnabledDataToOnIconState() {
        val fakeDrawable = mock<Drawable>()
        context.orCreateTestableResources.addOverride(R.drawable.qs_location_icon_on, fakeDrawable)
        val expectedIcon = Icon.Loaded(fakeDrawable, null)
        val expectedIcon = Icon.Resource(R.drawable.qs_location_icon_on, null)

        val tileState: QSTileState = mapper.map(qsTileConfig, LocationTileModel(true))

@@ -69,9 +66,7 @@ class LocationTileMapperTest : SysuiTestCase() {

    @Test
    fun mapsDisabledDataToOffIconState() {
        val fakeDrawable = mock<Drawable>()
        context.orCreateTestableResources.addOverride(R.drawable.qs_location_icon_off, fakeDrawable)
        val expectedIcon = Icon.Loaded(fakeDrawable, null)
        val expectedIcon = Icon.Resource(R.drawable.qs_location_icon_off, null)

        val tileState: QSTileState = mapper.map(qsTileConfig, LocationTileModel(false))

+12 −13
Original line number Diff line number Diff line
@@ -16,8 +16,9 @@

package com.android.systemui.qs.tiles.impl.airplane.domain

import android.content.Context
import android.content.res.Resources
import com.android.systemui.common.shared.model.Icon
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.qs.tiles.base.interactor.QSTileDataToStateMapper
import com.android.systemui.qs.tiles.impl.airplane.domain.model.AirplaneModeTileModel
import com.android.systemui.qs.tiles.viewmodel.QSTileConfig
@@ -26,29 +27,27 @@ import com.android.systemui.res.R
import javax.inject.Inject

/** Maps [AirplaneModeTileModel] to [QSTileState]. */
class AirplaneModeMapper @Inject constructor(private val context: Context) :
class AirplaneModeMapper @Inject constructor(@Main private val resources: Resources) :
    QSTileDataToStateMapper<AirplaneModeTileModel> {

    override fun map(config: QSTileConfig, data: AirplaneModeTileModel): QSTileState =
        QSTileState.build(context, config.uiConfig) {
        QSTileState.build(resources, config.uiConfig) {
            val icon =
                Icon.Loaded(
                    context.getDrawable(
                Icon.Resource(
                    if (data.isEnabled) {
                        R.drawable.qs_airplane_icon_on
                    } else {
                        R.drawable.qs_airplane_icon_off
                        }
                    )!!,
                    },
                    contentDescription = null
                )
            this.icon = { icon }
            if (data.isEnabled) {
                activationState = QSTileState.ActivationState.ACTIVE
                secondaryLabel = context.resources.getStringArray(R.array.tile_states_airplane)[2]
                secondaryLabel = resources.getStringArray(R.array.tile_states_airplane)[2]
            } else {
                activationState = QSTileState.ActivationState.INACTIVE
                secondaryLabel = context.resources.getStringArray(R.array.tile_states_airplane)[1]
                secondaryLabel = resources.getStringArray(R.array.tile_states_airplane)[1]
            }
            contentDescription = label
            supportedActions =
+12 −13
Original line number Diff line number Diff line
@@ -16,8 +16,9 @@

package com.android.systemui.qs.tiles.impl.flashlight.domain

import android.content.Context
import android.content.res.Resources
import com.android.systemui.common.shared.model.Icon
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.qs.tiles.base.interactor.QSTileDataToStateMapper
import com.android.systemui.qs.tiles.impl.flashlight.domain.model.FlashlightTileModel
import com.android.systemui.qs.tiles.viewmodel.QSTileConfig
@@ -26,30 +27,28 @@ import com.android.systemui.res.R
import javax.inject.Inject

/** Maps [FlashlightTileModel] to [QSTileState]. */
class FlashlightMapper @Inject constructor(private val context: Context) :
class FlashlightMapper @Inject constructor(@Main private val resources: Resources) :
    QSTileDataToStateMapper<FlashlightTileModel> {

    override fun map(config: QSTileConfig, data: FlashlightTileModel): QSTileState =
        QSTileState.build(context, config.uiConfig) {
        QSTileState.build(resources, config.uiConfig) {
            val icon =
                Icon.Loaded(
                    context.resources.getDrawable(
                Icon.Resource(
                    if (data.isEnabled) {
                        R.drawable.qs_flashlight_icon_on
                    } else {
                        R.drawable.qs_flashlight_icon_off
                        }
                    ),
                    },
                    contentDescription = null
                )
            this.icon = { icon }

            if (data.isEnabled) {
                activationState = QSTileState.ActivationState.ACTIVE
                secondaryLabel = context.resources.getStringArray(R.array.tile_states_flashlight)[2]
                secondaryLabel = resources.getStringArray(R.array.tile_states_flashlight)[2]
            } else {
                activationState = QSTileState.ActivationState.INACTIVE
                secondaryLabel = context.resources.getStringArray(R.array.tile_states_flashlight)[1]
                secondaryLabel = resources.getStringArray(R.array.tile_states_flashlight)[1]
            }
            contentDescription = label
            supportedActions =
+13 −14
Original line number Diff line number Diff line
@@ -16,8 +16,9 @@

package com.android.systemui.qs.tiles.impl.location.domain

import android.content.Context
import android.content.res.Resources
import com.android.systemui.common.shared.model.Icon
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.qs.tiles.base.interactor.QSTileDataToStateMapper
import com.android.systemui.qs.tiles.impl.location.domain.model.LocationTileModel
import com.android.systemui.qs.tiles.viewmodel.QSTileConfig
@@ -26,32 +27,30 @@ import com.android.systemui.res.R
import javax.inject.Inject

/** Maps [LocationTileModel] to [QSTileState]. */
class LocationTileMapper @Inject constructor(private val context: Context) :
class LocationTileMapper @Inject constructor(@Main private val resources: Resources) :
    QSTileDataToStateMapper<LocationTileModel> {

    override fun map(config: QSTileConfig, data: LocationTileModel): QSTileState =
        QSTileState.build(context, config.uiConfig) {
        QSTileState.build(resources, config.uiConfig) {
            val icon =
                Icon.Loaded(
                    context.resources.getDrawable(
                Icon.Resource(
                    if (data.isEnabled) {
                        R.drawable.qs_location_icon_on
                    } else {
                        R.drawable.qs_location_icon_off
                        }
                    ),
                    },
                    contentDescription = null
                )
            this.icon = { icon }

            this.label = context.resources.getString(R.string.quick_settings_location_label)
            this.label = resources.getString(R.string.quick_settings_location_label)

            if (data.isEnabled) {
                activationState = QSTileState.ActivationState.ACTIVE
                secondaryLabel = context.resources.getStringArray(R.array.tile_states_location)[2]
                secondaryLabel = resources.getStringArray(R.array.tile_states_location)[2]
            } else {
                activationState = QSTileState.ActivationState.INACTIVE
                secondaryLabel = context.resources.getStringArray(R.array.tile_states_location)[1]
                secondaryLabel = resources.getStringArray(R.array.tile_states_location)[1]
            }
            contentDescription = label
            supportedActions =
Loading