From b7781264d3d168aa7dff594879d43f7003911f3a Mon Sep 17 00:00:00 2001 From: Kai DeLorenzo Date: Tue, 25 Jun 2024 10:22:23 -0500 Subject: [PATCH] changed playlist limit to 100 added save button to non-saved local playlists --- .../mainactivity/main/PlaylistFragment.kt | 73 ++++++++++--------- .../main/RemotePlaylistFragment.kt | 2 +- 2 files changed, 41 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/PlaylistFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/PlaylistFragment.kt index 7d8a788b..207c635e 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/PlaylistFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/PlaylistFragment.kt @@ -14,6 +14,7 @@ import com.futo.platformplayer.api.media.models.video.IPlatformVideo import com.futo.platformplayer.api.media.models.video.SerializedPlatformVideo import com.futo.platformplayer.constructs.TaskHandler import com.futo.platformplayer.downloads.VideoDownload +import com.futo.platformplayer.fragment.mainactivity.topbar.NavigationTopBarFragment import com.futo.platformplayer.logging.Logger import com.futo.platformplayer.models.Playlist import com.futo.platformplayer.states.StateApp @@ -144,53 +145,59 @@ class PlaylistFragment : MainFragment() { } fun onShown(parameter: Any?) { - _taskLoadPlaylist.cancel(); + _taskLoadPlaylist.cancel() if (parameter is Playlist?) { - _playlist = parameter; - _url = null; + _playlist = parameter + _url = null - if(parameter != null) { - setName(parameter.name); - setVideos(parameter.videos, true); - setVideoCount(parameter.videos.size); - setButtonDownloadVisible(true); - setButtonEditVisible(true); + if (parameter != null) { + setName(parameter.name) + setVideos(parameter.videos, true) + setVideoCount(parameter.videos.size) + setButtonDownloadVisible(true) + setButtonEditVisible(true) + + if (!StatePlaylists.instance.playlistStore.getItems().contains(parameter)) { + _fragment.topBar?.assume() + ?.setMenuItems(arrayListOf(Pair(R.drawable.ic_copy) { + StatePlaylists.instance.playlistStore.save(parameter) + UIDialogs.toast("Playlist saved") + })) + } } else { - setName(null); - setVideos(null, false); - setVideoCount(-1); - setButtonDownloadVisible(false); - setButtonEditVisible(false); + setName(null) + setVideos(null, false) + setVideoCount(-1) + setButtonDownloadVisible(false) + setButtonEditVisible(false) } - - //TODO: Do I have to remove the showConvertPlaylistButton(); button here? } else if (parameter is IPlatformPlaylist) { - _playlist = null; - _url = parameter.url; + _playlist = null + _url = parameter.url - setVideoCount(parameter.videoCount); - setName(parameter.name); - setVideos(null, false); - setButtonDownloadVisible(false); - setButtonEditVisible(false); + setVideoCount(parameter.videoCount) + setName(parameter.name) + setVideos(null, false) + setButtonDownloadVisible(false) + setButtonEditVisible(false) - fetchPlaylist(); + fetchPlaylist() } else if (parameter is String) { - _playlist = null; - _url = parameter; + _playlist = null + _url = parameter - setName(null); - setVideos(null, false); - setVideoCount(-1); - setButtonDownloadVisible(false); - setButtonEditVisible(false); + setName(null) + setVideos(null, false) + setVideoCount(-1) + setButtonDownloadVisible(false) + setButtonEditVisible(false) - fetchPlaylist(); + fetchPlaylist() } _playlist?.let { - updateDownloadState(VideoDownload.GROUP_PLAYLIST, it.id, this::download); + updateDownloadState(VideoDownload.GROUP_PLAYLIST, it.id, this::download) } } diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/RemotePlaylistFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/RemotePlaylistFragment.kt index f76a6770..349b4fb0 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/RemotePlaylistFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/RemotePlaylistFragment.kt @@ -323,7 +323,7 @@ class RemotePlaylistFragment : MainFragment() { } } - if (remotePlaylist.videoCount > 20) { + if (remotePlaylist.videoCount > 100) { val c = context ?: return UIDialogs.showConfirmationDialog( c, "Conversion to local playlist is required for this action", convert