maxrave-dev / SimpMusic

A simple music app using YouTube Music for backend
https://simpmusic.tech/
GNU General Public License v3.0
1.75k stars 115 forks source link

Deleting a song results in an error. #420

Open owencz1998 opened 2 months ago

owencz1998 commented 2 months ago

Build version: 0.2.2 Current date: 2024-06-29 19:52:11 Device: Samsung SM-S928B OS version: Android 14 (SDK 34)

Stack trace:
java.lang.IndexOutOfBoundsException: Index 258 out of bounds for length 50 at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) at java.util.Objects.checkIndex(Objects.java:359) at java.util.ArrayList.remove(ArrayList.java:511) at com.maxrave.simpmusic.viewModel.LocalPlaylistViewModel$deleteItem$1.invokeSuspend(LocalPlaylistViewModel.kt:504) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:363) at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:26) at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default(Cancellable.kt:21) at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:88) at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:123) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:52) at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:43) at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source:1) at com.maxrave.simpmusic.viewModel.LocalPlaylistViewModel.deleteItem(LocalPlaylistViewModel.kt:495) at com.maxrave.simpmusic.ui.screen.library.PlaylistScreenKt$PlaylistScreen$12.invoke(PlaylistScreen.kt:1058) at com.maxrave.simpmusic.ui.screen.library.PlaylistScreenKt$PlaylistScreen$12.invoke(PlaylistScreen.kt:1053) at com.maxrave.simpmusic.ui.component.ModalBottomSheetKt$NowPlayingBottomSheet$6$1$1$2$1$1.invoke(ModalBottomSheet.kt:247) at com.maxrave.simpmusic.ui.component.ModalBottomSheetKt$NowPlayingBottomSheet$6$1$1$2$1$1.invoke(ModalBottomSheet.kt:245) at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke-k-4lQ0M(Clickable.kt:639) at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke(Clickable.kt:633) at androidx.compose.foundation.gestures.TapGestureDetectorKt$detectTapAndPress$2$1.invokeSuspend(TapGestureDetector.kt:255) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:175) at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:164) at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:466) at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:500) at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$default(CancellableContinuationImpl.kt:489) at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:364) at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine.offerPointerEvent(SuspendingPointerInputFilter.kt:719) at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.dispatchPointerEvent(SuspendingPointerInputFilter.kt:598) at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.onPointerEvent-H0pRuoY(SuspendingPointerInputFilter.kt:620) at androidx.compose.foundation.AbstractClickableNode.onPointerEvent-H0pRuoY(Clickable.kt:1044) at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:387) at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373) at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373) at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373) at androidx.compose.ui.input.pointer.NodeParent.dispatchMainEventPass(HitPathTracker.kt:229) at androidx.compose.ui.input.pointer.HitPathTracker.dispatchChanges(HitPathTracker.kt:144) at androidx.compose.ui.input.pointer.PointerInputEventProcessor.process-BIzXfog(PointerInputEventProcessor.kt:120) at androidx.compose.ui.platform.AndroidComposeView.sendMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1960) at androidx.compose.ui.platform.AndroidComposeView.handleMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1911) at androidx.compose.ui.platform.AndroidComposeView.dispatchTouchEvent(AndroidComposeView.android.kt:1795) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3328) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2998) at android.view.View.dispatchPointerEvent(View.java:16489) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:8598) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:8349) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7678) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7735) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7701) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7904) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7709) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7961) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7682) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7735) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7701) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7709) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7682) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:11235) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:11117) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:11073) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:11369) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:337) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:335) at android.os.Looper.loopOnce(Looper.java:187) at android.os.Looper.loop(Looper.java:319) at android.app.ActivityThread.main(ActivityThread.java:8918) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@69634cc, Dispatchers.Main.immediate]

User actions: 2024-06-29 19:41:59: MainActivity created 2024-06-29 19:42:01: MainActivity resumed 2024-06-29 19:42:41: MainActivity paused 2024-06-29 19:42:56: MainActivity resumed

maxrave-dev commented 1 month ago

Where you delete?

owencz1998 commented 1 month ago

It's in my playlist, but it seems to be working again. Also, can you add an option to delete a song from the YouTube Music playlists?

maxrave-dev commented 1 month ago

You use nightly version or main version?

maxrave-dev commented 1 month ago

May be latest nightly ver fixed

owencz1998 commented 1 month ago

Yeah Nightly must been from when yt changed their api thing then u fixed it all