From 72efb21439c70badac10670619997db51f038376 Mon Sep 17 00:00:00 2001 From: Kelvin Date: Wed, 17 Jul 2024 21:12:24 +0200 Subject: [PATCH] Mark as watched action --- .../java/com/futo/platformplayer/UISlideOverlays.kt | 5 ++++- .../com/futo/platformplayer/states/StateHistory.kt | 13 +++++++++++++ app/src/main/res/values/strings.xml | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/futo/platformplayer/UISlideOverlays.kt b/app/src/main/java/com/futo/platformplayer/UISlideOverlays.kt index 386992ea..f26763a4 100644 --- a/app/src/main/java/com/futo/platformplayer/UISlideOverlays.kt +++ b/app/src/main/java/com/futo/platformplayer/UISlideOverlays.kt @@ -34,6 +34,7 @@ import com.futo.platformplayer.models.SubscriptionGroup import com.futo.platformplayer.parsers.HLS import com.futo.platformplayer.states.StateApp import com.futo.platformplayer.states.StateDownloads +import com.futo.platformplayer.states.StateHistory import com.futo.platformplayer.states.StateMeta import com.futo.platformplayer.states.StatePlatform import com.futo.platformplayer.states.StatePlayer @@ -710,7 +711,9 @@ class UISlideOverlays { SlideUpMenuItem(container.context, R.drawable.ic_queue_add, container.context.getString(R.string.add_to_queue), "${queue.size} " + container.context.getString(R.string.videos), "queue", { StatePlayer.instance.addToQueue(video); }), SlideUpMenuItem(container.context, R.drawable.ic_watchlist_add, "${container.context.getString(R.string.add_to)} " + StatePlayer.TYPE_WATCHLATER + "", "${watchLater.size} " + container.context.getString(R.string.videos), "watch later", - { StatePlaylists.instance.addToWatchLater(SerializedPlatformVideo.fromVideo(video)); }) + { StatePlaylists.instance.addToWatchLater(SerializedPlatformVideo.fromVideo(video)); }), + SlideUpMenuItem(container.context, R.drawable.ic_history, container.context.getString(R.string.add_to_history), "Mark as watched", "history", + { StateHistory.instance.markAsWatched(video); }), )); val playlistItems = arrayListOf(); diff --git a/app/src/main/java/com/futo/platformplayer/states/StateHistory.kt b/app/src/main/java/com/futo/platformplayer/states/StateHistory.kt index 4a13e0ed..bd87b9b0 100644 --- a/app/src/main/java/com/futo/platformplayer/states/StateHistory.kt +++ b/app/src/main/java/com/futo/platformplayer/states/StateHistory.kt @@ -115,6 +115,19 @@ class StateHistory { return result; } + fun markAsWatched(video: IPlatformVideo) { + try { + val history = getHistoryByVideo(video, true, OffsetDateTime.now()); + if (history != null) { + updateHistoryPosition(video, history, true, Math.max(1, video.duration - 1)); + } + } + catch(ex: Throwable) { + Logger.e(TAG, "Failed to mark as watched", ex); + UIDialogs.toast("Failed to mark as watched\n" + ex.message); + } + } + fun removeHistory(url: String) { val hist = getHistoryIndexByUrl(url); if(hist != null) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 476342da..beecf75e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,6 +7,7 @@ Add to Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Add to queue + Add to history General Channel Home