react-native-nitro-player 0.3.0-alpha.9 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +444 -4
- package/android/build.gradle +4 -1
- package/android/src/main/AndroidManifest.xml +16 -1
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrary.kt +2 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAudioDevices.kt +8 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridDownloadManager.kt +225 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridEqualizer.kt +105 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridPlayerQueue.kt +6 -6
- package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +37 -12
- package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +970 -213
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadDatabase.kt +475 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadFileManager.kt +159 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadManagerCore.kt +489 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadWorker.kt +209 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/equalizer/EqualizerCore.kt +486 -0
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaBrowserService.kt +3 -1
- package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +14 -6
- package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +27 -0
- package/ios/HybridDownloadManager.swift +226 -0
- package/ios/HybridEqualizer.swift +111 -0
- package/ios/HybridTrackPlayer.swift +36 -8
- package/ios/core/TrackPlayerCore.swift +998 -276
- package/ios/download/DownloadDatabase.swift +493 -0
- package/ios/download/DownloadFileManager.swift +241 -0
- package/ios/download/DownloadManagerCore.swift +923 -0
- package/ios/equalizer/EqualizerCore.swift +685 -0
- package/ios/media/MediaSessionManager.swift +40 -28
- package/ios/playlist/PlaylistManager.swift +40 -9
- package/ios/queue/HybridPlayerQueue.swift +33 -13
- package/lib/hooks/downloadCallbackManager.d.ts +36 -0
- package/lib/hooks/downloadCallbackManager.js +108 -0
- package/lib/hooks/equalizerCallbackManager.d.ts +37 -0
- package/lib/hooks/equalizerCallbackManager.js +109 -0
- package/lib/hooks/index.d.ts +16 -0
- package/lib/hooks/index.js +10 -0
- package/lib/hooks/useActualQueue.d.ts +48 -0
- package/lib/hooks/useActualQueue.js +98 -0
- package/lib/hooks/useDownloadActions.d.ts +26 -0
- package/lib/hooks/useDownloadActions.js +117 -0
- package/lib/hooks/useDownloadProgress.d.ts +25 -0
- package/lib/hooks/useDownloadProgress.js +79 -0
- package/lib/hooks/useDownloadStorage.d.ts +19 -0
- package/lib/hooks/useDownloadStorage.js +60 -0
- package/lib/hooks/useDownloadedTracks.d.ts +25 -0
- package/lib/hooks/useDownloadedTracks.js +69 -0
- package/lib/hooks/useEqualizer.d.ts +25 -0
- package/lib/hooks/useEqualizer.js +124 -0
- package/lib/hooks/useEqualizerPresets.d.ts +22 -0
- package/lib/hooks/useEqualizerPresets.js +96 -0
- package/lib/hooks/useNowPlaying.js +3 -2
- package/lib/hooks/useOnChangeTrack.js +15 -12
- package/lib/hooks/useOnPlaybackStateChange.js +16 -13
- package/lib/hooks/usePlaylist.d.ts +48 -0
- package/lib/hooks/usePlaylist.js +136 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +6 -0
- package/lib/specs/DownloadManager.nitro.d.ts +152 -0
- package/lib/specs/DownloadManager.nitro.js +1 -0
- package/lib/specs/Equalizer.nitro.d.ts +43 -0
- package/lib/specs/Equalizer.nitro.js +1 -0
- package/lib/specs/TrackPlayer.nitro.d.ts +6 -2
- package/lib/types/DownloadTypes.d.ts +110 -0
- package/lib/types/DownloadTypes.js +1 -0
- package/lib/types/EqualizerTypes.d.ts +52 -0
- package/lib/types/EqualizerTypes.js +1 -0
- package/lib/types/PlayerQueue.d.ts +4 -0
- package/nitro.json +8 -0
- package/nitrogen/generated/android/NitroPlayer+autolinking.cmake +10 -1
- package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +32 -2
- package/nitrogen/generated/android/c++/JCurrentPlayingType.hpp +65 -0
- package/nitrogen/generated/android/c++/JDownloadConfig.hpp +92 -0
- package/nitrogen/generated/android/c++/JDownloadError.hpp +71 -0
- package/nitrogen/generated/android/c++/JDownloadErrorReason.hpp +74 -0
- package/nitrogen/generated/android/c++/JDownloadProgress.hpp +79 -0
- package/nitrogen/generated/android/c++/JDownloadQueueStatus.hpp +81 -0
- package/nitrogen/generated/android/c++/JDownloadState.hpp +71 -0
- package/nitrogen/generated/android/c++/JDownloadStorageInfo.hpp +73 -0
- package/nitrogen/generated/android/c++/JDownloadTask.hpp +108 -0
- package/nitrogen/generated/android/c++/JDownloadedPlaylist.hpp +111 -0
- package/nitrogen/generated/android/c++/JDownloadedTrack.hpp +92 -0
- package/nitrogen/generated/android/c++/JEqualizerBand.hpp +69 -0
- package/nitrogen/generated/android/c++/JEqualizerPreset.hpp +78 -0
- package/nitrogen/generated/android/c++/JEqualizerState.hpp +91 -0
- package/nitrogen/generated/android/c++/JFunc_void_DownloadProgress.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_DownloadedTrack.hpp +89 -0
- package/nitrogen/generated/android/c++/JFunc_void_TrackItem_std__optional_Reason_.hpp +2 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__std__string__.hpp +81 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp +2 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_EqualizerBand_.hpp +97 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp +2 -0
- package/nitrogen/generated/android/c++/JGainRange.hpp +61 -0
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp +470 -0
- package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.hpp +99 -0
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp +204 -0
- package/nitrogen/generated/android/c++/JHybridEqualizerSpec.hpp +82 -0
- package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +2 -0
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +117 -15
- package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +6 -2
- package/nitrogen/generated/android/c++/JPlaybackSource.hpp +62 -0
- package/nitrogen/generated/android/c++/JPlayerState.hpp +11 -3
- package/nitrogen/generated/android/c++/JPlaylist.hpp +2 -0
- package/nitrogen/generated/android/c++/JPresetType.hpp +59 -0
- package/nitrogen/generated/android/c++/JStorageLocation.hpp +59 -0
- package/nitrogen/generated/android/c++/JTrackItem.hpp +9 -3
- package/nitrogen/generated/android/c++/JTrackPlayerState.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +69 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.hpp +74 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.hpp +84 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.hpp +85 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.hpp +80 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.hpp +2 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.hpp +2 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/CurrentPlayingType.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadConfig.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadError.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadErrorReason.kt +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadProgress.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadQueueStatus.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadState.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadStorageInfo.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadTask.kt +65 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedPlaylist.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/DownloadedTrack.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerBand.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerPreset.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/EqualizerState.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadProgress.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_DownloadedTrack.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__optional_std__variant_nitro__NullType__std__string__.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_EqualizerBand_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/GainRange.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridDownloadManagerSpec.kt +210 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridEqualizerSpec.kt +141 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +19 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlaybackSource.kt +22 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PlayerState.kt +6 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/PresetType.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/StorageLocation.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackItem.kt +7 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/TrackPlayerState.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Double.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadError.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack.kt +59 -0
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +138 -8
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +1046 -121
- package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Umbrella.hpp +66 -0
- package/nitrogen/generated/ios/NitroPlayerAutolinking.mm +16 -0
- package/nitrogen/generated/ios/NitroPlayerAutolinking.swift +30 -0
- package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.hpp +386 -0
- package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.hpp +223 -0
- package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.hpp +1 -0
- package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +46 -6
- package/nitrogen/generated/ios/swift/CurrentPlayingType.swift +48 -0
- package/nitrogen/generated/ios/swift/DownloadConfig.swift +270 -0
- package/nitrogen/generated/ios/swift/DownloadError.swift +69 -0
- package/nitrogen/generated/ios/swift/DownloadErrorReason.swift +60 -0
- package/nitrogen/generated/ios/swift/DownloadProgress.swift +91 -0
- package/nitrogen/generated/ios/swift/DownloadQueueStatus.swift +102 -0
- package/nitrogen/generated/ios/swift/DownloadState.swift +56 -0
- package/nitrogen/generated/ios/swift/DownloadStorageInfo.swift +80 -0
- package/nitrogen/generated/ios/swift/DownloadTask.swift +315 -0
- package/nitrogen/generated/ios/swift/DownloadedPlaylist.swift +103 -0
- package/nitrogen/generated/ios/swift/DownloadedTrack.swift +147 -0
- package/nitrogen/generated/ios/swift/EqualizerBand.swift +69 -0
- package/nitrogen/generated/ios/swift/EqualizerPreset.swift +70 -0
- package/nitrogen/generated/ios/swift/EqualizerState.swift +115 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_DownloadProgress.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_DownloadStorageInfo.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_DownloadedTrack.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_PlayerState.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +5 -5
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__std__string__.swift +66 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string_std__string_DownloadState_std__optional_DownloadError_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_EqualizerBand_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +47 -0
- package/nitrogen/generated/ios/swift/GainRange.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec.swift +90 -0
- package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec_cxx.swift +705 -0
- package/nitrogen/generated/ios/swift/HybridEqualizerSpec.swift +73 -0
- package/nitrogen/generated/ios/swift/HybridEqualizerSpec_cxx.swift +396 -0
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +6 -2
- package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +105 -8
- package/nitrogen/generated/ios/swift/PlaybackSource.swift +44 -0
- package/nitrogen/generated/ios/swift/PlayerState.swift +13 -2
- package/nitrogen/generated/ios/swift/PresetType.swift +40 -0
- package/nitrogen/generated/ios/swift/StorageLocation.swift +40 -0
- package/nitrogen/generated/ios/swift/TrackItem.swift +31 -1
- package/nitrogen/generated/ios/swift/TrackPlayerState.swift +4 -4
- package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadError.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadTask.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedPlaylist.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_DownloadedTrack.swift +18 -0
- package/nitrogen/generated/shared/c++/CurrentPlayingType.hpp +84 -0
- package/nitrogen/generated/shared/c++/DownloadConfig.hpp +108 -0
- package/nitrogen/generated/shared/c++/DownloadError.hpp +89 -0
- package/nitrogen/generated/shared/c++/DownloadErrorReason.hpp +96 -0
- package/nitrogen/generated/shared/c++/DownloadProgress.hpp +97 -0
- package/nitrogen/generated/shared/c++/DownloadQueueStatus.hpp +99 -0
- package/nitrogen/generated/shared/c++/DownloadState.hpp +92 -0
- package/nitrogen/generated/shared/c++/DownloadStorageInfo.hpp +91 -0
- package/nitrogen/generated/shared/c++/DownloadTask.hpp +122 -0
- package/nitrogen/generated/shared/c++/DownloadedPlaylist.hpp +101 -0
- package/nitrogen/generated/shared/c++/DownloadedTrack.hpp +107 -0
- package/nitrogen/generated/shared/c++/EqualizerBand.hpp +87 -0
- package/nitrogen/generated/shared/c++/EqualizerPreset.hpp +86 -0
- package/nitrogen/generated/shared/c++/EqualizerState.hpp +89 -0
- package/nitrogen/generated/shared/c++/GainRange.hpp +79 -0
- package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.cpp +55 -0
- package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.hpp +134 -0
- package/nitrogen/generated/shared/c++/HybridEqualizerSpec.cpp +38 -0
- package/nitrogen/generated/shared/c++/HybridEqualizerSpec.hpp +95 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +4 -0
- package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +11 -5
- package/nitrogen/generated/shared/c++/PlaybackSource.hpp +80 -0
- package/nitrogen/generated/shared/c++/PlayerState.hpp +9 -2
- package/nitrogen/generated/shared/c++/PresetType.hpp +76 -0
- package/nitrogen/generated/shared/c++/StorageLocation.hpp +76 -0
- package/nitrogen/generated/shared/c++/TrackItem.hpp +7 -2
- package/nitrogen/generated/shared/c++/TrackPlayerState.hpp +5 -5
- package/package.json +1 -1
- package/src/hooks/downloadCallbackManager.ts +149 -0
- package/src/hooks/equalizerCallbackManager.ts +138 -0
- package/src/hooks/index.ts +23 -0
- package/src/hooks/useActualQueue.ts +116 -0
- package/src/hooks/useDownloadActions.ts +179 -0
- package/src/hooks/useDownloadProgress.ts +126 -0
- package/src/hooks/useDownloadStorage.ts +84 -0
- package/src/hooks/useDownloadedTracks.ts +138 -0
- package/src/hooks/useEqualizer.ts +173 -0
- package/src/hooks/useEqualizerPresets.ts +140 -0
- package/src/hooks/useNowPlaying.ts +3 -2
- package/src/hooks/useOnChangeTrack.ts +15 -11
- package/src/hooks/useOnPlaybackStateChange.ts +19 -15
- package/src/hooks/usePlaylist.ts +161 -0
- package/src/index.ts +12 -0
- package/src/specs/DownloadManager.nitro.ts +203 -0
- package/src/specs/Equalizer.nitro.ts +69 -0
- package/src/specs/TrackPlayer.nitro.ts +6 -2
- package/src/types/DownloadTypes.ts +135 -0
- package/src/types/EqualizerTypes.ts +72 -0
- package/src/types/PlayerQueue.ts +9 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
package com.margelo.nitro.nitroplayer
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.Keep
|
|
4
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
5
|
+
import com.margelo.nitro.NitroModules
|
|
6
|
+
import com.margelo.nitro.core.NullType
|
|
7
|
+
import com.margelo.nitro.core.Promise
|
|
8
|
+
import com.margelo.nitro.nitroplayer.download.DownloadManagerCore
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Hybrid implementation of DownloadManagerSpec for Android
|
|
12
|
+
* Bridges Nitro modules with the native DownloadManagerCore implementation
|
|
13
|
+
*/
|
|
14
|
+
@DoNotStrip
|
|
15
|
+
@Keep
|
|
16
|
+
class HybridDownloadManager : HybridDownloadManagerSpec() {
|
|
17
|
+
private val core: DownloadManagerCore
|
|
18
|
+
|
|
19
|
+
init {
|
|
20
|
+
val context =
|
|
21
|
+
NitroModules.applicationContext
|
|
22
|
+
?: throw IllegalStateException("React Context is not initialized")
|
|
23
|
+
core = DownloadManagerCore.getInstance(context)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Configuration
|
|
27
|
+
@DoNotStrip
|
|
28
|
+
@Keep
|
|
29
|
+
override fun configure(config: DownloadConfig) {
|
|
30
|
+
core.configure(config)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@DoNotStrip
|
|
34
|
+
@Keep
|
|
35
|
+
override fun getConfig(): DownloadConfig = core.getConfig()
|
|
36
|
+
|
|
37
|
+
// Download Operations
|
|
38
|
+
override fun downloadTrack(
|
|
39
|
+
track: TrackItem,
|
|
40
|
+
playlistId: String?,
|
|
41
|
+
): Promise<String> =
|
|
42
|
+
Promise.async {
|
|
43
|
+
core.downloadTrack(track, playlistId)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
override fun downloadPlaylist(
|
|
47
|
+
playlistId: String,
|
|
48
|
+
tracks: Array<TrackItem>,
|
|
49
|
+
): Promise<Array<String>> =
|
|
50
|
+
Promise.async {
|
|
51
|
+
core.downloadPlaylist(playlistId, tracks)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Download Control
|
|
55
|
+
override fun pauseDownload(downloadId: String): Promise<Unit> =
|
|
56
|
+
Promise.async {
|
|
57
|
+
core.pauseDownload(downloadId)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
override fun resumeDownload(downloadId: String): Promise<Unit> =
|
|
61
|
+
Promise.async {
|
|
62
|
+
core.resumeDownload(downloadId)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
override fun cancelDownload(downloadId: String): Promise<Unit> =
|
|
66
|
+
Promise.async {
|
|
67
|
+
core.cancelDownload(downloadId)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
override fun retryDownload(downloadId: String): Promise<Unit> =
|
|
71
|
+
Promise.async {
|
|
72
|
+
core.retryDownload(downloadId)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
override fun pauseAllDownloads(): Promise<Unit> =
|
|
76
|
+
Promise.async {
|
|
77
|
+
core.pauseAllDownloads()
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
override fun resumeAllDownloads(): Promise<Unit> =
|
|
81
|
+
Promise.async {
|
|
82
|
+
core.resumeAllDownloads()
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
override fun cancelAllDownloads(): Promise<Unit> =
|
|
86
|
+
Promise.async {
|
|
87
|
+
core.cancelAllDownloads()
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Download Status
|
|
91
|
+
@DoNotStrip
|
|
92
|
+
@Keep
|
|
93
|
+
override fun getDownloadTask(downloadId: String): Variant_NullType_DownloadTask {
|
|
94
|
+
val task = core.getDownloadTask(downloadId)
|
|
95
|
+
return if (task != null) {
|
|
96
|
+
Variant_NullType_DownloadTask.create(task)
|
|
97
|
+
} else {
|
|
98
|
+
Variant_NullType_DownloadTask.create(NullType.NULL)
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@DoNotStrip
|
|
103
|
+
@Keep
|
|
104
|
+
override fun getActiveDownloads(): Array<DownloadTask> = core.getActiveDownloads()
|
|
105
|
+
|
|
106
|
+
@DoNotStrip
|
|
107
|
+
@Keep
|
|
108
|
+
override fun getQueueStatus(): DownloadQueueStatus = core.getQueueStatus()
|
|
109
|
+
|
|
110
|
+
@DoNotStrip
|
|
111
|
+
@Keep
|
|
112
|
+
override fun isDownloading(trackId: String): Boolean = core.isDownloading(trackId)
|
|
113
|
+
|
|
114
|
+
@DoNotStrip
|
|
115
|
+
@Keep
|
|
116
|
+
override fun getDownloadState(trackId: String): DownloadState = core.getDownloadState(trackId)
|
|
117
|
+
|
|
118
|
+
// Downloaded Content Queries
|
|
119
|
+
@DoNotStrip
|
|
120
|
+
@Keep
|
|
121
|
+
override fun isTrackDownloaded(trackId: String): Boolean = core.isTrackDownloaded(trackId)
|
|
122
|
+
|
|
123
|
+
@DoNotStrip
|
|
124
|
+
@Keep
|
|
125
|
+
override fun isPlaylistDownloaded(playlistId: String): Boolean = core.isPlaylistDownloaded(playlistId)
|
|
126
|
+
|
|
127
|
+
@DoNotStrip
|
|
128
|
+
@Keep
|
|
129
|
+
override fun isPlaylistPartiallyDownloaded(playlistId: String): Boolean = core.isPlaylistPartiallyDownloaded(playlistId)
|
|
130
|
+
|
|
131
|
+
@DoNotStrip
|
|
132
|
+
@Keep
|
|
133
|
+
override fun getDownloadedTrack(trackId: String): Variant_NullType_DownloadedTrack {
|
|
134
|
+
val track = core.getDownloadedTrack(trackId)
|
|
135
|
+
return if (track != null) {
|
|
136
|
+
Variant_NullType_DownloadedTrack.create(track)
|
|
137
|
+
} else {
|
|
138
|
+
Variant_NullType_DownloadedTrack.create(NullType.NULL)
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
@DoNotStrip
|
|
143
|
+
@Keep
|
|
144
|
+
override fun getAllDownloadedTracks(): Array<DownloadedTrack> = core.getAllDownloadedTracks()
|
|
145
|
+
|
|
146
|
+
@DoNotStrip
|
|
147
|
+
@Keep
|
|
148
|
+
override fun getDownloadedPlaylist(playlistId: String): Variant_NullType_DownloadedPlaylist {
|
|
149
|
+
val playlist = core.getDownloadedPlaylist(playlistId)
|
|
150
|
+
return if (playlist != null) {
|
|
151
|
+
Variant_NullType_DownloadedPlaylist.create(playlist)
|
|
152
|
+
} else {
|
|
153
|
+
Variant_NullType_DownloadedPlaylist.create(NullType.NULL)
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
@DoNotStrip
|
|
158
|
+
@Keep
|
|
159
|
+
override fun getAllDownloadedPlaylists(): Array<DownloadedPlaylist> = core.getAllDownloadedPlaylists()
|
|
160
|
+
|
|
161
|
+
@DoNotStrip
|
|
162
|
+
@Keep
|
|
163
|
+
override fun getLocalPath(trackId: String): Variant_NullType_String {
|
|
164
|
+
val path = core.getLocalPath(trackId)
|
|
165
|
+
return if (path != null) {
|
|
166
|
+
Variant_NullType_String.create(path)
|
|
167
|
+
} else {
|
|
168
|
+
Variant_NullType_String.create(NullType.NULL)
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Deletion
|
|
173
|
+
override fun deleteDownloadedTrack(trackId: String): Promise<Unit> =
|
|
174
|
+
Promise.async {
|
|
175
|
+
core.deleteDownloadedTrack(trackId)
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
override fun deleteDownloadedPlaylist(playlistId: String): Promise<Unit> =
|
|
179
|
+
Promise.async {
|
|
180
|
+
core.deleteDownloadedPlaylist(playlistId)
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
override fun deleteAllDownloads(): Promise<Unit> =
|
|
184
|
+
Promise.async {
|
|
185
|
+
core.deleteAllDownloads()
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Storage Management
|
|
189
|
+
override fun getStorageInfo(): Promise<DownloadStorageInfo> =
|
|
190
|
+
Promise.async {
|
|
191
|
+
core.getStorageInfo()
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
@DoNotStrip
|
|
195
|
+
@Keep
|
|
196
|
+
override fun syncDownloads(): Double = core.syncDownloads().toDouble()
|
|
197
|
+
|
|
198
|
+
// Playback Source Preference
|
|
199
|
+
@DoNotStrip
|
|
200
|
+
@Keep
|
|
201
|
+
override fun setPlaybackSourcePreference(preference: PlaybackSource) {
|
|
202
|
+
core.setPlaybackSourcePreference(preference)
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@DoNotStrip
|
|
206
|
+
@Keep
|
|
207
|
+
override fun getPlaybackSourcePreference(): PlaybackSource = core.getPlaybackSourcePreference()
|
|
208
|
+
|
|
209
|
+
@DoNotStrip
|
|
210
|
+
@Keep
|
|
211
|
+
override fun getEffectiveUrl(track: TrackItem): String = core.getEffectiveUrl(track)
|
|
212
|
+
|
|
213
|
+
// Event Callbacks
|
|
214
|
+
override fun onDownloadProgress(callback: (progress: DownloadProgress) -> Unit) {
|
|
215
|
+
core.addProgressCallback(callback)
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
override fun onDownloadStateChange(callback: (downloadId: String, trackId: String, state: DownloadState, error: DownloadError?) -> Unit) {
|
|
219
|
+
core.addStateChangeCallback(callback)
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
override fun onDownloadComplete(callback: (downloadedTrack: DownloadedTrack) -> Unit) {
|
|
223
|
+
core.addCompleteCallback(callback)
|
|
224
|
+
}
|
|
225
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
package com.margelo.nitro.nitroplayer
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.Keep
|
|
4
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
5
|
+
import com.margelo.nitro.NitroModules
|
|
6
|
+
import com.margelo.nitro.core.NullType
|
|
7
|
+
import com.margelo.nitro.nitroplayer.equalizer.EqualizerCore
|
|
8
|
+
|
|
9
|
+
@DoNotStrip
|
|
10
|
+
@Keep
|
|
11
|
+
class HybridEqualizer : HybridEqualizerSpec() {
|
|
12
|
+
private val core: EqualizerCore
|
|
13
|
+
|
|
14
|
+
init {
|
|
15
|
+
val context =
|
|
16
|
+
NitroModules.applicationContext ?: throw IllegalStateException("React Context is not initialized")
|
|
17
|
+
|
|
18
|
+
// Get the equalizer core - it will initialize lazily with audio session 0
|
|
19
|
+
// and be re-initialized with the proper session when onAudioSessionIdChanged fires
|
|
20
|
+
core = EqualizerCore.getInstance(context)
|
|
21
|
+
core.ensureInitialized()
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@DoNotStrip
|
|
25
|
+
@Keep
|
|
26
|
+
override fun setEnabled(enabled: Boolean): Boolean = core.setEnabled(enabled)
|
|
27
|
+
|
|
28
|
+
@DoNotStrip
|
|
29
|
+
@Keep
|
|
30
|
+
override fun isEnabled(): Boolean = core.isEnabled()
|
|
31
|
+
|
|
32
|
+
@DoNotStrip
|
|
33
|
+
@Keep
|
|
34
|
+
override fun getBands(): Array<EqualizerBand> = core.getBands()
|
|
35
|
+
|
|
36
|
+
@DoNotStrip
|
|
37
|
+
@Keep
|
|
38
|
+
override fun setBandGain(
|
|
39
|
+
bandIndex: Double,
|
|
40
|
+
gainDb: Double,
|
|
41
|
+
): Boolean = core.setBandGain(bandIndex.toInt(), gainDb)
|
|
42
|
+
|
|
43
|
+
@DoNotStrip
|
|
44
|
+
@Keep
|
|
45
|
+
override fun setAllBandGains(gains: DoubleArray): Boolean = core.setAllBandGains(gains)
|
|
46
|
+
|
|
47
|
+
@DoNotStrip
|
|
48
|
+
@Keep
|
|
49
|
+
override fun getBandRange(): GainRange = core.getBandRange()
|
|
50
|
+
|
|
51
|
+
@DoNotStrip
|
|
52
|
+
@Keep
|
|
53
|
+
override fun getPresets(): Array<EqualizerPreset> = core.getPresets()
|
|
54
|
+
|
|
55
|
+
@DoNotStrip
|
|
56
|
+
@Keep
|
|
57
|
+
override fun getBuiltInPresets(): Array<EqualizerPreset> = core.getBuiltInPresets()
|
|
58
|
+
|
|
59
|
+
@DoNotStrip
|
|
60
|
+
@Keep
|
|
61
|
+
override fun getCustomPresets(): Array<EqualizerPreset> = core.getCustomPresets()
|
|
62
|
+
|
|
63
|
+
@DoNotStrip
|
|
64
|
+
@Keep
|
|
65
|
+
override fun applyPreset(presetName: String): Boolean = core.applyPreset(presetName)
|
|
66
|
+
|
|
67
|
+
@DoNotStrip
|
|
68
|
+
@Keep
|
|
69
|
+
override fun getCurrentPresetName(): Variant_NullType_String {
|
|
70
|
+
val name = core.getCurrentPresetName()
|
|
71
|
+
return if (name != null) {
|
|
72
|
+
Variant_NullType_String.create(name)
|
|
73
|
+
} else {
|
|
74
|
+
Variant_NullType_String.create(NullType.NULL)
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@DoNotStrip
|
|
79
|
+
@Keep
|
|
80
|
+
override fun saveCustomPreset(name: String): Boolean = core.saveCustomPreset(name)
|
|
81
|
+
|
|
82
|
+
@DoNotStrip
|
|
83
|
+
@Keep
|
|
84
|
+
override fun deleteCustomPreset(name: String): Boolean = core.deleteCustomPreset(name)
|
|
85
|
+
|
|
86
|
+
@DoNotStrip
|
|
87
|
+
@Keep
|
|
88
|
+
override fun getState(): EqualizerState = core.getState()
|
|
89
|
+
|
|
90
|
+
@DoNotStrip
|
|
91
|
+
@Keep
|
|
92
|
+
override fun reset() = core.reset()
|
|
93
|
+
|
|
94
|
+
override fun onEnabledChange(callback: (enabled: Boolean) -> Unit) {
|
|
95
|
+
core.addOnEnabledChangeListener(callback)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
override fun onBandChange(callback: (bands: Array<EqualizerBand>) -> Unit) {
|
|
99
|
+
core.addOnBandChangeListener(callback)
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
override fun onPresetChange(callback: (presetName: Variant_NullType_String?) -> Unit) {
|
|
103
|
+
core.addOnPresetChangeListener(callback)
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -10,6 +10,8 @@ import com.margelo.nitro.nitroplayer.playlist.PlaylistManager
|
|
|
10
10
|
import java.util.UUID
|
|
11
11
|
import com.margelo.nitro.nitroplayer.playlist.Playlist as InternalPlaylist
|
|
12
12
|
|
|
13
|
+
@DoNotStrip
|
|
14
|
+
@Keep
|
|
13
15
|
class HybridPlayerQueue : HybridPlayerQueueSpec() {
|
|
14
16
|
private val core: TrackPlayerCore
|
|
15
17
|
private val playlistManager: PlaylistManager
|
|
@@ -20,7 +22,7 @@ class HybridPlayerQueue : HybridPlayerQueueSpec() {
|
|
|
20
22
|
playlistManager = core.getPlaylistManager()
|
|
21
23
|
}
|
|
22
24
|
|
|
23
|
-
private
|
|
25
|
+
private val playlistsChangeListeners = mutableListOf<() -> Unit>()
|
|
24
26
|
private val playlistChangeListeners = mutableMapOf<String, () -> Unit>()
|
|
25
27
|
|
|
26
28
|
@DoNotStrip
|
|
@@ -129,14 +131,12 @@ class HybridPlayerQueue : HybridPlayerQueueSpec() {
|
|
|
129
131
|
@DoNotStrip
|
|
130
132
|
@Keep
|
|
131
133
|
override fun onPlaylistsChanged(callback: (playlists: Array<Playlist>, operation: QueueOperation?) -> Unit) {
|
|
132
|
-
//
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
// Add new listener
|
|
136
|
-
playlistsChangeListener =
|
|
134
|
+
// Add new listener and store the cleanup function
|
|
135
|
+
val removeListener =
|
|
137
136
|
playlistManager.addPlaylistsChangeListener { playlists, operation ->
|
|
138
137
|
callback(playlists.map { it.toPlaylist() }.toTypedArray(), operation)
|
|
139
138
|
}
|
|
139
|
+
playlistsChangeListeners.add(removeListener)
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
@DoNotStrip
|
|
@@ -3,8 +3,11 @@ package com.margelo.nitro.nitroplayer
|
|
|
3
3
|
import androidx.annotation.Keep
|
|
4
4
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
5
5
|
import com.margelo.nitro.NitroModules
|
|
6
|
+
import com.margelo.nitro.core.Promise
|
|
6
7
|
import com.margelo.nitro.nitroplayer.core.TrackPlayerCore
|
|
7
8
|
|
|
9
|
+
@DoNotStrip
|
|
10
|
+
@Keep
|
|
8
11
|
class HybridTrackPlayer : HybridTrackPlayerSpec() {
|
|
9
12
|
private val core: TrackPlayerCore
|
|
10
13
|
|
|
@@ -26,14 +29,13 @@ class HybridTrackPlayer : HybridTrackPlayerSpec() {
|
|
|
26
29
|
core.pause()
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
@DoNotStrip
|
|
30
|
-
@Keep
|
|
31
32
|
override fun playSong(
|
|
32
33
|
songId: String,
|
|
33
34
|
fromPlaylist: String?,
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
): Promise<Unit> =
|
|
36
|
+
Promise.async {
|
|
37
|
+
core.playSong(songId, fromPlaylist)
|
|
38
|
+
}
|
|
37
39
|
|
|
38
40
|
@DoNotStrip
|
|
39
41
|
@Keep
|
|
@@ -53,28 +55,44 @@ class HybridTrackPlayer : HybridTrackPlayerSpec() {
|
|
|
53
55
|
core.seek(position)
|
|
54
56
|
}
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
override fun addToUpNext(trackId: String): Promise<Unit> =
|
|
59
|
+
Promise.async {
|
|
60
|
+
core.addToUpNext(trackId)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
override fun playNext(trackId: String): Promise<Unit> =
|
|
64
|
+
Promise.async {
|
|
65
|
+
core.playNext(trackId)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
override fun getActualQueue(): Promise<Array<TrackItem>> =
|
|
69
|
+
Promise.async {
|
|
70
|
+
core.getActualQueue().toTypedArray()
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
override fun getState(): Promise<PlayerState> =
|
|
74
|
+
Promise.async {
|
|
75
|
+
core.getState()
|
|
76
|
+
}
|
|
59
77
|
|
|
60
78
|
@DoNotStrip
|
|
61
79
|
@Keep
|
|
62
80
|
override fun setRepeatMode(mode: RepeatMode): Boolean = core.setRepeatMode(mode)
|
|
63
81
|
|
|
64
82
|
override fun onChangeTrack(callback: (track: TrackItem, reason: Reason?) -> Unit) {
|
|
65
|
-
core.
|
|
83
|
+
core.addOnChangeTrackListener(callback)
|
|
66
84
|
}
|
|
67
85
|
|
|
68
86
|
override fun onPlaybackStateChange(callback: (state: TrackPlayerState, reason: Reason?) -> Unit) {
|
|
69
|
-
core.
|
|
87
|
+
core.addOnPlaybackStateChangeListener(callback)
|
|
70
88
|
}
|
|
71
89
|
|
|
72
90
|
override fun onSeek(callback: (position: Double, totalDuration: Double) -> Unit) {
|
|
73
|
-
core.
|
|
91
|
+
core.addOnSeekListener(callback)
|
|
74
92
|
}
|
|
75
93
|
|
|
76
94
|
override fun onPlaybackProgressChange(callback: (position: Double, totalDuration: Double, isManuallySeeked: Boolean?) -> Unit) {
|
|
77
|
-
core.
|
|
95
|
+
core.addOnPlaybackProgressChangeListener(callback)
|
|
78
96
|
}
|
|
79
97
|
|
|
80
98
|
@DoNotStrip
|
|
@@ -98,4 +116,11 @@ class HybridTrackPlayer : HybridTrackPlayerSpec() {
|
|
|
98
116
|
@DoNotStrip
|
|
99
117
|
@Keep
|
|
100
118
|
override fun setVolume(volume: Double): Boolean = core.setVolume(volume)
|
|
119
|
+
|
|
120
|
+
@DoNotStrip
|
|
121
|
+
@Keep
|
|
122
|
+
override fun skipToIndex(index: Double): Promise<Boolean> =
|
|
123
|
+
Promise.async {
|
|
124
|
+
core.skipToIndex(index.toInt())
|
|
125
|
+
}
|
|
101
126
|
}
|