|
@@ -23,9 +23,7 @@ import org.mjdev.tvapp.R
|
|
|
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.extensions.NavControllerExt.open
|
|
import org.mjdev.tvlib.extensions.NavControllerExt.open
|
|
|
-import org.mjdev.tvlib.extensions.StringExt.asException
|
|
|
|
|
import org.mjdev.tvlib.interfaces.ItemWithId
|
|
import org.mjdev.tvlib.interfaces.ItemWithId
|
|
|
-import org.mjdev.tvlib.interfaces.ItemWithUri
|
|
|
|
|
import org.mjdev.tvlib.ui.components.page.Page
|
|
import org.mjdev.tvlib.ui.components.page.Page
|
|
|
import org.mjdev.tvlib.ui.components.tv.AppsRow
|
|
import org.mjdev.tvlib.ui.components.tv.AppsRow
|
|
|
import org.mjdev.tvlib.ui.components.tv.BrowseView
|
|
import org.mjdev.tvlib.ui.components.tv.BrowseView
|
|
@@ -35,6 +33,9 @@ import org.mjdev.tvlib.ui.components.tv.LocalVideoRow
|
|
|
import org.mjdev.tvapp.ui.screens.DetailScreen
|
|
import org.mjdev.tvapp.ui.screens.DetailScreen
|
|
|
import org.mjdev.tvapp.ui.screens.PlayerScreen
|
|
import org.mjdev.tvapp.ui.screens.PlayerScreen
|
|
|
import org.mjdev.tvapp.viewmodel.MainViewModel
|
|
import org.mjdev.tvapp.viewmodel.MainViewModel
|
|
|
|
|
+import org.mjdev.tvlib.interfaces.ItemAudio
|
|
|
|
|
+import org.mjdev.tvlib.interfaces.ItemPhoto
|
|
|
|
|
+import org.mjdev.tvlib.interfaces.ItemVideo
|
|
|
|
|
|
|
|
@SuppressLint("ComposableNaming")
|
|
@SuppressLint("ComposableNaming")
|
|
|
class MainPage : Page() {
|
|
class MainPage : Page() {
|
|
@@ -69,16 +70,26 @@ class MainPage : Page() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
val onItemClick: (item: Any?) -> Unit = { item ->
|
|
val onItemClick: (item: Any?) -> Unit = { item ->
|
|
|
- val dataUri = (item as? ItemWithUri<*>)?.uri
|
|
|
|
|
val dataId = (item as? ItemWithId)?.id
|
|
val dataId = (item as? ItemWithId)?.id
|
|
|
- if (item == null) {
|
|
|
|
|
- viewModel.postError("No media found.".asException())
|
|
|
|
|
- } else if (dataId != null) {
|
|
|
|
|
|
|
+ if (dataId != null) {
|
|
|
navController?.open<PlayerScreen>(dataId)
|
|
navController?.open<PlayerScreen>(dataId)
|
|
|
- } else if (dataUri != null) {
|
|
|
|
|
- navController?.open<PlayerScreen>(dataUri)
|
|
|
|
|
} else {
|
|
} else {
|
|
|
- navController?.open<DetailScreen>(item)
|
|
|
|
|
|
|
+ when (item) {
|
|
|
|
|
+ is ItemAudio -> {
|
|
|
|
|
+ val dataUri = (item as? ItemAudio)?.uri
|
|
|
|
|
+ navController?.open<PlayerScreen>(dataUri)
|
|
|
|
|
+ }
|
|
|
|
|
+ is ItemVideo -> {
|
|
|
|
|
+ val dataUri = (item as? ItemVideo)?.uri
|
|
|
|
|
+ navController?.open<PlayerScreen>(dataUri)
|
|
|
|
|
+ }
|
|
|
|
|
+ is ItemPhoto -> {
|
|
|
|
|
+ navController?.open<DetailScreen>(item)
|
|
|
|
|
+ }
|
|
|
|
|
+ else -> {
|
|
|
|
|
+ navController?.open<DetailScreen>(item)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|