|
@@ -14,17 +14,14 @@ import androidx.compose.foundation.layout.fillMaxSize
|
|
|
import androidx.compose.material.icons.Icons
|
|
import androidx.compose.material.icons.Icons
|
|
|
import androidx.compose.material.icons.filled.Info
|
|
import androidx.compose.material.icons.filled.Info
|
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.Composable
|
|
|
|
|
+import androidx.compose.runtime.remember
|
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.Modifier
|
|
|
import androidx.compose.ui.graphics.vector.ImageVector
|
|
import androidx.compose.ui.graphics.vector.ImageVector
|
|
|
import androidx.navigation.navArgument
|
|
import androidx.navigation.navArgument
|
|
|
import org.mjdev.tvapp.R
|
|
import org.mjdev.tvapp.R
|
|
|
-import org.mjdev.tvapp.data.local.Movie
|
|
|
|
|
import org.mjdev.tvapp.viewmodel.DetailViewModel
|
|
import org.mjdev.tvapp.viewmodel.DetailViewModel
|
|
|
import org.mjdev.tvlib.annotations.TvPreview
|
|
import org.mjdev.tvlib.annotations.TvPreview
|
|
|
import org.mjdev.tvlib.extensions.HiltExt.appViewModel
|
|
import org.mjdev.tvlib.extensions.HiltExt.appViewModel
|
|
|
-import org.mjdev.tvlib.interfaces.ItemAudio
|
|
|
|
|
-import org.mjdev.tvlib.interfaces.ItemPhoto
|
|
|
|
|
-import org.mjdev.tvlib.interfaces.ItemVideo
|
|
|
|
|
import org.mjdev.tvlib.navigation.AnyType
|
|
import org.mjdev.tvlib.navigation.AnyType
|
|
|
import org.mjdev.tvlib.screen.Screen
|
|
import org.mjdev.tvlib.screen.Screen
|
|
|
import org.mjdev.tvlib.ui.components.gallery.Gallery
|
|
import org.mjdev.tvlib.ui.components.gallery.Gallery
|
|
@@ -54,17 +51,13 @@ class DetailScreen : Screen() {
|
|
|
DetailViewModel.mockDetailViewModel(context)
|
|
DetailViewModel.mockDetailViewModel(context)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- val data: Any? = args[data]
|
|
|
|
|
|
|
+ val data: Any? = remember { args[data] }
|
|
|
|
|
|
|
|
- val dataList: List<Any?> = when (data) {
|
|
|
|
|
- is ItemAudio -> viewModel.localAudioCursor
|
|
|
|
|
- is ItemVideo -> viewModel.localVideoCursor
|
|
|
|
|
- is ItemPhoto -> viewModel.localPhotoCursor
|
|
|
|
|
- is Movie -> viewModel.mediaItems
|
|
|
|
|
- else -> listOf(data)
|
|
|
|
|
|
|
+ val dataList = remember(data) {
|
|
|
|
|
+ viewModel.mediaItemsFor(data)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- Gallery (
|
|
|
|
|
|
|
+ Gallery(
|
|
|
modifier = Modifier.fillMaxSize(),
|
|
modifier = Modifier.fillMaxSize(),
|
|
|
list = dataList,
|
|
list = dataList,
|
|
|
index = dataList.indexOf(data)
|
|
index = dataList.indexOf(data)
|