react-native-nitro-player 0.6.1 → 0.7.1-alpha.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.
Files changed (164) hide show
  1. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrary.kt +9 -13
  2. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridAudioDevices.kt +45 -90
  3. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridDownloadManager.kt +48 -182
  4. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridEqualizer.kt +21 -77
  5. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridPlayerQueue.kt +55 -104
  6. package/android/src/main/java/com/margelo/nitro/nitroplayer/HybridTrackPlayer.kt +113 -123
  7. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/ExoPlayerCore.kt +82 -0
  8. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/ListenerRegistry.kt +48 -0
  9. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerAndroidAuto.kt +62 -0
  10. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerCore.kt +153 -1887
  11. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerListener.kt +122 -0
  12. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerNotify.kt +44 -0
  13. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerPlayback.kt +162 -0
  14. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerQueue.kt +165 -0
  15. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerQueueBuild.kt +161 -0
  16. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerSetup.kt +28 -0
  17. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerTempQueue.kt +121 -0
  18. package/android/src/main/java/com/margelo/nitro/nitroplayer/core/TrackPlayerUrlLoader.kt +98 -0
  19. package/android/src/main/java/com/margelo/nitro/nitroplayer/download/DownloadDatabase.kt +27 -18
  20. package/android/src/main/java/com/margelo/nitro/nitroplayer/equalizer/EqualizerCore.kt +11 -58
  21. package/android/src/main/java/com/margelo/nitro/nitroplayer/media/MediaSessionManager.kt +13 -30
  22. package/android/src/main/java/com/margelo/nitro/nitroplayer/playlist/PlaylistManager.kt +102 -162
  23. package/ios/HybridDownloadManager.swift +32 -26
  24. package/ios/HybridEqualizer.swift +48 -35
  25. package/ios/HybridTrackPlayer.swift +127 -102
  26. package/ios/core/ListenerRegistry.swift +60 -0
  27. package/ios/core/TrackPlayerCore.swift +130 -2356
  28. package/ios/core/TrackPlayerListener.swift +395 -0
  29. package/ios/core/TrackPlayerNotify.swift +52 -0
  30. package/ios/core/TrackPlayerPlayback.swift +274 -0
  31. package/ios/core/TrackPlayerQueue.swift +212 -0
  32. package/ios/core/TrackPlayerQueueBuild.swift +482 -0
  33. package/ios/core/TrackPlayerTempQueue.swift +167 -0
  34. package/ios/core/TrackPlayerUrlLoader.swift +169 -0
  35. package/ios/equalizer/EqualizerCore.swift +24 -89
  36. package/ios/media/MediaSessionManager.swift +32 -49
  37. package/ios/playlist/PlaylistManager.swift +2 -9
  38. package/ios/queue/HybridPlayerQueue.swift +69 -66
  39. package/lib/hooks/useDownloadedTracks.js +16 -13
  40. package/lib/hooks/useEqualizer.d.ts +4 -4
  41. package/lib/hooks/useEqualizer.js +12 -12
  42. package/lib/hooks/useEqualizerPresets.d.ts +3 -3
  43. package/lib/hooks/useEqualizerPresets.js +12 -18
  44. package/lib/specs/AndroidAutoMediaLibrary.nitro.d.ts +2 -2
  45. package/lib/specs/AudioDevices.nitro.d.ts +2 -2
  46. package/lib/specs/DownloadManager.nitro.d.ts +10 -10
  47. package/lib/specs/Equalizer.nitro.d.ts +9 -9
  48. package/lib/specs/TrackPlayer.nitro.d.ts +38 -16
  49. package/nitro.json +44 -11
  50. package/nitrogen/generated/android/NitroPlayerOnLoad.cpp +63 -24
  51. package/nitrogen/generated/android/c++/JCurrentPlayingType.hpp +1 -1
  52. package/nitrogen/generated/android/c++/JDownloadConfig.hpp +1 -1
  53. package/nitrogen/generated/android/c++/JDownloadError.hpp +1 -1
  54. package/nitrogen/generated/android/c++/JDownloadErrorReason.hpp +1 -1
  55. package/nitrogen/generated/android/c++/JDownloadProgress.hpp +1 -1
  56. package/nitrogen/generated/android/c++/JDownloadQueueStatus.hpp +1 -1
  57. package/nitrogen/generated/android/c++/JDownloadState.hpp +1 -1
  58. package/nitrogen/generated/android/c++/JDownloadStorageInfo.hpp +1 -1
  59. package/nitrogen/generated/android/c++/JDownloadTask.hpp +1 -1
  60. package/nitrogen/generated/android/c++/JDownloadedPlaylist.hpp +1 -1
  61. package/nitrogen/generated/android/c++/JDownloadedTrack.hpp +1 -1
  62. package/nitrogen/generated/android/c++/JEqualizerBand.hpp +1 -1
  63. package/nitrogen/generated/android/c++/JEqualizerPreset.hpp +1 -1
  64. package/nitrogen/generated/android/c++/JEqualizerState.hpp +1 -1
  65. package/nitrogen/generated/android/c++/JFunc_void_DownloadProgress.hpp +2 -2
  66. package/nitrogen/generated/android/c++/JFunc_void_DownloadedTrack.hpp +2 -2
  67. package/nitrogen/generated/android/c++/JFunc_void_TrackItem_std__optional_Reason_.hpp +2 -2
  68. package/nitrogen/generated/android/c++/JFunc_void_TrackPlayerState_std__optional_Reason_.hpp +2 -2
  69. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +2 -2
  70. package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +2 -2
  71. package/nitrogen/generated/android/c++/JFunc_void_double_double_std__optional_bool_.hpp +2 -2
  72. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__std__string__.hpp +2 -2
  73. package/nitrogen/generated/android/c++/JFunc_void_std__string_Playlist_std__optional_QueueOperation_.hpp +2 -2
  74. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string_DownloadState_std__optional_DownloadError_.hpp +2 -2
  75. package/nitrogen/generated/android/c++/JFunc_void_std__vector_EqualizerBand_.hpp +2 -2
  76. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Playlist__std__optional_QueueOperation_.hpp +2 -2
  77. package/nitrogen/generated/android/c++/JFunc_void_std__vector_TrackItem__double.hpp +2 -2
  78. package/nitrogen/generated/android/c++/JFunc_void_std__vector_TrackItem__std__vector_TrackItem_.hpp +122 -0
  79. package/nitrogen/generated/android/c++/JGainRange.hpp +1 -1
  80. package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.cpp +49 -30
  81. package/nitrogen/generated/android/c++/JHybridAndroidAutoMediaLibrarySpec.hpp +21 -24
  82. package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.cpp +35 -28
  83. package/nitrogen/generated/android/c++/JHybridAudioDevicesSpec.hpp +20 -23
  84. package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.cpp +197 -93
  85. package/nitrogen/generated/android/c++/JHybridDownloadManagerSpec.hpp +29 -32
  86. package/nitrogen/generated/android/c++/JHybridEqualizerSpec.cpp +157 -67
  87. package/nitrogen/generated/android/c++/JHybridEqualizerSpec.hpp +28 -31
  88. package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.cpp +138 -53
  89. package/nitrogen/generated/android/c++/JHybridPlayerQueueSpec.hpp +27 -30
  90. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.cpp +282 -69
  91. package/nitrogen/generated/android/c++/JHybridTrackPlayerSpec.hpp +35 -30
  92. package/nitrogen/generated/android/c++/JPlaybackSource.hpp +1 -1
  93. package/nitrogen/generated/android/c++/JPlayerConfig.hpp +1 -1
  94. package/nitrogen/generated/android/c++/JPlayerState.hpp +1 -1
  95. package/nitrogen/generated/android/c++/JPlaylist.hpp +1 -1
  96. package/nitrogen/generated/android/c++/JPresetType.hpp +1 -1
  97. package/nitrogen/generated/android/c++/JQueueOperation.hpp +1 -1
  98. package/nitrogen/generated/android/c++/JReason.hpp +1 -1
  99. package/nitrogen/generated/android/c++/JRepeatMode.hpp +1 -1
  100. package/nitrogen/generated/android/c++/JStorageLocation.hpp +1 -1
  101. package/nitrogen/generated/android/c++/JTAudioDevice.hpp +1 -1
  102. package/nitrogen/generated/android/c++/JTrackItem.hpp +1 -1
  103. package/nitrogen/generated/android/c++/JTrackPlayerState.hpp +1 -1
  104. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +3 -3
  105. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadError.hpp +3 -3
  106. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadTask.hpp +3 -3
  107. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedPlaylist.hpp +3 -3
  108. package/nitrogen/generated/android/c++/JVariant_NullType_DownloadedTrack.hpp +3 -3
  109. package/nitrogen/generated/android/c++/JVariant_NullType_Playlist.hpp +3 -3
  110. package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +3 -3
  111. package/nitrogen/generated/android/c++/JVariant_NullType_TrackItem.hpp +3 -3
  112. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Func_void_std__vector_TrackItem__std__vector_TrackItem_.kt +80 -0
  113. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAndroidAutoMediaLibrarySpec.kt +18 -20
  114. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridAudioDevicesSpec.kt +17 -19
  115. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridDownloadManagerSpec.kt +25 -28
  116. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridEqualizerSpec.kt +25 -27
  117. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridPlayerQueueSpec.kt +24 -26
  118. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/HybridTrackPlayerSpec.kt +60 -26
  119. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Double.kt +0 -6
  120. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadError.kt +0 -6
  121. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask.kt +0 -6
  122. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist.kt +0 -6
  123. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack.kt +0 -6
  124. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_Playlist.kt +0 -6
  125. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_String.kt +0 -6
  126. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroplayer/Variant_NullType_TrackItem.kt +0 -6
  127. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.cpp +74 -18
  128. package/nitrogen/generated/ios/NitroPlayer-Swift-Cxx-Bridge.hpp +380 -151
  129. package/nitrogen/generated/ios/c++/HybridDownloadManagerSpecSwift.hpp +10 -10
  130. package/nitrogen/generated/ios/c++/HybridEqualizerSpecSwift.hpp +12 -9
  131. package/nitrogen/generated/ios/c++/HybridPlayerQueueSpecSwift.hpp +23 -8
  132. package/nitrogen/generated/ios/c++/HybridTrackPlayerSpecSwift.hpp +82 -8
  133. package/nitrogen/generated/ios/swift/Func_void_EqualizerState.swift +46 -0
  134. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__DownloadedPlaylist_.swift +58 -0
  135. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__DownloadedTrack_.swift +58 -0
  136. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__std__string_.swift +58 -0
  137. package/nitrogen/generated/ios/swift/Func_void_std__vector_DownloadedPlaylist_.swift +46 -0
  138. package/nitrogen/generated/ios/swift/Func_void_std__vector_DownloadedTrack_.swift +46 -0
  139. package/nitrogen/generated/ios/swift/Func_void_std__vector_EqualizerBand_.swift +5 -5
  140. package/nitrogen/generated/ios/swift/Func_void_std__vector_TrackItem__std__vector_TrackItem_.swift +46 -0
  141. package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec.swift +10 -10
  142. package/nitrogen/generated/ios/swift/HybridDownloadManagerSpec_cxx.swift +141 -71
  143. package/nitrogen/generated/ios/swift/HybridEqualizerSpec.swift +9 -9
  144. package/nitrogen/generated/ios/swift/HybridEqualizerSpec_cxx.swift +105 -41
  145. package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec.swift +8 -8
  146. package/nitrogen/generated/ios/swift/HybridPlayerQueueSpec_cxx.swift +95 -32
  147. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec.swift +16 -8
  148. package/nitrogen/generated/ios/swift/HybridTrackPlayerSpec_cxx.swift +267 -32
  149. package/nitrogen/generated/shared/c++/HybridAndroidAutoMediaLibrarySpec.hpp +3 -2
  150. package/nitrogen/generated/shared/c++/HybridAudioDevicesSpec.hpp +2 -1
  151. package/nitrogen/generated/shared/c++/HybridDownloadManagerSpec.hpp +10 -10
  152. package/nitrogen/generated/shared/c++/HybridEqualizerSpec.hpp +10 -9
  153. package/nitrogen/generated/shared/c++/HybridPlayerQueueSpec.hpp +9 -8
  154. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.cpp +8 -0
  155. package/nitrogen/generated/shared/c++/HybridTrackPlayerSpec.hpp +16 -8
  156. package/package.json +3 -3
  157. package/src/hooks/useDownloadedTracks.ts +17 -13
  158. package/src/hooks/useEqualizer.ts +16 -16
  159. package/src/hooks/useEqualizerPresets.ts +15 -21
  160. package/src/specs/AndroidAutoMediaLibrary.nitro.ts +2 -2
  161. package/src/specs/AudioDevices.nitro.ts +2 -2
  162. package/src/specs/DownloadManager.nitro.ts +10 -10
  163. package/src/specs/Equalizer.nitro.ts +9 -9
  164. package/src/specs/TrackPlayer.nitro.ts +52 -16
