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