From c275415a4944841d7b237e38b5540e1d33b8de8f Mon Sep 17 00:00:00 2001 From: Kelvin K Date: Thu, 20 Jun 2024 11:51:11 +0200 Subject: [PATCH] Hide playlist video count if unknown --- app/src/main/assets/scripts/source.js | 2 +- .../api/media/platforms/js/models/JSPlaylist.kt | 2 +- .../platformplayer/views/adapters/PlaylistView.kt | 12 +++++++++++- .../viewholders/ImportPlaylistsViewHolder.kt | 8 +++++++- app/src/main/res/layout/list_playlist_feed.xml | 1 + .../main/res/layout/list_playlist_feed_preview.xml | 8 ++++---- 6 files changed, 25 insertions(+), 8 deletions(-) diff --git a/app/src/main/assets/scripts/source.js b/app/src/main/assets/scripts/source.js index 7e619b3e..0324e0f5 100644 --- a/app/src/main/assets/scripts/source.js +++ b/app/src/main/assets/scripts/source.js @@ -436,7 +436,7 @@ class PlatformPlaylist extends PlatformContent { constructor(obj) { super(obj, 4); this.plugin_type = "PlatformPlaylist"; - this.videoCount = obj.videoCount ?? 0; + this.videoCount = obj.videoCount ?? -1; this.thumbnail = obj.thumbnail; } } diff --git a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/JSPlaylist.kt b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/JSPlaylist.kt index b47ae9ea..787b53e4 100644 --- a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/JSPlaylist.kt +++ b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/JSPlaylist.kt @@ -14,6 +14,6 @@ open class JSPlaylist : JSContent, IPlatformPlaylist { constructor(config: SourcePluginConfig, obj: V8ValueObject) : super(config, obj) { val contextName = "Playlist"; thumbnail = obj.getOrDefault(config, "thumbnail", contextName, null); - videoCount = obj.getOrDefault(config, "videoCount", contextName, 0)!!; + videoCount = obj.getOrDefault(config, "videoCount", contextName, -1)!!; } } \ No newline at end of file diff --git a/app/src/main/java/com/futo/platformplayer/views/adapters/PlaylistView.kt b/app/src/main/java/com/futo/platformplayer/views/adapters/PlaylistView.kt index a35d8147..b606bf26 100644 --- a/app/src/main/java/com/futo/platformplayer/views/adapters/PlaylistView.kt +++ b/app/src/main/java/com/futo/platformplayer/views/adapters/PlaylistView.kt @@ -33,6 +33,7 @@ open class PlaylistView : LinearLayout { protected val _platformIndicator: PlatformIndicator; protected val _textPlaylistName: TextView protected val _textVideoCount: TextView + protected val _textVideoCountLabel: TextView; protected val _textPlaylistItems: TextView protected val _textChannelName: TextView protected var _neopassAnimator: ObjectAnimator? = null; @@ -62,6 +63,7 @@ open class PlaylistView : LinearLayout { _platformIndicator = findViewById(R.id.thumbnail_platform); _textPlaylistName = findViewById(R.id.text_playlist_name); _textVideoCount = findViewById(R.id.text_video_count); + _textVideoCountLabel = findViewById(R.id.text_video_count_label); _textChannelName = findViewById(R.id.text_channel_name); _textPlaylistItems = findViewById(R.id.text_playlist_items); _imageNeopassChannel = findViewById(R.id.image_neopass_channel); @@ -137,7 +139,15 @@ open class PlaylistView : LinearLayout { .crossfade() .into(_imageThumbnail); - _textVideoCount.text = content.videoCount.toString(); + if(content.videoCount >= 0) { + _textVideoCount.text = content.videoCount.toString(); + _textVideoCount.visibility = View.VISIBLE; + _textVideoCountLabel.visibility = VISIBLE; + } + else { + _textVideoCount.visibility = View.GONE; + _textVideoCountLabel.visibility = GONE; + } } else { currentPlaylist = null; diff --git a/app/src/main/java/com/futo/platformplayer/views/adapters/viewholders/ImportPlaylistsViewHolder.kt b/app/src/main/java/com/futo/platformplayer/views/adapters/viewholders/ImportPlaylistsViewHolder.kt index e17e84aa..66ab0193 100644 --- a/app/src/main/java/com/futo/platformplayer/views/adapters/viewholders/ImportPlaylistsViewHolder.kt +++ b/app/src/main/java/com/futo/platformplayer/views/adapters/viewholders/ImportPlaylistsViewHolder.kt @@ -1,6 +1,7 @@ package com.futo.platformplayer.views.adapters.viewholders import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.LinearLayout @@ -46,7 +47,12 @@ class ImportPlaylistsViewHolder(private val _viewGroup: ViewGroup) : AnyAdapter. override fun bind(value: SelectablePlaylist) { _textName.text = value.playlist.name; - _textMetadata.text = "${value.playlist.videoCount} " + _view.context.getString(R.string.videos); + if(value.playlist.videoCount >= 0) { + _textMetadata.text = "${value.playlist.videoCount} " + _view.context.getString(R.string.videos); + _textMetadata.visibility = View.VISIBLE; + } + else + _textMetadata.visibility = View.GONE; _checkbox.value = value.selected; val thumbnail = value.playlist.thumbnail; diff --git a/app/src/main/res/layout/list_playlist_feed.xml b/app/src/main/res/layout/list_playlist_feed.xml index a9eb1ddc..f2f30845 100644 --- a/app/src/main/res/layout/list_playlist_feed.xml +++ b/app/src/main/res/layout/list_playlist_feed.xml @@ -68,6 +68,7 @@ android:textColor="@color/gray_7f"/> + app:layout_constraintRight_toLeftOf="@id/text_video_count_label" + app:layout_constraintBottom_toBottomOf="@id/text_video_count_label" /> + app:layout_constraintBottom_toTopOf="@id/text_video_count_label"/>