diff --git a/application/television/src/main/java/org/videolan/television/ui/compose/composable/items/AudioItem.kt b/application/television/src/main/java/org/videolan/television/ui/compose/composable/items/AudioItem.kt index b15b95abf..cb98e29a8 100644 --- a/application/television/src/main/java/org/videolan/television/ui/compose/composable/items/AudioItem.kt +++ b/application/television/src/main/java/org/videolan/television/ui/compose/composable/items/AudioItem.kt @@ -61,6 +61,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.fragment.app.FragmentActivity +import androidx.lifecycle.viewmodel.compose.viewModel import kotlinx.coroutines.launch import org.videolan.medialibrary.interfaces.media.Album import org.videolan.medialibrary.interfaces.media.Artist @@ -78,6 +79,8 @@ import org.videolan.television.ui.compose.theme.WhiteTransparent10 import org.videolan.television.ui.compose.utils.conditional import org.videolan.television.ui.compose.utils.getDescriptionAnnotated import org.videolan.television.ui.compose.utils.inlineContentMap +import org.videolan.television.viewmodel.MainActivityViewModel +import org.videolan.television.viewmodel.SnackbarContent import org.videolan.vlc.gui.helpers.getTvIconRes import org.videolan.vlc.gui.helpers.hf.StoragePermissionsDelegate.Companion.askStoragePermission import org.videolan.vlc.util.ThumbnailsProvider @@ -88,7 +91,7 @@ fun AudioItem(audios: List, index: Int, inCard: Boolean = true } @Composable -fun AudioItemCard(item: MediaLibraryItem, modifier: Modifier = Modifier, spannableDescription: Boolean = false) { +fun AudioItemCard(item: MediaLibraryItem, modifier: Modifier = Modifier, spannableDescription: Boolean = false, viewModel: MainActivityViewModel = viewModel()) { val mapBitmap: MutableState?> = remember { mutableStateOf(null) } val coroutineScope = rememberCoroutineScope() val activity = LocalActivity.current @@ -105,7 +108,6 @@ fun AudioItemCard(item: MediaLibraryItem, modifier: Modifier = Modifier, spannab } .combinedClickable( onClick = { - val item = item when (item) { is Artist -> TvUtil.openAudioCategory(activity!!, item) is Album -> TvUtil.openAudioCategory(activity!!, item) @@ -115,11 +117,11 @@ fun AudioItemCard(item: MediaLibraryItem, modifier: Modifier = Modifier, spannab } }, onLongClick = { - val item = item - if (item is MediaWrapper) - TvUtil.showMediaDetail(activity!!, item, false) - else - (activity as? FragmentActivity)?.askStoragePermission(false, null) + when (item) { + is MediaWrapper -> TvUtil.showMediaDetail(activity!!, item, false) + is DummyItem -> (activity as? FragmentActivity)?.askStoragePermission(false, null) + else -> viewModel.showSnackbar(SnackbarContent(activity!!.resources.getString(R.string.not_implemented))) + } }, indication = null, interactionSource = null @@ -213,7 +215,7 @@ fun AudioItemCard(item: MediaLibraryItem, modifier: Modifier = Modifier, spannab } @Composable -fun AudioItemList(item: MediaLibraryItem, modifier: Modifier = Modifier, spannableDescription: Boolean = false) { +fun AudioItemList(item: MediaLibraryItem, modifier: Modifier = Modifier, spannableDescription: Boolean = false, viewModel: MainActivityViewModel = viewModel()) { val mapBitmap: MutableState?> = remember { mutableStateOf(null) } val coroutineScope = rememberCoroutineScope() val activity = LocalActivity.current @@ -240,10 +242,11 @@ fun AudioItemList(item: MediaLibraryItem, modifier: Modifier = Modifier, spannab } }, onLongClick = { - if (item is MediaWrapper) - TvUtil.showMediaDetail(activity!!, item, false) - else - (activity as? FragmentActivity)?.askStoragePermission(false, null) + when (item) { + is MediaWrapper -> TvUtil.showMediaDetail(activity!!, item, false) + is DummyItem -> (activity as? FragmentActivity)?.askStoragePermission(false, null) + else -> viewModel.showSnackbar(SnackbarContent(activity!!.resources.getString(R.string.not_implemented))) + } }, indication = null, interactionSource = null