From ea4fea4401aba65bebd715e874c94e7a9c9d6517 Mon Sep 17 00:00:00 2001
From: Kelvin <kelvin@futo.org>
Date: Sat, 13 Jan 2024 00:51:00 +0100
Subject: [PATCH] Deduplication priorities fixed, playpause button change and
 wakelock on interruption fixed

---
 .../fragment/mainactivity/main/VideoDetailView.kt            | 2 +-
 .../subscription/SubscriptionsTaskFetchAlgorithm.kt          | 2 +-
 .../com/futo/platformplayer/views/video/FutoVideoPlayer.kt   | 5 ++++-
 .../futo/platformplayer/views/video/FutoVideoPlayerBase.kt   | 4 ++++
 4 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt
index ed6a6c8e..a80b1aab 100644
--- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt
+++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt
@@ -1857,7 +1857,7 @@ class VideoDetailView : ConstraintLayout {
         }
     }
 
-    private fun c(playing: Boolean) {
+    private fun handlePlayChanged(playing: Boolean) {
         Logger.i(TAG, "handlePlayChanged(playing=$playing)")
 
         val ad = StateCasting.instance.activeDevice;
diff --git a/app/src/main/java/com/futo/platformplayer/subscription/SubscriptionsTaskFetchAlgorithm.kt b/app/src/main/java/com/futo/platformplayer/subscription/SubscriptionsTaskFetchAlgorithm.kt
index 5acbc4cd..9be47538 100644
--- a/app/src/main/java/com/futo/platformplayer/subscription/SubscriptionsTaskFetchAlgorithm.kt
+++ b/app/src/main/java/com/futo/platformplayer/subscription/SubscriptionsTaskFetchAlgorithm.kt
@@ -126,7 +126,7 @@ abstract class SubscriptionsTaskFetchAlgorithm(
         val pager = MultiChronoContentPager(groupedPagers, allowFailure, 15);
         pager.initialize();
 
-        return Result(DedupContentPager(pager), exs);
+        return Result(DedupContentPager(pager, StatePlatform.instance.getEnabledClients().map { it.id }), exs);
     }
 
     fun executeSubscriptionTasks(tasks: List<SubscriptionTask>, failedPlugins: MutableList<String>, cachedChannels: MutableList<String>): List<ForkJoinTask<SubscriptionTaskResult>> {
diff --git a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt
index f5ab5137..a84dcef6 100644
--- a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt
+++ b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt
@@ -629,7 +629,10 @@ class FutoVideoPlayer : FutoVideoPlayerBase {
         }
     }
 
-    override fun onPlay
+    override fun onIsPlayingChanged(playing: Boolean) {
+        super.onIsPlayingChanged(playing)
+        updatePlayPause();
+    }
     override fun onPlaybackStateChanged(playbackState: Int) {
         Logger.v(TAG, "onPlaybackStateChanged $playbackState");
         updatePlayPause()
diff --git a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt
index eda60133..d60a3f8e 100644
--- a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt
+++ b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt
@@ -106,6 +106,7 @@ abstract class FutoVideoPlayerBase : RelativeLayout {
 
         override fun onIsPlayingChanged(isPlaying: Boolean) {
             super.onIsPlayingChanged(isPlaying);
+            this@FutoVideoPlayerBase.onIsPlayingChanged(isPlaying);
             updatePlaying();
         }
 
@@ -625,6 +626,9 @@ abstract class FutoVideoPlayerBase : RelativeLayout {
     }
     protected open fun onSourceChanged(videoSource: IVideoSource?, audioSource: IAudioSource? = null, resume: Boolean = true) { }
 
+    protected open fun onIsPlayingChanged(playing: Boolean) {
+
+    }
     protected open fun onPlaybackStateChanged(playbackState: Int) {
         if (_shouldPlaybackRestartOnConnectivity && playbackState == ExoPlayer.STATE_READY) {
             Logger.i(TAG, "_shouldPlaybackRestartOnConnectivity=false");
-- 
GitLab