Skip to content
Snippets Groups Projects
Commit b16176ed authored by Nicolas Pomepuy's avatar Nicolas Pomepuy Committed by Geoffrey Métais
Browse files

Display network protocol and network icon on TV

parent ace69802
No related branches found
No related tags found
1 merge request!205Some more fixes for beta
......@@ -45,6 +45,10 @@
name="isSquare"
type="Boolean" />
<variable
name="protocol"
type="String"/>
<variable
name="scaleType"
type="android.widget.ImageView.ScaleType"/>
......@@ -99,6 +103,24 @@
vlc:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/dvi_icon_tv"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:gravity="center"
android:text="@{protocol}"
android:textColor="@color/whitetransparent"
android:background="@drawable/rounded_corners"
android:padding="4dp"
android:visibility="@{ TextUtils.isEmpty(protocol) ? View.GONE : View.VISIBLE, default=gone}"
vlc:layout_constraintBottom_toBottomOf="@+id/media_cover"
android:layout_marginBottom="8dp"
tools:visibility="visible"
tools:text="smb"
vlc:layout_constraintStart_toStartOf="parent"
android:layout_marginLeft="8dp"
android:layout_marginStart="8dp"/>
<TextView
android:id="@+id/badgeTV"
android:layout_width="wrap_content"
......
......@@ -24,10 +24,11 @@ import org.videolan.vlc.gui.view.FastScroller
import org.videolan.vlc.interfaces.IEventsHandler
import org.videolan.vlc.util.UPDATE_PAYLOAD
import org.videolan.vlc.util.generateResolutionClass
import org.videolan.vlc.viewmodels.browser.TYPE_NETWORK
@ExperimentalCoroutinesApi
@ObsoleteCoroutinesApi
class FileTvItemAdapter(type: Int, private val eventsHandler: IEventsHandler, var itemSize: Int) : DiffUtilAdapter<AbstractMediaWrapper, MediaTvItemAdapter.AbstractMediaItemViewHolder<MediaBrowserTvItemBinding>>(), FastScroller.SeparatedAdapter, TvItemAdapter {
class FileTvItemAdapter(private val type: Int, private val eventsHandler: IEventsHandler, var itemSize: Int) : DiffUtilAdapter<AbstractMediaWrapper, MediaTvItemAdapter.AbstractMediaItemViewHolder<MediaBrowserTvItemBinding>>(), FastScroller.SeparatedAdapter, TvItemAdapter {
override fun submitList(pagedList: Any?) {
if (pagedList is List<*>) {
......@@ -94,6 +95,10 @@ class FileTvItemAdapter(type: Int, private val eventsHandler: IEventsHandler, va
}
}
private fun getProtocol(media: AbstractMediaWrapper): String? {
return if (media.type != AbstractMediaWrapper.TYPE_DIR) null else media.uri.scheme
}
inner class MediaItemTVViewHolder @TargetApi(Build.VERSION_CODES.M)
internal constructor(binding: MediaBrowserTvItemBinding, override val eventsHandler: IEventsHandler) : MediaTvItemAdapter.AbstractMediaItemViewHolder<MediaBrowserTvItemBinding>(binding), View.OnFocusChangeListener {
......@@ -165,6 +170,7 @@ class FileTvItemAdapter(type: Int, private val eventsHandler: IEventsHandler, va
binding.isSquare = isSquare
binding.seen = seen
binding.description = description
if (type == TYPE_NETWORK && item is AbstractMediaWrapper) binding.protocol = getProtocol(item)
val cover = if (item is AbstractMediaWrapper) getMediaIconDrawable(binding.root.context, item.type, true) else defaultCover
cover?.let { binding.cover = it }
if (seen == 0L) binding.mlItemSeen.visibility = View.GONE
......
......@@ -43,7 +43,6 @@ import org.videolan.medialibrary.media.DummyItem
import org.videolan.medialibrary.media.MediaLibraryItem
import org.videolan.tools.getposition
import org.videolan.vlc.R
import org.videolan.vlc.VLCApplication
import org.videolan.vlc.gui.DialogActivity
import org.videolan.vlc.gui.helpers.AudioUtil
import org.videolan.vlc.gui.helpers.BitmapUtil
......@@ -57,6 +56,7 @@ import org.videolan.vlc.providers.medialibrary.MedialibraryProvider
import org.videolan.vlc.util.*
import org.videolan.vlc.viewmodels.BaseModel
import org.videolan.vlc.viewmodels.browser.BrowserModel
@ExperimentalCoroutinesApi
@ObsoleteCoroutinesApi
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
......@@ -326,7 +326,7 @@ object TvUtil {
return when {
mw.type == AbstractMediaWrapper.TYPE_VIDEO -> R.drawable.ic_browser_video_big_normal
else -> if (mw.type == AbstractMediaWrapper.TYPE_DIR)
R.drawable.ic_menu_folder_big
if (mw.uri.scheme == "file") R.drawable.ic_menu_folder_big else R.drawable.ic_menu_network_big
else
R.drawable.ic_song_big
}
......
......@@ -53,7 +53,7 @@ class FileBrowserTvFragment : BaseBrowserTvFragment() {
}
override fun provideAdapter(eventsHandler: IEventsHandler, itemSize: Int): TvItemAdapter {
return FileTvItemAdapter(MediaLibraryItem.TYPE_MEDIA, this, itemSize)
return FileTvItemAdapter(getCategory(), this, itemSize)
}
override fun onCreate(savedInstanceState: Bundle?) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment