Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/domain/LargeTilesUpgradePathsTest.kt +5 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import com.android.systemui.qs.panels.data.repository.defaultLargeTilesRepositor import com.android.systemui.qs.panels.domain.interactor.qsPreferencesInteractor import com.android.systemui.qs.pipeline.data.repository.DefaultTilesQSHostRepository import com.android.systemui.qs.pipeline.data.repository.defaultTilesRepository import com.android.systemui.qs.pipeline.data.repository.hsuTilesRepository import com.android.systemui.qs.pipeline.shared.TileSpec import com.android.systemui.qs.pipeline.shared.TilesUpgradePath import com.android.systemui.settings.userFileManager Loading @@ -48,9 +49,11 @@ import org.junit.runner.RunWith class LargeTilesUpgradePathsTest : SysuiTestCase() { private val kosmos = testKosmos().apply { defaultTilesRepository = DefaultTilesQSHostRepository(mainResources) } testKosmos().apply { defaultTilesRepository = DefaultTilesQSHostRepository(mainResources, hsuTilesRepository) } private val defaultTiles = kosmos.defaultTilesRepository.defaultTiles.toSet() private val defaultTiles = kosmos.defaultTilesRepository.getDefaultTiles(false).toSet() private val underTest = kosmos.qsPreferencesInteractor Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/DefaultTilesQSHostRepositoryTest.kt 0 → 100644 +110 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.qs.pipeline.data.repository import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.kosmos.testCase import com.android.systemui.kosmos.testScope import com.android.systemui.res.R import com.android.systemui.testKosmos import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith @SmallTest @RunWith(AndroidJUnit4::class) class DefaultTilesQSHostRepositoryTest : SysuiTestCase() { private val kosmos = testKosmos() @Before fun setup() { overrideDefaultTilesResource(DEFAULT_TILES) } @Test fun getDefaultTiles_notHeadlessSystemUser_returnDefault() = with(kosmos) { testScope.runTest { val isHeadlessSystemUser = false val underTest = DefaultTilesQSHostRepository(testCase.context.resources, hsuTilesRepository) val result = underTest.getDefaultTiles(isHeadlessSystemUser) assertThat(result).isEqualTo(TilesSettingConverter.toTilesList(DEFAULT_TILES)) } } @Test fun getDefaultTiles_isHeadlessSystemUser_returnHsuAllowList() = with(kosmos) { testScope.runTest { val isHeadlessSystemUser = true overrideHsuAllowListResource(arrayOf("x", "y", "z")) val underTest = DefaultTilesQSHostRepository(testCase.context.resources, hsuTilesRepository) val result = underTest.getDefaultTiles(isHeadlessSystemUser) assertThat(result).isEqualTo(TilesSettingConverter.toTilesList("x,y,z")) } } @Test fun getDefaultTiles_isHeadlessSystemUserWithEmptyHsuAllowList_returnDefault() = with(kosmos) { testScope.runTest { val isHeadlessSystemUser = true overrideHsuAllowListResource(emptyArray()) val underTest = DefaultTilesQSHostRepository(testCase.context.resources, hsuTilesRepository) val result = underTest.getDefaultTiles(isHeadlessSystemUser) assertThat(result).isEqualTo(TilesSettingConverter.toTilesList(DEFAULT_TILES)) } } private fun overrideDefaultTilesResource(defaultTiles: String) = with(kosmos) { testCase.context.orCreateTestableResources.addOverride( R.string.quick_settings_tiles_default, defaultTiles, ) testCase.context.orCreateTestableResources.addOverride( R.string.quick_settings_tiles_new_default, defaultTiles, ) } private fun overrideHsuAllowListResource(allowList: Array<String>) = with(kosmos) { testCase.context.orCreateTestableResources.addOverride( R.array.hsu_allow_list_qs_tiles, allowList, ) } companion object { private const val DEFAULT_TILES = "a,b,c" } } packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/TileSpecSettingsRepositoryTest.kt +4 −5 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import com.android.systemui.qs.pipeline.shared.TilesUpgradePath import com.android.systemui.qs.pipeline.shared.logging.QSPipelineLogger import com.android.systemui.res.R import com.android.systemui.retail.data.repository.FakeRetailModeRepository import com.android.systemui.user.domain.interactor.HeadlessSystemUserModeFake import com.android.systemui.util.settings.FakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.flow.consumeAsFlow Loading @@ -46,11 +47,8 @@ class TileSpecSettingsRepositoryTest : SysuiTestCase() { private lateinit var secureSettings: FakeSettings private lateinit var retailModeRepository: FakeRetailModeRepository private val defaultTilesRepository = object : DefaultTilesRepository { override val defaultTiles: List<TileSpec> get() = DEFAULT_TILES.toTileSpecs() } private val hsum = HeadlessSystemUserModeFake() private val defaultTilesRepository = FakeDefaultTilesRepository(DEFAULT_TILES.toTileSpecs()) @Mock private lateinit var logger: QSPipelineLogger Loading @@ -61,6 +59,7 @@ class TileSpecSettingsRepositoryTest : SysuiTestCase() { userId, defaultTilesRepository, secureSettings, hsum, logger, testScope.backgroundScope, testDispatcher, Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/UserTileSpecRepositoryTest.kt +74 −13 Original line number Diff line number Diff line package com.android.systemui.qs.pipeline.data.repository import android.platform.test.annotations.DisableFlags import android.platform.test.annotations.EnableFlags import android.platform.test.flag.junit.FlagsParameterization import android.provider.Settings import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.qs.pipeline.data.model.RestoreData import com.android.systemui.qs.pipeline.shared.TileSpec import com.android.systemui.qs.pipeline.shared.TilesUpgradePath import com.android.systemui.qs.pipeline.shared.logging.QSPipelineLogger import com.android.systemui.user.domain.interactor.HeadlessSystemUserModeFake import com.android.systemui.util.settings.FakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.consumeAsFlow import kotlinx.coroutines.test.StandardTestDispatcher Loading @@ -22,16 +27,17 @@ import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.MockitoAnnotations import platform.test.runner.parameterized.ParameterizedAndroidJunit4 import platform.test.runner.parameterized.Parameters @ExperimentalCoroutinesApi @SmallTest @RunWith(AndroidJUnit4::class) class UserTileSpecRepositoryTest : SysuiTestCase() { @RunWith(ParameterizedAndroidJunit4::class) class UserTileSpecRepositoryTest(flags: FlagsParameterization) : SysuiTestCase() { private val secureSettings = FakeSettings() private val hsum = HeadlessSystemUserModeFake() private val defaultTilesRepository = object : DefaultTilesRepository { override val defaultTiles: List<TileSpec> get() = DEFAULT_TILES.toTileSpecs() } FakeDefaultTilesRepository(DEFAULT_TILES.toTileSpecs(), DEFAULT_HSU_TILES.toTileSpecs()) @Mock private lateinit var logger: QSPipelineLogger Loading @@ -40,6 +46,10 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { private lateinit var underTest: UserTileSpecRepository init { mSetFlagsRule.setFlagsParameterization(flags) } @Before fun setup() { MockitoAnnotations.initMocks(this) Loading @@ -49,6 +59,7 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { USER, defaultTilesRepository, secureSettings, hsum, logger, testScope.backgroundScope, testDispatcher, Loading @@ -56,10 +67,53 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { } @Test @DisableFlags(Flags.FLAG_HSU_QS_CHANGES) fun emptySetting_usesDefaultValue() = testScope.runTest { val isHeadlessSystemUser = false val tiles by collectLastValue(underTest.tiles()) assertThat(tiles).isEqualTo(getDefaultTileSpecs(isHeadlessSystemUser)) } @Test @EnableFlags(Flags.FLAG_HSU_QS_CHANGES) fun emptySetting_hsuQsFlagEnabledAndIsHsum_usesHsuDefaultValue() = testScope.runTest { hsum.setIsHeadlessSystemUser(true) underTest = UserTileSpecRepository( USER, defaultTilesRepository, secureSettings, hsum, logger, testScope.backgroundScope, testDispatcher, ) runCurrent() val tiles by collectLastValue(underTest.tiles()) assertThat(tiles).isEqualTo(getDefaultTileSpecs(true)) } @Test @EnableFlags(Flags.FLAG_HSU_QS_CHANGES) fun emptySetting_hsuQsFlagEnabledAndIsNotHsum_usesDefaultValue() = testScope.runTest { hsum.setIsHeadlessSystemUser(false) underTest = UserTileSpecRepository( USER, defaultTilesRepository, secureSettings, hsum, logger, testScope.backgroundScope, testDispatcher, ) runCurrent() val tiles by collectLastValue(underTest.tiles()) assertThat(tiles).isEqualTo(getDefaultTileSpecs()) assertThat(tiles).isEqualTo(getDefaultTileSpecs(false)) } @Test Loading Loading @@ -103,7 +157,7 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { val tiles by collectLastValue(underTest.tiles()) assertThat(tiles).isEqualTo(getDefaultTileSpecs()) assertThat(tiles).isEqualTo(getDefaultTileSpecs(false)) } /* Loading Loading @@ -293,7 +347,7 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { runCurrent() assertThat(loadTiles()) .isEqualTo(getDefaultTileSpecs().map { it.spec }.joinToString(",")) .isEqualTo(getDefaultTileSpecs(false).map { it.spec }.joinToString(",")) } @Test Loading Loading @@ -353,7 +407,7 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { val tilesRead by collectLastValue(underTest.tilesUpgradePath.consumeAsFlow()) val tiles by collectLastValue(underTest.tiles()) assertThat(tiles).isEqualTo(getDefaultTileSpecs()) assertThat(tiles).isEqualTo(getDefaultTileSpecs(false)) assertThat(tilesRead).isEqualTo(TilesUpgradePath.DefaultSet) } Loading Loading @@ -415,8 +469,8 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { .isEqualTo(TilesUpgradePath.RestoreFromBackup(expected.toTilesSet())) } private fun getDefaultTileSpecs(): List<TileSpec> { return defaultTilesRepository.defaultTiles private fun getDefaultTileSpecs(isHeadlessSystemUser: Boolean): List<TileSpec> { return defaultTilesRepository.getDefaultTiles(isHeadlessSystemUser) } private fun TestScope.storeTiles(specs: String) { Loading @@ -431,10 +485,17 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { companion object { private const val USER = 10 private const val DEFAULT_TILES = "a,b,c" private const val DEFAULT_HSU_TILES = "a,c" private const val SETTING = Settings.Secure.QS_TILES private fun String.toTileSpecs() = TilesSettingConverter.toTilesList(this) private fun String.toTilesSet() = TilesSettingConverter.toTilesSet(this) @JvmStatic @Parameters(name = "{0}") fun getParams(): List<FlagsParameterization> { return FlagsParameterization.allCombinationsOf(Flags.FLAG_HSU_QS_CHANGES) } } } packages/SystemUI/src/com/android/systemui/qs/pipeline/data/model/AllowedTiles.kt +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ sealed interface AllowedTiles { } /** Implementation of [AllowedTiles] that allows only specific tiles. */ class SpecificTiles(private val tiles: List<TileSpec>) : AllowedTiles { class SpecificTiles(val tiles: List<TileSpec>) : AllowedTiles { override fun isTileAllowed(spec: TileSpec): Boolean { return spec in tiles } Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/domain/LargeTilesUpgradePathsTest.kt +5 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import com.android.systemui.qs.panels.data.repository.defaultLargeTilesRepositor import com.android.systemui.qs.panels.domain.interactor.qsPreferencesInteractor import com.android.systemui.qs.pipeline.data.repository.DefaultTilesQSHostRepository import com.android.systemui.qs.pipeline.data.repository.defaultTilesRepository import com.android.systemui.qs.pipeline.data.repository.hsuTilesRepository import com.android.systemui.qs.pipeline.shared.TileSpec import com.android.systemui.qs.pipeline.shared.TilesUpgradePath import com.android.systemui.settings.userFileManager Loading @@ -48,9 +49,11 @@ import org.junit.runner.RunWith class LargeTilesUpgradePathsTest : SysuiTestCase() { private val kosmos = testKosmos().apply { defaultTilesRepository = DefaultTilesQSHostRepository(mainResources) } testKosmos().apply { defaultTilesRepository = DefaultTilesQSHostRepository(mainResources, hsuTilesRepository) } private val defaultTiles = kosmos.defaultTilesRepository.defaultTiles.toSet() private val defaultTiles = kosmos.defaultTilesRepository.getDefaultTiles(false).toSet() private val underTest = kosmos.qsPreferencesInteractor Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/DefaultTilesQSHostRepositoryTest.kt 0 → 100644 +110 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.qs.pipeline.data.repository import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.kosmos.testCase import com.android.systemui.kosmos.testScope import com.android.systemui.res.R import com.android.systemui.testKosmos import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith @SmallTest @RunWith(AndroidJUnit4::class) class DefaultTilesQSHostRepositoryTest : SysuiTestCase() { private val kosmos = testKosmos() @Before fun setup() { overrideDefaultTilesResource(DEFAULT_TILES) } @Test fun getDefaultTiles_notHeadlessSystemUser_returnDefault() = with(kosmos) { testScope.runTest { val isHeadlessSystemUser = false val underTest = DefaultTilesQSHostRepository(testCase.context.resources, hsuTilesRepository) val result = underTest.getDefaultTiles(isHeadlessSystemUser) assertThat(result).isEqualTo(TilesSettingConverter.toTilesList(DEFAULT_TILES)) } } @Test fun getDefaultTiles_isHeadlessSystemUser_returnHsuAllowList() = with(kosmos) { testScope.runTest { val isHeadlessSystemUser = true overrideHsuAllowListResource(arrayOf("x", "y", "z")) val underTest = DefaultTilesQSHostRepository(testCase.context.resources, hsuTilesRepository) val result = underTest.getDefaultTiles(isHeadlessSystemUser) assertThat(result).isEqualTo(TilesSettingConverter.toTilesList("x,y,z")) } } @Test fun getDefaultTiles_isHeadlessSystemUserWithEmptyHsuAllowList_returnDefault() = with(kosmos) { testScope.runTest { val isHeadlessSystemUser = true overrideHsuAllowListResource(emptyArray()) val underTest = DefaultTilesQSHostRepository(testCase.context.resources, hsuTilesRepository) val result = underTest.getDefaultTiles(isHeadlessSystemUser) assertThat(result).isEqualTo(TilesSettingConverter.toTilesList(DEFAULT_TILES)) } } private fun overrideDefaultTilesResource(defaultTiles: String) = with(kosmos) { testCase.context.orCreateTestableResources.addOverride( R.string.quick_settings_tiles_default, defaultTiles, ) testCase.context.orCreateTestableResources.addOverride( R.string.quick_settings_tiles_new_default, defaultTiles, ) } private fun overrideHsuAllowListResource(allowList: Array<String>) = with(kosmos) { testCase.context.orCreateTestableResources.addOverride( R.array.hsu_allow_list_qs_tiles, allowList, ) } companion object { private const val DEFAULT_TILES = "a,b,c" } }
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/TileSpecSettingsRepositoryTest.kt +4 −5 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import com.android.systemui.qs.pipeline.shared.TilesUpgradePath import com.android.systemui.qs.pipeline.shared.logging.QSPipelineLogger import com.android.systemui.res.R import com.android.systemui.retail.data.repository.FakeRetailModeRepository import com.android.systemui.user.domain.interactor.HeadlessSystemUserModeFake import com.android.systemui.util.settings.FakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.flow.consumeAsFlow Loading @@ -46,11 +47,8 @@ class TileSpecSettingsRepositoryTest : SysuiTestCase() { private lateinit var secureSettings: FakeSettings private lateinit var retailModeRepository: FakeRetailModeRepository private val defaultTilesRepository = object : DefaultTilesRepository { override val defaultTiles: List<TileSpec> get() = DEFAULT_TILES.toTileSpecs() } private val hsum = HeadlessSystemUserModeFake() private val defaultTilesRepository = FakeDefaultTilesRepository(DEFAULT_TILES.toTileSpecs()) @Mock private lateinit var logger: QSPipelineLogger Loading @@ -61,6 +59,7 @@ class TileSpecSettingsRepositoryTest : SysuiTestCase() { userId, defaultTilesRepository, secureSettings, hsum, logger, testScope.backgroundScope, testDispatcher, Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/data/repository/UserTileSpecRepositoryTest.kt +74 −13 Original line number Diff line number Diff line package com.android.systemui.qs.pipeline.data.repository import android.platform.test.annotations.DisableFlags import android.platform.test.annotations.EnableFlags import android.platform.test.flag.junit.FlagsParameterization import android.provider.Settings import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.qs.pipeline.data.model.RestoreData import com.android.systemui.qs.pipeline.shared.TileSpec import com.android.systemui.qs.pipeline.shared.TilesUpgradePath import com.android.systemui.qs.pipeline.shared.logging.QSPipelineLogger import com.android.systemui.user.domain.interactor.HeadlessSystemUserModeFake import com.android.systemui.util.settings.FakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.consumeAsFlow import kotlinx.coroutines.test.StandardTestDispatcher Loading @@ -22,16 +27,17 @@ import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.MockitoAnnotations import platform.test.runner.parameterized.ParameterizedAndroidJunit4 import platform.test.runner.parameterized.Parameters @ExperimentalCoroutinesApi @SmallTest @RunWith(AndroidJUnit4::class) class UserTileSpecRepositoryTest : SysuiTestCase() { @RunWith(ParameterizedAndroidJunit4::class) class UserTileSpecRepositoryTest(flags: FlagsParameterization) : SysuiTestCase() { private val secureSettings = FakeSettings() private val hsum = HeadlessSystemUserModeFake() private val defaultTilesRepository = object : DefaultTilesRepository { override val defaultTiles: List<TileSpec> get() = DEFAULT_TILES.toTileSpecs() } FakeDefaultTilesRepository(DEFAULT_TILES.toTileSpecs(), DEFAULT_HSU_TILES.toTileSpecs()) @Mock private lateinit var logger: QSPipelineLogger Loading @@ -40,6 +46,10 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { private lateinit var underTest: UserTileSpecRepository init { mSetFlagsRule.setFlagsParameterization(flags) } @Before fun setup() { MockitoAnnotations.initMocks(this) Loading @@ -49,6 +59,7 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { USER, defaultTilesRepository, secureSettings, hsum, logger, testScope.backgroundScope, testDispatcher, Loading @@ -56,10 +67,53 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { } @Test @DisableFlags(Flags.FLAG_HSU_QS_CHANGES) fun emptySetting_usesDefaultValue() = testScope.runTest { val isHeadlessSystemUser = false val tiles by collectLastValue(underTest.tiles()) assertThat(tiles).isEqualTo(getDefaultTileSpecs(isHeadlessSystemUser)) } @Test @EnableFlags(Flags.FLAG_HSU_QS_CHANGES) fun emptySetting_hsuQsFlagEnabledAndIsHsum_usesHsuDefaultValue() = testScope.runTest { hsum.setIsHeadlessSystemUser(true) underTest = UserTileSpecRepository( USER, defaultTilesRepository, secureSettings, hsum, logger, testScope.backgroundScope, testDispatcher, ) runCurrent() val tiles by collectLastValue(underTest.tiles()) assertThat(tiles).isEqualTo(getDefaultTileSpecs(true)) } @Test @EnableFlags(Flags.FLAG_HSU_QS_CHANGES) fun emptySetting_hsuQsFlagEnabledAndIsNotHsum_usesDefaultValue() = testScope.runTest { hsum.setIsHeadlessSystemUser(false) underTest = UserTileSpecRepository( USER, defaultTilesRepository, secureSettings, hsum, logger, testScope.backgroundScope, testDispatcher, ) runCurrent() val tiles by collectLastValue(underTest.tiles()) assertThat(tiles).isEqualTo(getDefaultTileSpecs()) assertThat(tiles).isEqualTo(getDefaultTileSpecs(false)) } @Test Loading Loading @@ -103,7 +157,7 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { val tiles by collectLastValue(underTest.tiles()) assertThat(tiles).isEqualTo(getDefaultTileSpecs()) assertThat(tiles).isEqualTo(getDefaultTileSpecs(false)) } /* Loading Loading @@ -293,7 +347,7 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { runCurrent() assertThat(loadTiles()) .isEqualTo(getDefaultTileSpecs().map { it.spec }.joinToString(",")) .isEqualTo(getDefaultTileSpecs(false).map { it.spec }.joinToString(",")) } @Test Loading Loading @@ -353,7 +407,7 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { val tilesRead by collectLastValue(underTest.tilesUpgradePath.consumeAsFlow()) val tiles by collectLastValue(underTest.tiles()) assertThat(tiles).isEqualTo(getDefaultTileSpecs()) assertThat(tiles).isEqualTo(getDefaultTileSpecs(false)) assertThat(tilesRead).isEqualTo(TilesUpgradePath.DefaultSet) } Loading Loading @@ -415,8 +469,8 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { .isEqualTo(TilesUpgradePath.RestoreFromBackup(expected.toTilesSet())) } private fun getDefaultTileSpecs(): List<TileSpec> { return defaultTilesRepository.defaultTiles private fun getDefaultTileSpecs(isHeadlessSystemUser: Boolean): List<TileSpec> { return defaultTilesRepository.getDefaultTiles(isHeadlessSystemUser) } private fun TestScope.storeTiles(specs: String) { Loading @@ -431,10 +485,17 @@ class UserTileSpecRepositoryTest : SysuiTestCase() { companion object { private const val USER = 10 private const val DEFAULT_TILES = "a,b,c" private const val DEFAULT_HSU_TILES = "a,c" private const val SETTING = Settings.Secure.QS_TILES private fun String.toTileSpecs() = TilesSettingConverter.toTilesList(this) private fun String.toTilesSet() = TilesSettingConverter.toTilesSet(this) @JvmStatic @Parameters(name = "{0}") fun getParams(): List<FlagsParameterization> { return FlagsParameterization.allCombinationsOf(Flags.FLAG_HSU_QS_CHANGES) } } }
packages/SystemUI/src/com/android/systemui/qs/pipeline/data/model/AllowedTiles.kt +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ sealed interface AllowedTiles { } /** Implementation of [AllowedTiles] that allows only specific tiles. */ class SpecificTiles(private val tiles: List<TileSpec>) : AllowedTiles { class SpecificTiles(val tiles: List<TileSpec>) : AllowedTiles { override fun isTileAllowed(spec: TileSpec): Boolean { return spec in tiles } Loading