mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2025-08-08 09:09:48 +00:00
add functionality to copy playlists
fix https://github.com/futo-org/grayjay-android/issues/2306 Changelog: added
This commit is contained in:
parent
c94c2721d7
commit
f86fb0ee44
2 changed files with 18 additions and 12 deletions
|
@ -10,7 +10,6 @@ import androidx.lifecycle.lifecycleScope
|
||||||
import com.futo.platformplayer.*
|
import com.futo.platformplayer.*
|
||||||
import com.futo.platformplayer.activities.IWithResultLauncher
|
import com.futo.platformplayer.activities.IWithResultLauncher
|
||||||
import com.futo.platformplayer.api.media.models.playlists.IPlatformPlaylist
|
import com.futo.platformplayer.api.media.models.playlists.IPlatformPlaylist
|
||||||
import com.futo.platformplayer.api.media.models.playlists.IPlatformPlaylistDetails
|
|
||||||
import com.futo.platformplayer.api.media.models.video.IPlatformVideo
|
import com.futo.platformplayer.api.media.models.video.IPlatformVideo
|
||||||
import com.futo.platformplayer.api.media.models.video.SerializedPlatformVideo
|
import com.futo.platformplayer.api.media.models.video.SerializedPlatformVideo
|
||||||
import com.futo.platformplayer.constructs.TaskHandler
|
import com.futo.platformplayer.constructs.TaskHandler
|
||||||
|
@ -165,14 +164,16 @@ class PlaylistFragment : MainFragment() {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun copyPlaylist(playlist: Playlist) {
|
private fun savePlaylist(playlist: Playlist) {
|
||||||
StatePlaylists.instance.playlistStore.save(playlist)
|
StatePlaylists.instance.playlistStore.save(playlist)
|
||||||
_fragment.topBar?.assume<NavigationTopBarFragment>()?.setMenuItems(
|
|
||||||
arrayListOf()
|
|
||||||
)
|
|
||||||
UIDialogs.toast("Playlist saved")
|
UIDialogs.toast("Playlist saved")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun copyPlaylist(playlist: Playlist) {
|
||||||
|
StatePlaylists.instance.playlistStore.save(playlist.makeCopy())
|
||||||
|
UIDialogs.toast("Playlist copied")
|
||||||
|
}
|
||||||
|
|
||||||
fun onShown(parameter: Any?) {
|
fun onShown(parameter: Any?) {
|
||||||
_taskLoadPlaylist.cancel()
|
_taskLoadPlaylist.cancel()
|
||||||
|
|
||||||
|
@ -188,12 +189,14 @@ class PlaylistFragment : MainFragment() {
|
||||||
setButtonExportVisible(false)
|
setButtonExportVisible(false)
|
||||||
setButtonEditVisible(true)
|
setButtonEditVisible(true)
|
||||||
|
|
||||||
if (!StatePlaylists.instance.playlistStore.hasItem { it.id == parameter.id }) {
|
_fragment.topBar?.assume<NavigationTopBarFragment>()
|
||||||
_fragment.topBar?.assume<NavigationTopBarFragment>()
|
?.setMenuItems(arrayListOf(Pair(R.drawable.ic_copy) {
|
||||||
?.setMenuItems(arrayListOf(Pair(R.drawable.ic_copy) {
|
if (StatePlaylists.instance.playlistStore.hasItem { it.id == parameter.id }) {
|
||||||
copyPlaylist(parameter)
|
copyPlaylist(parameter)
|
||||||
}))
|
} else {
|
||||||
}
|
savePlaylist(parameter)
|
||||||
|
}
|
||||||
|
}))
|
||||||
} else {
|
} else {
|
||||||
setName(null)
|
setName(null)
|
||||||
setVideos(null, false)
|
setVideos(null, false)
|
||||||
|
@ -259,7 +262,7 @@ class PlaylistFragment : MainFragment() {
|
||||||
val playlist = _playlist ?: return
|
val playlist = _playlist ?: return
|
||||||
if (!StatePlaylists.instance.playlistStore.hasItem { it.id == playlist.id }) {
|
if (!StatePlaylists.instance.playlistStore.hasItem { it.id == playlist.id }) {
|
||||||
UIDialogs.showConfirmationDialog(context, "Playlist must be saved to download", {
|
UIDialogs.showConfirmationDialog(context, "Playlist must be saved to download", {
|
||||||
copyPlaylist(playlist)
|
savePlaylist(playlist)
|
||||||
download()
|
download()
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
|
@ -292,7 +295,7 @@ class PlaylistFragment : MainFragment() {
|
||||||
val playlist = _playlist ?: return
|
val playlist = _playlist ?: return
|
||||||
if (!StatePlaylists.instance.playlistStore.hasItem { it.id == playlist.id }) {
|
if (!StatePlaylists.instance.playlistStore.hasItem { it.id == playlist.id }) {
|
||||||
UIDialogs.showConfirmationDialog(context, "Playlist must be saved to edit the name", {
|
UIDialogs.showConfirmationDialog(context, "Playlist must be saved to edit the name", {
|
||||||
copyPlaylist(playlist)
|
savePlaylist(playlist)
|
||||||
onEditClick()
|
onEditClick()
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
|
|
|
@ -35,6 +35,9 @@ class Playlist {
|
||||||
this.videos = ArrayList(list);
|
this.videos = ArrayList(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun makeCopy(): Playlist {
|
||||||
|
return Playlist("$name (Copy)", videos)
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun fromV8(config: SourcePluginConfig, obj: V8ValueObject?): Playlist? {
|
fun fromV8(config: SourcePluginConfig, obj: V8ValueObject?): Playlist? {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue