From a6bcae7987776412b36ef6efd9141b3ff881ad00 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Sun, 29 Nov 2020 20:02:40 +0100 Subject: [PATCH] Fix item delete from playlist, fix indexWhere of ObservableList --- .../option/pad/PlaylistTabViewController.java | 1 - .../plugin/content/pad/ContentPlayerPadContent.scala | 9 +++++---- .../de/tobias/playpad/plugin/content/util/package.scala | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java index 0db7bf46..6abd741f 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java +++ b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PlaylistTabViewController.java @@ -148,7 +148,6 @@ public class PlaylistTabViewController extends PadSettingsTabViewController { @FXML public void onDeleteHandler(ActionEvent event) { MediaPath mediaPath = mediaPathListView.getSelectionModel().getSelectedItem(); - pad.getContent().unloadMedia(mediaPath); pad.removePath(mediaPath); if (pad.getPaths().isEmpty()) { diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala index 76c1b4c4..ffa851be 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/pad/ContentPlayerPadContent.scala @@ -252,10 +252,11 @@ class ContentPlayerPadContent(val pad: Pad, val `type`: String) extends PadConte override def unloadMedia(mediaPath: MediaPath): Unit = { val index = mediaPlayers.indexWhere(item => item.path.getId == mediaPath.getId) - val playerContainer = mediaPlayers(index) - playerContainer.stop() - - mediaPlayers.remove(index) + if (index >= 0) { + val playerContainer = mediaPlayers(index) + playerContainer.stop() + mediaPlayers.remove(index) + } } override def reorderMedia(): Unit = { diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/util/package.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/util/package.scala index a9e50923..22836f6b 100644 --- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/util/package.scala +++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/util/package.scala @@ -3,6 +3,7 @@ package de.tobias.playpad.plugin.content import javafx.collections.ObservableList package object util { + implicit class ObservableListExtension[E >: Null](list: ObservableList[E]) { def head: E = { if (list.isEmpty) { @@ -19,7 +20,7 @@ package object util { def isNotEmpty: Boolean = !list.isEmpty def indexWhere(predicate: E => Boolean): Int = { - for (i <- 0 to list.size()) { + for (i <- 0 until list.size()) { if (predicate(list.get(i))) { return i } -- GitLab