From 5cafbf243e92b87009623d1cf9593e08b8dcaad6 Mon Sep 17 00:00:00 2001 From: Koen Date: Wed, 22 Nov 2023 22:32:44 +0100 Subject: [PATCH] Fixed channel contents long press and fixed a crash due to time bars. --- .../channel/tab/ChannelContentsFragment.kt | 2 ++ .../mainactivity/main/ChannelFragment.kt | 6 ++++++ .../views/adapters/ChannelViewPagerAdapter.kt | 2 ++ .../adapters/feedtypes/PreviewVideoView.kt | 19 +++++++++++-------- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/channel/tab/ChannelContentsFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/channel/tab/ChannelContentsFragment.kt index 9ac89b82..54a09c43 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/channel/tab/ChannelContentsFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/channel/tab/ChannelContentsFragment.kt @@ -59,6 +59,7 @@ class ChannelContentsFragment : Fragment(), IChannelTabFragment { val onChannelClicked = Event1(); val onAddToClicked = Event1(); val onAddToQueueClicked = Event1(); + val onLongPress = Event1(); private fun getContentPager(channel: IPlatformChannel): IPager { Logger.i(TAG, "getContentPager"); @@ -159,6 +160,7 @@ class ChannelContentsFragment : Fragment(), IChannelTabFragment { this.onChannelClicked.subscribe(this@ChannelContentsFragment.onChannelClicked::emit); this.onAddToClicked.subscribe(this@ChannelContentsFragment.onAddToClicked::emit); this.onAddToQueueClicked.subscribe(this@ChannelContentsFragment.onAddToQueueClicked::emit); + this.onLongPress.subscribe(this@ChannelContentsFragment.onLongPress::emit); } _llmVideo = LinearLayoutManager(view.context); diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ChannelFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ChannelFragment.kt index f598dbc2..743648ef 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ChannelFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ChannelFragment.kt @@ -223,6 +223,12 @@ class ChannelFragment : MainFragment() { else -> {}; } } + adapter.onLongPress.subscribe { content -> + _overlayContainer.let { + if(content is IPlatformVideo) + _slideUpOverlay = UISlideOverlays.showVideoOptionsOverlay(content, it); + } + } viewPager.adapter = adapter; val tabLayoutMediator = TabLayoutMediator(tabs, viewPager) { tab, position -> diff --git a/app/src/main/java/com/futo/platformplayer/views/adapters/ChannelViewPagerAdapter.kt b/app/src/main/java/com/futo/platformplayer/views/adapters/ChannelViewPagerAdapter.kt index fcb3d123..4217ff35 100644 --- a/app/src/main/java/com/futo/platformplayer/views/adapters/ChannelViewPagerAdapter.kt +++ b/app/src/main/java/com/futo/platformplayer/views/adapters/ChannelViewPagerAdapter.kt @@ -20,6 +20,7 @@ class ChannelViewPagerAdapter(fragmentManager: FragmentManager, lifecycle: Lifec val onChannelClicked = Event1(); val onAddToClicked = Event1(); val onAddToQueueClicked = Event1(); + val onLongPress = Event1(); override fun getItemCount(): Int { return _cache.size; @@ -55,6 +56,7 @@ class ChannelViewPagerAdapter(fragmentManager: FragmentManager, lifecycle: Lifec onChannelClicked.subscribe(this@ChannelViewPagerAdapter.onChannelClicked::emit); onAddToClicked.subscribe(this@ChannelViewPagerAdapter.onAddToClicked::emit); onAddToQueueClicked.subscribe(this@ChannelViewPagerAdapter.onAddToQueueClicked::emit); + onLongPress.subscribe(this@ChannelViewPagerAdapter.onLongPress::emit); }; 1 -> ChannelListFragment.newInstance().apply { onClickChannel.subscribe(onChannelClicked::emit) }; //2 -> ChannelStoreFragment.newInstance(); diff --git a/app/src/main/java/com/futo/platformplayer/views/adapters/feedtypes/PreviewVideoView.kt b/app/src/main/java/com/futo/platformplayer/views/adapters/feedtypes/PreviewVideoView.kt index 3a690918..8bc3770e 100644 --- a/app/src/main/java/com/futo/platformplayer/views/adapters/feedtypes/PreviewVideoView.kt +++ b/app/src/main/java/com/futo/platformplayer/views/adapters/feedtypes/PreviewVideoView.kt @@ -69,7 +69,7 @@ open class PreviewVideoView : LinearLayout { Logger.w(TAG, "Failed to load profile.", it); }; - private val _timeBar: ProgressBar; + private val _timeBar: ProgressBar?; val onVideoClicked = Event2(); val onLongPress = Event1(); @@ -243,12 +243,15 @@ open class PreviewVideoView : LinearLayout { _containerDuration.visibility = VISIBLE; } - if (shouldShowTimeBar) { - val historyPosition = StatePlaylists.instance.getHistoryPosition(video.url) - _timeBar.visibility = if (historyPosition > 0) VISIBLE else GONE - _timeBar.progress = historyPosition.toFloat() / video.duration.toFloat() - } else { - _timeBar.visibility = GONE + val timeBar = _timeBar + if (timeBar != null) { + if (shouldShowTimeBar) { + val historyPosition = StatePlaylists.instance.getHistoryPosition(video.url) + timeBar.visibility = if (historyPosition > 0) VISIBLE else GONE + timeBar.progress = historyPosition.toFloat() / video.duration.toFloat() + } else { + timeBar.visibility = GONE + } } } else { @@ -256,7 +259,7 @@ open class PreviewVideoView : LinearLayout { _imageVideo.setImageResource(0); _containerDuration.visibility = GONE; _containerLive.visibility = GONE; - _timeBar.visibility = GONE; + _timeBar?.visibility = GONE; } _textVideoMetadata.text = metadata + timeMeta;