Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/viewmodel/DetailsViewModelTest.kt +29 −33 Original line number Diff line number Diff line Loading @@ -16,11 +16,9 @@ package com.android.systemui.qs.panels.ui.viewmodel import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.kosmos.testScope import com.android.systemui.qs.FakeQSTile import com.android.systemui.qs.pipeline.data.repository.tileSpecRepository Loading Loading @@ -48,12 +46,10 @@ class DetailsViewModelTest : SysuiTestCase() { } @Test fun changeTileDetailsViewModel() = with(kosmos) { fun changeTileDetailsViewModel() = with(kosmos) { testScope.runTest { val specs = listOf( spec, specNoDetails, ) val specs = listOf(spec, specNoDetails) tileSpecRepository.setTiles(0, specs) runCurrent() Loading @@ -68,7 +64,7 @@ class DetailsViewModelTest : SysuiTestCase() { // Click on the tile who has the `spec`. assertThat(underTest.onTileClicked(spec)).isTrue() assertThat(underTest.activeTileDetails).isNotNull() assertThat(underTest.activeTileDetails?.getTitle()).isEqualTo("internet") assertThat(underTest.activeTileDetails?.title).isEqualTo("internet") // Click on a tile who dose not have a valid spec. assertThat(underTest.onTileClicked(null)).isFalse() Loading @@ -77,7 +73,7 @@ class DetailsViewModelTest : SysuiTestCase() { // Click again on the tile who has the `spec`. assertThat(underTest.onTileClicked(spec)).isTrue() assertThat(underTest.activeTileDetails).isNotNull() assertThat(underTest.activeTileDetails?.getTitle()).isEqualTo("internet") assertThat(underTest.activeTileDetails?.title).isEqualTo("internet") // Click on a tile who dose not have a detailed view. assertThat(underTest.onTileClicked(specNoDetails)).isFalse() Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/domain/interactor/CurrentTilesInteractorImplTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -691,11 +691,11 @@ class CurrentTilesInteractorImplTest : SysuiTestCase() { var currentModel: TileDetailsViewModel? = null val setCurrentModel = { model: TileDetailsViewModel? -> currentModel = model } tiles!![0].tile.getDetailsViewModel(setCurrentModel) assertThat(currentModel?.getTitle()).isEqualTo("a") assertThat(currentModel?.title).isEqualTo("a") currentModel = null tiles!![1].tile.getDetailsViewModel(setCurrentModel) assertThat(currentModel?.getTitle()).isEqualTo("b") assertThat(currentModel?.title).isEqualTo("b") currentModel = null tiles!![2].tile.getDetailsViewModel(setCurrentModel) Loading packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/TileDetailsViewModel.kt +5 −7 Original line number Diff line number Diff line Loading @@ -16,15 +16,13 @@ package com.android.systemui.plugins.qs /** * The base view model class for rendering the Tile's TileDetailsView. */ abstract class TileDetailsViewModel { /** The view model interface for rendering the Tile's TileDetailsView. */ interface TileDetailsViewModel { // The callback when the settings button is clicked. Currently this is the same as the on tile // long press callback abstract fun clickOnSettingsButton() fun clickOnSettingsButton() abstract fun getTitle(): String val title: String abstract fun getSubTitle(): String val subTitle: String } packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsViewModel.kt +5 −9 Original line number Diff line number Diff line Loading @@ -21,18 +21,14 @@ import com.android.systemui.plugins.qs.TileDetailsViewModel class BluetoothDetailsViewModel( private val onSettingsClick: () -> Unit, val detailsContentViewModel: BluetoothDetailsContentViewModel, ) : TileDetailsViewModel() { ) : TileDetailsViewModel { override fun clickOnSettingsButton() { onSettingsClick() } override fun getTitle(): String { // TODO: b/378513956 Update the placeholder text return "Bluetooth" } override val title = "Bluetooth" override fun getSubTitle(): String { // TODO: b/378513956 Update the placeholder text return "Tap to connect or disconnect a device" } override val subTitle = "Tap to connect or disconnect a device" } packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/TileDetails.kt +5 −2 Original line number Diff line number Diff line Loading @@ -61,6 +61,9 @@ fun TileDetails(modifier: Modifier = Modifier, detailsViewModel: DetailsViewMode DisposableEffect(Unit) { onDispose { detailsViewModel.closeDetailedView() } } val title = tileDetailedViewModel.title val subTitle = tileDetailedViewModel.subTitle Column( modifier = modifier Loading Loading @@ -90,7 +93,7 @@ fun TileDetails(modifier: Modifier = Modifier, detailsViewModel: DetailsViewMode ) } Text( text = tileDetailedViewModel.getTitle(), text = title, modifier = Modifier.align(Alignment.CenterVertically), textAlign = TextAlign.Center, style = MaterialTheme.typography.titleLarge, Loading @@ -110,7 +113,7 @@ fun TileDetails(modifier: Modifier = Modifier, detailsViewModel: DetailsViewMode } } Text( text = tileDetailedViewModel.getSubTitle(), text = subTitle, modifier = Modifier.fillMaxWidth(), textAlign = TextAlign.Center, style = MaterialTheme.typography.titleSmall, Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/viewmodel/DetailsViewModelTest.kt +29 −33 Original line number Diff line number Diff line Loading @@ -16,11 +16,9 @@ package com.android.systemui.qs.panels.ui.viewmodel import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.kosmos.testScope import com.android.systemui.qs.FakeQSTile import com.android.systemui.qs.pipeline.data.repository.tileSpecRepository Loading Loading @@ -48,12 +46,10 @@ class DetailsViewModelTest : SysuiTestCase() { } @Test fun changeTileDetailsViewModel() = with(kosmos) { fun changeTileDetailsViewModel() = with(kosmos) { testScope.runTest { val specs = listOf( spec, specNoDetails, ) val specs = listOf(spec, specNoDetails) tileSpecRepository.setTiles(0, specs) runCurrent() Loading @@ -68,7 +64,7 @@ class DetailsViewModelTest : SysuiTestCase() { // Click on the tile who has the `spec`. assertThat(underTest.onTileClicked(spec)).isTrue() assertThat(underTest.activeTileDetails).isNotNull() assertThat(underTest.activeTileDetails?.getTitle()).isEqualTo("internet") assertThat(underTest.activeTileDetails?.title).isEqualTo("internet") // Click on a tile who dose not have a valid spec. assertThat(underTest.onTileClicked(null)).isFalse() Loading @@ -77,7 +73,7 @@ class DetailsViewModelTest : SysuiTestCase() { // Click again on the tile who has the `spec`. assertThat(underTest.onTileClicked(spec)).isTrue() assertThat(underTest.activeTileDetails).isNotNull() assertThat(underTest.activeTileDetails?.getTitle()).isEqualTo("internet") assertThat(underTest.activeTileDetails?.title).isEqualTo("internet") // Click on a tile who dose not have a detailed view. assertThat(underTest.onTileClicked(specNoDetails)).isFalse() Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/domain/interactor/CurrentTilesInteractorImplTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -691,11 +691,11 @@ class CurrentTilesInteractorImplTest : SysuiTestCase() { var currentModel: TileDetailsViewModel? = null val setCurrentModel = { model: TileDetailsViewModel? -> currentModel = model } tiles!![0].tile.getDetailsViewModel(setCurrentModel) assertThat(currentModel?.getTitle()).isEqualTo("a") assertThat(currentModel?.title).isEqualTo("a") currentModel = null tiles!![1].tile.getDetailsViewModel(setCurrentModel) assertThat(currentModel?.getTitle()).isEqualTo("b") assertThat(currentModel?.title).isEqualTo("b") currentModel = null tiles!![2].tile.getDetailsViewModel(setCurrentModel) Loading
packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/TileDetailsViewModel.kt +5 −7 Original line number Diff line number Diff line Loading @@ -16,15 +16,13 @@ package com.android.systemui.plugins.qs /** * The base view model class for rendering the Tile's TileDetailsView. */ abstract class TileDetailsViewModel { /** The view model interface for rendering the Tile's TileDetailsView. */ interface TileDetailsViewModel { // The callback when the settings button is clicked. Currently this is the same as the on tile // long press callback abstract fun clickOnSettingsButton() fun clickOnSettingsButton() abstract fun getTitle(): String val title: String abstract fun getSubTitle(): String val subTitle: String }
packages/SystemUI/src/com/android/systemui/bluetooth/qsdialog/BluetoothDetailsViewModel.kt +5 −9 Original line number Diff line number Diff line Loading @@ -21,18 +21,14 @@ import com.android.systemui.plugins.qs.TileDetailsViewModel class BluetoothDetailsViewModel( private val onSettingsClick: () -> Unit, val detailsContentViewModel: BluetoothDetailsContentViewModel, ) : TileDetailsViewModel() { ) : TileDetailsViewModel { override fun clickOnSettingsButton() { onSettingsClick() } override fun getTitle(): String { // TODO: b/378513956 Update the placeholder text return "Bluetooth" } override val title = "Bluetooth" override fun getSubTitle(): String { // TODO: b/378513956 Update the placeholder text return "Tap to connect or disconnect a device" } override val subTitle = "Tap to connect or disconnect a device" }
packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/TileDetails.kt +5 −2 Original line number Diff line number Diff line Loading @@ -61,6 +61,9 @@ fun TileDetails(modifier: Modifier = Modifier, detailsViewModel: DetailsViewMode DisposableEffect(Unit) { onDispose { detailsViewModel.closeDetailedView() } } val title = tileDetailedViewModel.title val subTitle = tileDetailedViewModel.subTitle Column( modifier = modifier Loading Loading @@ -90,7 +93,7 @@ fun TileDetails(modifier: Modifier = Modifier, detailsViewModel: DetailsViewMode ) } Text( text = tileDetailedViewModel.getTitle(), text = title, modifier = Modifier.align(Alignment.CenterVertically), textAlign = TextAlign.Center, style = MaterialTheme.typography.titleLarge, Loading @@ -110,7 +113,7 @@ fun TileDetails(modifier: Modifier = Modifier, detailsViewModel: DetailsViewMode } } Text( text = tileDetailedViewModel.getSubTitle(), text = subTitle, modifier = Modifier.fillMaxWidth(), textAlign = TextAlign.Center, style = MaterialTheme.typography.titleSmall, Loading