@@ -35,7 +35,7 @@ namespace margelo::nitro::nitroplayer {
35
35
  */
36
36
  struct JPlayerState final: public jni::JavaClass<JPlayerState> {
37
37
  public:
38
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/PlayerState;";
38
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/PlayerState;";
39
39
 
40
40
  public:
41
41
  /**
@@ -31,7 +31,7 @@ namespace margelo::nitro::nitroplayer {
31
31
  */
32
32
  struct JPlaylist final: public jni::JavaClass<JPlaylist> {
33
33
  public:
34
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Playlist;";
34
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Playlist;";
35
35
 
36
36
  public:
37
37
  /**
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
19
19
  */
20
20
  struct JPresetType final: public jni::JavaClass<JPresetType> {
21
21
  public:
22
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/PresetType;";
22
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/PresetType;";
23
23
 
24
24
  public:
25
25
  /**
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
19
19
  */
20
20
  struct JQueueOperation final: public jni::JavaClass<JQueueOperation> {
21
21
  public:
22
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/QueueOperation;";
22
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/QueueOperation;";
23
23
 
24
24
  public:
25
25
  /**
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
19
19
  */
20
20
  struct JReason final: public jni::JavaClass<JReason> {
21
21
  public:
22
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Reason;";
22
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Reason;";
23
23
 
24
24
  public:
25
25
  /**
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
19
19
  */
20
20
  struct JRepeatMode final: public jni::JavaClass<JRepeatMode> {
21
21
  public:
22
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/RepeatMode;";
22
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/RepeatMode;";
23
23
 
24
24
  public:
25
25
  /**
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
19
19
  */
20
20
  struct JStorageLocation final: public jni::JavaClass<JStorageLocation> {
21
21
  public:
22
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/StorageLocation;";
22
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/StorageLocation;";
23
23
 
24
24
  public:
25
25
  /**
@@ -21,7 +21,7 @@ namespace margelo::nitro::nitroplayer {
21
21
  */
22
22
  struct JTAudioDevice final: public jni::JavaClass<JTAudioDevice> {
23
23
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/TAudioDevice;";
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/TAudioDevice;";
25
25
 
26
26
  public:
27
27
  /**
@@ -28,7 +28,7 @@ namespace margelo::nitro::nitroplayer {
28
28
  */
29
29
  struct JTrackItem final: public jni::JavaClass<JTrackItem> {
30
30
  public:
31
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/TrackItem;";
31
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/TrackItem;";
32
32
 
33
33
  public:
34
34
  /**
@@ -19,7 +19,7 @@ namespace margelo::nitro::nitroplayer {
19
19
  */
20
20
  struct JTrackPlayerState final: public jni::JavaClass<JTrackPlayerState> {
21
21
  public:
22
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/TrackPlayerState;";
22
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/TrackPlayerState;";
23
23
 
24
24
  public:
25
25
  /**
@@ -23,7 +23,7 @@ namespace margelo::nitro::nitroplayer {
23
23
  */
24
24
  class JVariant_NullType_Double: public jni::JavaClass<JVariant_NullType_Double> {
25
25
  public:
26
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Double;";
26
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Double;";
27
27
 
28
28
  static jni::local_ref<JVariant_NullType_Double> create_0(jni::alias_ref<JNull> value) {
29
29
  static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_Double(jni::alias_ref<JNull>)>("create");
@@ -48,7 +48,7 @@ namespace margelo::nitro::nitroplayer {
48
48
  namespace JVariant_NullType_Double_impl {
49
49
  class First final: public jni::JavaClass<First, JVariant_NullType_Double> {
50
50
  public:
51
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Double$First;";
51
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Double$First;";
52
52
 
53
53
  [[nodiscard]] jni::local_ref<JNull> getValue() const {
54
54
  static const auto field = javaClassStatic()->getField<JNull>("value");
@@ -58,7 +58,7 @@ namespace margelo::nitro::nitroplayer {
58
58
 
59
59
  class Second final: public jni::JavaClass<Second, JVariant_NullType_Double> {
60
60
  public:
61
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Double$Second;";
61
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Double$Second;";
62
62
 
63
63
  [[nodiscard]] double getValue() const {
64
64
  static const auto field = javaClassStatic()->getField<double>("value");
@@ -28,7 +28,7 @@ namespace margelo::nitro::nitroplayer {
28
28
  */
29
29
  class JVariant_NullType_DownloadError: public jni::JavaClass<JVariant_NullType_DownloadError> {
30
30
  public:
31
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadError;";
31
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadError;";
32
32
 
33
33
  static jni::local_ref<JVariant_NullType_DownloadError> create_0(jni::alias_ref<JNull> value) {
34
34
  static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_DownloadError(jni::alias_ref<JNull>)>("create");
@@ -53,7 +53,7 @@ namespace margelo::nitro::nitroplayer {
53
53
  namespace JVariant_NullType_DownloadError_impl {
54
54
  class First final: public jni::JavaClass<First, JVariant_NullType_DownloadError> {
55
55
  public:
56
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadError$First;";
56
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadError$First;";
57
57
 
58
58
  [[nodiscard]] jni::local_ref<JNull> getValue() const {
59
59
  static const auto field = javaClassStatic()->getField<JNull>("value");
@@ -63,7 +63,7 @@ namespace margelo::nitro::nitroplayer {
63
63
 
64
64
  class Second final: public jni::JavaClass<Second, JVariant_NullType_DownloadError> {
65
65
  public:
66
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadError$Second;";
66
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadError$Second;";
67
67
 
68
68
  [[nodiscard]] jni::local_ref<JDownloadError> getValue() const {
69
69
  static const auto field = javaClassStatic()->getField<JDownloadError>("value");
@@ -38,7 +38,7 @@ namespace margelo::nitro::nitroplayer {
38
38
  */
39
39
  class JVariant_NullType_DownloadTask: public jni::JavaClass<JVariant_NullType_DownloadTask> {
40
40
  public:
41
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask;";
41
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask;";
42
42
 
43
43
  static jni::local_ref<JVariant_NullType_DownloadTask> create_0(jni::alias_ref<JNull> value) {
44
44
  static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_DownloadTask(jni::alias_ref<JNull>)>("create");
@@ -63,7 +63,7 @@ namespace margelo::nitro::nitroplayer {
63
63
  namespace JVariant_NullType_DownloadTask_impl {
64
64
  class First final: public jni::JavaClass<First, JVariant_NullType_DownloadTask> {
65
65
  public:
66
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask$First;";
66
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask$First;";
67
67
 
68
68
  [[nodiscard]] jni::local_ref<JNull> getValue() const {
69
69
  static const auto field = javaClassStatic()->getField<JNull>("value");
@@ -73,7 +73,7 @@ namespace margelo::nitro::nitroplayer {
73
73
 
74
74
  class Second final: public jni::JavaClass<Second, JVariant_NullType_DownloadTask> {
75
75
  public:
76
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask$Second;";
76
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadTask$Second;";
77
77
 
78
78
  [[nodiscard]] jni::local_ref<JDownloadTask> getValue() const {
79
79
  static const auto field = javaClassStatic()->getField<JDownloadTask>("value");
@@ -39,7 +39,7 @@ namespace margelo::nitro::nitroplayer {
39
39
  */
40
40
  class JVariant_NullType_DownloadedPlaylist: public jni::JavaClass<JVariant_NullType_DownloadedPlaylist> {
41
41
  public:
42
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist;";
42
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist;";
43
43
 
44
44
  static jni::local_ref<JVariant_NullType_DownloadedPlaylist> create_0(jni::alias_ref<JNull> value) {
45
45
  static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_DownloadedPlaylist(jni::alias_ref<JNull>)>("create");
@@ -64,7 +64,7 @@ namespace margelo::nitro::nitroplayer {
64
64
  namespace JVariant_NullType_DownloadedPlaylist_impl {
65
65
  class First final: public jni::JavaClass<First, JVariant_NullType_DownloadedPlaylist> {
66
66
  public:
67
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist$First;";
67
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist$First;";
68
68
 
69
69
  [[nodiscard]] jni::local_ref<JNull> getValue() const {
70
70
  static const auto field = javaClassStatic()->getField<JNull>("value");
@@ -74,7 +74,7 @@ namespace margelo::nitro::nitroplayer {
74
74
 
75
75
  class Second final: public jni::JavaClass<Second, JVariant_NullType_DownloadedPlaylist> {
76
76
  public:
77
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist$Second;";
77
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedPlaylist$Second;";
78
78
 
79
79
  [[nodiscard]] jni::local_ref<JDownloadedPlaylist> getValue() const {
80
80
  static const auto field = javaClassStatic()->getField<JDownloadedPlaylist>("value");
@@ -34,7 +34,7 @@ namespace margelo::nitro::nitroplayer {
34
34
  */
35
35
  class JVariant_NullType_DownloadedTrack: public jni::JavaClass<JVariant_NullType_DownloadedTrack> {
36
36
  public:
37
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack;";
37
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack;";
38
38
 
39
39
  static jni::local_ref<JVariant_NullType_DownloadedTrack> create_0(jni::alias_ref<JNull> value) {
40
40
  static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_DownloadedTrack(jni::alias_ref<JNull>)>("create");
@@ -59,7 +59,7 @@ namespace margelo::nitro::nitroplayer {
59
59
  namespace JVariant_NullType_DownloadedTrack_impl {
60
60
  class First final: public jni::JavaClass<First, JVariant_NullType_DownloadedTrack> {
61
61
  public:
62
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack$First;";
62
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack$First;";
63
63
 
64
64
  [[nodiscard]] jni::local_ref<JNull> getValue() const {
65
65
  static const auto field = javaClassStatic()->getField<JNull>("value");
@@ -69,7 +69,7 @@ namespace margelo::nitro::nitroplayer {
69
69
 
70
70
  class Second final: public jni::JavaClass<Second, JVariant_NullType_DownloadedTrack> {
71
71
  public:
72
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack$Second;";
72
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_DownloadedTrack$Second;";
73
73
 
74
74
  [[nodiscard]] jni::local_ref<JDownloadedTrack> getValue() const {
75
75
  static const auto field = javaClassStatic()->getField<JDownloadedTrack>("value");
@@ -33,7 +33,7 @@ namespace margelo::nitro::nitroplayer {
33
33
  */
34
34
  class JVariant_NullType_Playlist: public jni::JavaClass<JVariant_NullType_Playlist> {
35
35
  public:
36
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Playlist;";
36
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Playlist;";
37
37
 
38
38
  static jni::local_ref<JVariant_NullType_Playlist> create_0(jni::alias_ref<JNull> value) {
39
39
  static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_Playlist(jni::alias_ref<JNull>)>("create");
@@ -58,7 +58,7 @@ namespace margelo::nitro::nitroplayer {
58
58
  namespace JVariant_NullType_Playlist_impl {
59
59
  class First final: public jni::JavaClass<First, JVariant_NullType_Playlist> {
60
60
  public:
61
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Playlist$First;";
61
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Playlist$First;";
62
62
 
63
63
  [[nodiscard]] jni::local_ref<JNull> getValue() const {
64
64
  static const auto field = javaClassStatic()->getField<JNull>("value");
@@ -68,7 +68,7 @@ namespace margelo::nitro::nitroplayer {
68
68
 
69
69
  class Second final: public jni::JavaClass<Second, JVariant_NullType_Playlist> {
70
70
  public:
71
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Playlist$Second;";
71
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_Playlist$Second;";
72
72
 
73
73
  [[nodiscard]] jni::local_ref<JPlaylist> getValue() const {
74
74
  static const auto field = javaClassStatic()->getField<JPlaylist>("value");
@@ -24,7 +24,7 @@ namespace margelo::nitro::nitroplayer {
24
24
  */
25
25
  class JVariant_NullType_String: public jni::JavaClass<JVariant_NullType_String> {
26
26
  public:
27
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_String;";
27
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_String;";
28
28
 
29
29
  static jni::local_ref<JVariant_NullType_String> create_0(jni::alias_ref<JNull> value) {
30
30
  static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_String(jni::alias_ref<JNull>)>("create");
@@ -49,7 +49,7 @@ namespace margelo::nitro::nitroplayer {
49
49
  namespace JVariant_NullType_String_impl {
50
50
  class First final: public jni::JavaClass<First, JVariant_NullType_String> {
51
51
  public:
52
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_String$First;";
52
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_String$First;";
53
53
 
54
54
  [[nodiscard]] jni::local_ref<JNull> getValue() const {
55
55
  static const auto field = javaClassStatic()->getField<JNull>("value");
@@ -59,7 +59,7 @@ namespace margelo::nitro::nitroplayer {
59
59
 
60
60
  class Second final: public jni::JavaClass<Second, JVariant_NullType_String> {
61
61
  public:
62
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_String$Second;";
62
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_String$Second;";
63
63
 
64
64
  [[nodiscard]] jni::local_ref<jni::JString> getValue() const {
65
65
  static const auto field = javaClassStatic()->getField<jni::JString>("value");
@@ -30,7 +30,7 @@ namespace margelo::nitro::nitroplayer {
30
30
  */
31
31
  class JVariant_NullType_TrackItem: public jni::JavaClass<JVariant_NullType_TrackItem> {
32
32
  public:
33
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_TrackItem;";
33
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_TrackItem;";
34
34
 
35
35
  static jni::local_ref<JVariant_NullType_TrackItem> create_0(jni::alias_ref<JNull> value) {
36
36
  static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_TrackItem(jni::alias_ref<JNull>)>("create");
@@ -55,7 +55,7 @@ namespace margelo::nitro::nitroplayer {
55
55
  namespace JVariant_NullType_TrackItem_impl {
56
56
  class First final: public jni::JavaClass<First, JVariant_NullType_TrackItem> {
57
57
  public:
58
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_TrackItem$First;";
58
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_TrackItem$First;";
59
59
 
60
60
  [[nodiscard]] jni::local_ref<JNull> getValue() const {
61
61
  static const auto field = javaClassStatic()->getField<JNull>("value");
@@ -65,7 +65,7 @@ namespace margelo::nitro::nitroplayer {
65
65
 
66
66
  class Second final: public jni::JavaClass<Second, JVariant_NullType_TrackItem> {
67
67
  public:
68
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_TrackItem$Second;";
68
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitroplayer/Variant_NullType_TrackItem$Second;";
69
69
 
70
70
  [[nodiscard]] jni::local_ref<JTrackItem> getValue() const {
71
71
  static const auto field = javaClassStatic()->getField<JTrackItem>("value");
@@ -0,0 +1,80 @@
1
+ ///
2
+ /// Func_void_std__vector_TrackItem__std__vector_TrackItem_.kt
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ package com.margelo.nitro.nitroplayer
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.jni.HybridData
12
+ import com.facebook.proguard.annotations.DoNotStrip
13
+ import dalvik.annotation.optimization.FastNative
14
+
15
+
16
+ /**
17
+ * Represents the JavaScript callback `(playNextQueue: array, upNextQueue: array) => void`.
18
+ * This can be either implemented in C++ (in which case it might be a callback coming from JS),
19
+ * or in Kotlin/Java (in which case it is a native callback).
20
+ */
21
+ @DoNotStrip
22
+ @Keep
23
+ @Suppress("ClassName", "RedundantUnitReturnType")
24
+ fun interface Func_void_std__vector_TrackItem__std__vector_TrackItem_: (Array<TrackItem>, Array<TrackItem>) -> Unit {
25
+ /**
26
+ * Call the given JS callback.
27
+ * @throws Throwable if the JS function itself throws an error, or if the JS function/runtime has already been deleted.
28
+ */
29
+ @DoNotStrip
30
+ @Keep
31
+ override fun invoke(playNextQueue: Array<TrackItem>, upNextQueue: Array<TrackItem>): Unit
32
+ }
33
+
34
+ /**
35
+ * Represents the JavaScript callback `(playNextQueue: array, upNextQueue: array) => void`.
36
+ * This is implemented in C++, via a `std::function<...>`.
37
+ * The callback might be coming from JS.
38
+ */
39
+ @DoNotStrip
40
+ @Keep
41
+ @Suppress(
42
+ "KotlinJniMissingFunction", "unused",
43
+ "RedundantSuppression", "RedundantUnitReturnType", "FunctionName",
44
+ "ConvertSecondaryConstructorToPrimary", "ClassName", "LocalVariableName",
45
+ )
46
+ class Func_void_std__vector_TrackItem__std__vector_TrackItem__cxx: Func_void_std__vector_TrackItem__std__vector_TrackItem_ {
47
+ @DoNotStrip
48
+ @Keep
49
+ private val mHybridData: HybridData
50
+
51
+ @DoNotStrip
52
+ @Keep
53
+ private constructor(hybridData: HybridData) {
54
+ mHybridData = hybridData
55
+ }
56
+
57
+ @DoNotStrip
58
+ @Keep
59
+ override fun invoke(playNextQueue: Array<TrackItem>, upNextQueue: Array<TrackItem>): Unit
60
+ = invoke_cxx(playNextQueue,upNextQueue)
61
+
62
+ @FastNative
63
+ private external fun invoke_cxx(playNextQueue: Array<TrackItem>, upNextQueue: Array<TrackItem>): Unit
64
+ }
65
+
66
+ /**
67
+ * Represents the JavaScript callback `(playNextQueue: array, upNextQueue: array) => void`.
68
+ * This is implemented in Java/Kotlin, via a `(Array<TrackItem>, Array<TrackItem>) -> Unit`.
69
+ * The callback is always coming from native.
70
+ */
71
+ @DoNotStrip
72
+ @Keep
73
+ @Suppress("ClassName", "RedundantUnitReturnType", "unused")
74
+ class Func_void_std__vector_TrackItem__std__vector_TrackItem__java(private val function: (Array<TrackItem>, Array<TrackItem>) -> Unit): Func_void_std__vector_TrackItem__std__vector_TrackItem_ {
75
+ @DoNotStrip
76
+ @Keep
77
+ override fun invoke(playNextQueue: Array<TrackItem>, upNextQueue: Array<TrackItem>): Unit {
78
+ return this.function(playNextQueue, upNextQueue)
79
+ }
80
+ }
@@ -10,6 +10,7 @@ package com.margelo.nitro.nitroplayer
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.jni.HybridData
12
12
  import com.facebook.proguard.annotations.DoNotStrip
13
+ import com.margelo.nitro.core.Promise
13
14
  import com.margelo.nitro.core.HybridObject
14
15
 
15
16
  /**
@@ -24,36 +25,33 @@ import com.margelo.nitro.core.HybridObject
24
25
  "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
25
26
  )
26
27
  abstract class HybridAndroidAutoMediaLibrarySpec: HybridObject() {
27
- @DoNotStrip
28
- private var mHybridData: HybridData = initHybrid()
29
-
30
- init {
31
- super.updateNative(mHybridData)
32
- }
33
-
34
- override fun updateNative(hybridData: HybridData) {
35
- mHybridData = hybridData
36
- super.updateNative(hybridData)
37
- }
38
-
39
- // Default implementation of `HybridObject.toString()`
40
- override fun toString(): String {
41
- return "[HybridObject AndroidAutoMediaLibrary]"
42
- }
43
-
44
28
  // Properties
45
29
 
46
30
 
47
31
  // Methods
48
32
  @DoNotStrip
49
33
  @Keep
50
- abstract fun setMediaLibrary(libraryJson: String): Unit
34
+ abstract fun setMediaLibrary(libraryJson: String): Promise<Unit>
51
35
 
52
36
  @DoNotStrip
53
37
  @Keep
54
- abstract fun clearMediaLibrary(): Unit
38
+ abstract fun clearMediaLibrary(): Promise<Unit>
39
+
40
+ // Default implementation of `HybridObject.toString()`
41
+ override fun toString(): String {
42
+ return "[HybridObject AndroidAutoMediaLibrary]"
43
+ }
55
44
 
56
- private external fun initHybrid(): HybridData
45
+ // C++ backing class
46
+ @DoNotStrip
47
+ @Keep
48
+ protected open class CxxPart(javaPart: HybridAndroidAutoMediaLibrarySpec): HybridObject.CxxPart(javaPart) {
49
+ // C++ JHybridAndroidAutoMediaLibrarySpec::CxxPart::initHybrid(...)
50
+ external override fun initHybrid(): HybridData
51
+ }
52
+ override fun createCxxPart(): CxxPart {
53
+ return CxxPart(this)
54
+ }
57
55
 
58
56
  companion object {
59
57
  protected const val TAG = "HybridAndroidAutoMediaLibrarySpec"
@@ -10,6 +10,7 @@ package com.margelo.nitro.nitroplayer
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.jni.HybridData
12
12
  import com.facebook.proguard.annotations.DoNotStrip
13
+ import com.margelo.nitro.core.Promise
13
14
  import com.margelo.nitro.core.HybridObject
14
15
 
15
16
  /**
@@ -24,23 +25,6 @@ import com.margelo.nitro.core.HybridObject
24
25
  "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
25
26
  )
26
27
  abstract class HybridAudioDevicesSpec: HybridObject() {
27
- @DoNotStrip
28
- private var mHybridData: HybridData = initHybrid()
29
-
30
- init {
31
- super.updateNative(mHybridData)
32
- }
33
-
34
- override fun updateNative(hybridData: HybridData) {
35
- mHybridData = hybridData
36
- super.updateNative(hybridData)
37
- }
38
-
39
- // Default implementation of `HybridObject.toString()`
40
- override fun toString(): String {
41
- return "[HybridObject AudioDevices]"
42
- }
43
-
44
28
  // Properties
45
29
 
46
30
 
@@ -51,9 +35,23 @@ abstract class HybridAudioDevicesSpec: HybridObject() {
51
35
 
52
36
  @DoNotStrip
53
37
  @Keep
54
- abstract fun setAudioDevice(deviceId: Double): Boolean
38
+ abstract fun setAudioDevice(deviceId: Double): Promise<Unit>
39
+
40
+ // Default implementation of `HybridObject.toString()`
41
+ override fun toString(): String {
42
+ return "[HybridObject AudioDevices]"
43
+ }
55
44
 
56
- private external fun initHybrid(): HybridData
45
+ // C++ backing class
46
+ @DoNotStrip
47
+ @Keep
48
+ protected open class CxxPart(javaPart: HybridAudioDevicesSpec): HybridObject.CxxPart(javaPart) {
49
+ // C++ JHybridAudioDevicesSpec::CxxPart::initHybrid(...)
50
+ external override fun initHybrid(): HybridData
51
+ }
52
+ override fun createCxxPart(): CxxPart {
53
+ return CxxPart(this)
54
+ }
57
55
 
58
56
  companion object {
59
57
  protected const val TAG = "HybridAudioDevicesSpec"
@@ -26,23 +26,6 @@ import com.margelo.nitro.core.HybridObject
26
26
  "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
27
27
  )
28
28
  abstract class HybridDownloadManagerSpec: HybridObject() {
29
- @DoNotStrip
30
- private var mHybridData: HybridData = initHybrid()
31
-
32
- init {
33
- super.updateNative(mHybridData)
34
- }
35
-
36
- override fun updateNative(hybridData: HybridData) {
37
- mHybridData = hybridData
38
- super.updateNative(hybridData)
39
- }
40
-
41
- // Default implementation of `HybridObject.toString()`
42
- override fun toString(): String {
43
- return "[HybridObject DownloadManager]"
44
- }
45
-
46
29
  // Properties
47
30
 
48
31
 
@@ -113,35 +96,35 @@ abstract class HybridDownloadManagerSpec: HybridObject() {
113
96
 
114
97
  @DoNotStrip
115
98
  @Keep
116
- abstract fun isTrackDownloaded(trackId: String): Boolean
99
+ abstract fun isTrackDownloaded(trackId: String): Promise<Boolean>
117
100
 
118
101
  @DoNotStrip
119
102
  @Keep
120
- abstract fun isPlaylistDownloaded(playlistId: String): Boolean
103
+ abstract fun isPlaylistDownloaded(playlistId: String): Promise<Boolean>
121
104
 
122
105
  @DoNotStrip
123
106
  @Keep
124
- abstract fun isPlaylistPartiallyDownloaded(playlistId: String): Boolean
107
+ abstract fun isPlaylistPartiallyDownloaded(playlistId: String): Promise<Boolean>
125
108
 
126
109
  @DoNotStrip
127
110
  @Keep
128
- abstract fun getDownloadedTrack(trackId: String): Variant_NullType_DownloadedTrack
111
+ abstract fun getDownloadedTrack(trackId: String): Promise<Variant_NullType_DownloadedTrack>
129
112
 
130
113
  @DoNotStrip
131
114
  @Keep
132
- abstract fun getAllDownloadedTracks(): Array<DownloadedTrack>
115
+ abstract fun getAllDownloadedTracks(): Promise<Array<DownloadedTrack>>
133
116
 
134
117
  @DoNotStrip
135
118
  @Keep
136
- abstract fun getDownloadedPlaylist(playlistId: String): Variant_NullType_DownloadedPlaylist
119
+ abstract fun getDownloadedPlaylist(playlistId: String): Promise<Variant_NullType_DownloadedPlaylist>
137
120
 
138
121
  @DoNotStrip
139
122
  @Keep
140
- abstract fun getAllDownloadedPlaylists(): Array<DownloadedPlaylist>
123
+ abstract fun getAllDownloadedPlaylists(): Promise<Array<DownloadedPlaylist>>
141
124
 
142
125
  @DoNotStrip
143
126
  @Keep
144
- abstract fun getLocalPath(trackId: String): Variant_NullType_String
127
+ abstract fun getLocalPath(trackId: String): Promise<Variant_NullType_String>
145
128
 
146
129
  @DoNotStrip
147
130
  @Keep
@@ -161,7 +144,7 @@ abstract class HybridDownloadManagerSpec: HybridObject() {
161
144
 
162
145
  @DoNotStrip
163
146
  @Keep
164
- abstract fun syncDownloads(): Double
147
+ abstract fun syncDownloads(): Promise<Double>
165
148
 
166
149
  @DoNotStrip
167
150
  @Keep
@@ -173,7 +156,7 @@ abstract class HybridDownloadManagerSpec: HybridObject() {
173
156
 
174
157
  @DoNotStrip
175
158
  @Keep
176
- abstract fun getEffectiveUrl(track: TrackItem): String
159
+ abstract fun getEffectiveUrl(track: TrackItem): Promise<String>
177
160
 
178
161
  abstract fun onDownloadProgress(callback: (progress: DownloadProgress) -> Unit): Unit
179
162
 
@@ -202,7 +185,21 @@ abstract class HybridDownloadManagerSpec: HybridObject() {
202
185
  return __result
203
186
  }
204
187
 
205
- private external fun initHybrid(): HybridData
188
+ // Default implementation of `HybridObject.toString()`
189
+ override fun toString(): String {
190
+ return "[HybridObject DownloadManager]"
191
+ }
192
+
193
+ // C++ backing class
194
+ @DoNotStrip
195
+ @Keep
196
+ protected open class CxxPart(javaPart: HybridDownloadManagerSpec): HybridObject.CxxPart(javaPart) {
197
+ // C++ JHybridDownloadManagerSpec::CxxPart::initHybrid(...)
198
+ external override fun initHybrid(): HybridData
199
+ }
200
+ override fun createCxxPart(): CxxPart {
201
+ return CxxPart(this)
202
+ }
206
203
 
207
204
  companion object {
208
205
  protected const val TAG = "HybridDownloadManagerSpec"