Browse Source

Compose TV: show the snackbar when long clicking not supported audio items

merge-requests/2332/head
Nicolas Pomepuy 8 months ago
parent
commit
b0f1f604dd
  1. 27
      application/television/src/main/java/org/videolan/television/ui/compose/composable/items/AudioItem.kt

27
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<MediaLibraryItem>, 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<Pair<MediaLibraryItem, Bitmap?>?> = 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<Pair<MediaLibraryItem, Bitmap?>?> = 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

Loading…
Cancel
Save