Milan Jurkulak 3 лет назад
Родитель
Сommit
992a2fed84

+ 6 - 4
app/src/main/kotlin/org/mjdev/tvapp/ui/pages/MainPage.kt

@@ -54,10 +54,12 @@ class MainPage : Page() {
         val viewModel: MainViewModel = appViewModel { context ->
             MainViewModel.mockMainViewModel(context)
         }
-
-        val categoryList = remember(viewModel.categoryList) {
+        val streamingData = remember(viewModel.categoryList) {
             viewModel.categoryList
         }.collectAsState()
+        val categoryList = remember(viewModel.countryList){
+            viewModel.countryList
+        }.collectAsState()
         val featuredMovieList = remember(viewModel.featuredMovieList) {
             viewModel.featuredMovieList
         }.collectAsState()
@@ -131,9 +133,9 @@ class MainPage : Page() {
                 userIcon = R.drawable.milanj,
                 title = titleState.value,
                 messages = messages.value,
-                categories = categoryList.value.map { it.key }.distinct(),
+                categories = categoryList.value,
                 featuredItems = featuredMovieList.value,
-                categoriesAndItemsMap = categoryList.value,
+                categoriesAndItemsMap = streamingData.value,
                 networkState = networkState,
                 errorState = errorState,
                 onTitleClicked = {

+ 14 - 0
app/src/main/kotlin/org/mjdev/tvapp/viewmodel/MainViewModel.kt

@@ -92,6 +92,20 @@ class MainViewModel @Inject constructor(
         mapOf()
     )
 
+    val countryList: StateFlow<List<String>> = flow {
+        repository.getMovies().getOrThrow().filter { it.country != null }.map {
+            it.country.toString()
+        }.distinct().sortedBy {
+            it
+        }.also {
+            emit(it)
+        }
+    }.stateIn(
+        viewModelScope,
+        SharingStarted.WhileSubscribed(5000L),
+        listOf()
+    )
+
     companion object {
 
         @Suppress("unused")