-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Description
Hi! 👋
Firstly, thanks for your work on this project! 🙂
Today I used patch-package to patch react-native-track-player@4.1.2 for the project I'm working on.
Android builds are currently broken in 4.1.2. The fix is based on this post
Here is the diff that solved my problem:
diff --git a/node_modules/react-native-track-player/android/src/main/java/com/doublesymmetry/trackplayer/module/MusicModule.kt b/node_modules/react-native-track-player/android/src/main/java/com/doublesymmetry/trackplayer/module/MusicModule.kt
index b2409a0..2e07f1f 100644
--- a/node_modules/react-native-track-player/android/src/main/java/com/doublesymmetry/trackplayer/module/MusicModule.kt
+++ b/node_modules/react-native-track-player/android/src/main/java/com/doublesymmetry/trackplayer/module/MusicModule.kt
@@ -543,9 +543,19 @@ class MusicModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaM
@ReactMethod
fun getTrack(index: Int, callback: Promise) = scope.launch {
if (verifyServiceBoundOrReject(callback)) return@launch
-
- if (index >= 0 && index < musicService.tracks.size) {
- callback.resolve(Arguments.fromBundle(musicService.tracks[index].originalItem))
+ if (verifyServiceBoundOrReject(callback) == true) return@launch
+ val service = musicService
+ if (service == null) {
+ callback.resolve(null)
+ return@launch
+ }
+ if (index >= 0 && index < service.tracks.size) {
+ val item = service.tracks[index].originalItem
+ if (item != null) {
+ callback.resolve(Arguments.fromBundle(item))
+ } else {
+ callback.resolve(null)
+ }
} else {
callback.resolve(null)
}
@@ -582,12 +592,27 @@ class MusicModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaM
@ReactMethod
fun getActiveTrack(callback: Promise) = scope.launch {
if (verifyServiceBoundOrReject(callback)) return@launch
- callback.resolve(
- if (musicService.tracks.isEmpty()) null
- else Arguments.fromBundle(
- musicService.tracks[musicService.getCurrentTrackIndex()].originalItem
- )
- )
+ val service = musicService
+ if (service == null) {
+ callback.resolve(null)
+ return@launch
+ }
+ if (service.tracks.isEmpty()) {
+ callback.resolve(null)
+ return@launch
+ }
+ val index = service.getCurrentTrackIndex()
+ if (index < 0 || index >= service.tracks.size) {
+ callback.resolve(null)
+ return@launch
+ }
+
+ val item = service.tracks[index].originalItem
+ if (item != null) {
+ callback.resolve(Arguments.fromBundle(item))
+ } else {
+ callback.resolve(null)
+ }
}
@ReactMethod
This issue body was partially generated by patch-package.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels