react-native-audio-browser 0.2.0-next.11 → 0.2.0-next.13

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 (416) hide show
  1. package/README.md +14 -4
  2. package/android/build.gradle +20 -1
  3. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +115 -26
  4. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +262 -188
  5. package/android/src/main/java/com/audiobrowser/browser/BrowserUrlResolution.kt +23 -3
  6. package/android/src/main/java/com/audiobrowser/browser/InertStyleDiagnostic.kt +267 -0
  7. package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +95 -58
  8. package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +68 -26
  9. package/android/src/main/java/com/audiobrowser/browser/StyleResolver.kt +60 -0
  10. package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +19 -7
  11. package/android/src/main/java/com/audiobrowser/extension/TappedTrack.kt +20 -0
  12. package/android/src/main/java/com/audiobrowser/extension/TrackIdentity.kt +15 -0
  13. package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +1 -1
  14. package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +120 -67
  15. package/android/src/main/java/com/audiobrowser/player/NowPlayingUpdater.kt +21 -24
  16. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +109 -74
  17. package/android/src/main/java/com/audiobrowser/player/Player.kt +51 -30
  18. package/android/src/main/java/com/audiobrowser/player/PlayerCapabilitiesExt.kt +2 -15
  19. package/android/src/main/java/com/audiobrowser/player/ShuffleOrderLedBy.kt +30 -0
  20. package/android/src/main/java/com/audiobrowser/util/BrowserPathHelper.kt +44 -40
  21. package/android/src/main/java/com/audiobrowser/util/MediaExtrasBuilder.kt +28 -23
  22. package/android/src/main/java/com/audiobrowser/util/StyleWire.kt +108 -0
  23. package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +52 -53
  24. package/android/src/test/java/com/audiobrowser/TestFixtures.kt +74 -41
  25. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerFavoritesTest.kt +153 -0
  26. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +229 -50
  27. package/android/src/test/java/com/audiobrowser/browser/BrowserUrlResolutionTest.kt +38 -0
  28. package/android/src/test/java/com/audiobrowser/browser/InertStyleDiagnosticTest.kt +277 -0
  29. package/android/src/test/java/com/audiobrowser/browser/JsonArtworkTest.kt +1 -1
  30. package/android/src/test/java/com/audiobrowser/browser/JsonStyleTest.kt +147 -0
  31. package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +128 -53
  32. package/android/src/test/java/com/audiobrowser/browser/StyleResolverTest.kt +154 -0
  33. package/android/src/test/java/com/audiobrowser/extension/TappedTrackTest.kt +43 -0
  34. package/android/src/test/java/com/audiobrowser/extension/TrackIdentityTest.kt +41 -0
  35. package/android/src/test/java/com/audiobrowser/player/CapabilityControlsTest.kt +1 -2
  36. package/android/src/test/java/com/audiobrowser/player/NowPlayingUpdaterTest.kt +42 -2
  37. package/android/src/test/java/com/audiobrowser/player/PlaybackStateStoreTrackJsonTest.kt +55 -0
  38. package/android/src/test/java/com/audiobrowser/player/ShuffleOrderLedByTest.kt +79 -0
  39. package/android/src/test/java/com/audiobrowser/util/BrowserPathHelperTest.kt +41 -16
  40. package/android/src/test/java/com/audiobrowser/util/MediaExtrasBuilderTest.kt +161 -0
  41. package/android/src/test/java/com/audiobrowser/util/TrackFactoryMediaIdTest.kt +7 -7
  42. package/ios/Browser/BrowserConfig.swift +102 -5
  43. package/ios/Browser/BrowserManager+URLResolution.swift +18 -14
  44. package/ios/Browser/BrowserManager.swift +229 -180
  45. package/ios/Browser/BrowserPathHelper.swift +44 -44
  46. package/ios/Browser/InertStyleDiagnostic.swift +279 -0
  47. package/ios/Browser/JsonModels.swift +258 -106
  48. package/ios/Browser/SearchDrillIn.swift +6 -6
  49. package/ios/Browser/SectionPresentation.swift +64 -0
  50. package/ios/Browser/SectionScope.swift +58 -24
  51. package/ios/Browser/StyleResolver.swift +58 -0
  52. package/ios/Browser/TabBarEntries.swift +9 -3
  53. package/ios/Browser/TrackIdTemplate.swift +37 -0
  54. package/ios/CarPlay/CarPlayArtworkResolver.swift +8 -7
  55. package/ios/CarPlay/CarPlayController.swift +227 -85
  56. package/ios/CarPlay/CarPlayImageLoader.swift +38 -18
  57. package/ios/CarPlay/CarPlayListItemFactory.swift +289 -84
  58. package/ios/CarPlay/CarPlayNowPlayingManager.swift +15 -12
  59. package/ios/Extension/Capability+RemoteCommand.swift +1 -1
  60. package/ios/Extension/PlayerCapabilities+Favorite.swift +1 -15
  61. package/ios/Extension/ResolvedTrack+Copying.swift +11 -15
  62. package/ios/Extension/Section+Copying.swift +31 -0
  63. package/ios/Extension/Track+Copying.swift +6 -12
  64. package/ios/Extension/Track+Identity.swift +18 -0
  65. package/ios/Extension/UIApplication+ActiveScene.swift +27 -0
  66. package/ios/Http/HttpClient.swift +8 -2
  67. package/ios/HybridAudioBrowser.swift +166 -45
  68. package/ios/Model/NitroTypeStubs.swift +106 -21
  69. package/ios/Model/PlayerUpdateOptions.swift +7 -0
  70. package/ios/Player/MediaIntentCriteria.swift +13 -5
  71. package/ios/Player/MediaLoader.swift +33 -9
  72. package/ios/Player/NowPlayingUpdater.swift +54 -6
  73. package/ios/Player/PlaybackCoordinator.swift +13 -6
  74. package/ios/Player/PlaybackTimer.swift +8 -2
  75. package/ios/Player/QueueManager.swift +36 -10
  76. package/ios/Player/RetryManager.swift +4 -3
  77. package/ios/Player/ShuffleOrder.swift +23 -0
  78. package/ios/Player/SleepTimerHandling.swift +13 -0
  79. package/ios/RemoteCommand/RemoteCommandController.swift +53 -18
  80. package/ios/Tests/BrowserPathHelperTests.swift +50 -20
  81. package/ios/Tests/CarPlayArtworkResolverTests.swift +24 -41
  82. package/ios/Tests/InertStyleDiagnosticTests.swift +200 -0
  83. package/ios/Tests/JsonModelsTests.swift +150 -1
  84. package/ios/Tests/PlaybackStateStoreTests.swift +4 -3
  85. package/ios/Tests/QueueManagerTests.swift +72 -6
  86. package/ios/Tests/RemoteCommandControllerTests.swift +16 -0
  87. package/ios/Tests/ResolvedTrackCopyingTests.swift +37 -35
  88. package/ios/Tests/SearchDrillInTests.swift +16 -16
  89. package/ios/Tests/SectionPresentationTests.swift +90 -0
  90. package/ios/Tests/SectionScopeTests.swift +87 -55
  91. package/ios/Tests/StyleResolverTests.swift +127 -0
  92. package/ios/Tests/Support/TestTypes.swift +7 -0
  93. package/ios/Tests/TabBarEntriesTests.swift +18 -18
  94. package/ios/Tests/TrackIdTemplateTests.swift +67 -0
  95. package/ios/Tests/TrackIdentityTests.swift +20 -0
  96. package/ios/Tests/TrackSelectorTests.swift +168 -33
  97. package/ios/TrackPlayer.swift +57 -34
  98. package/ios/TrackSelector.swift +45 -30
  99. package/ios/Util/ArtworkImageFetcher.swift +16 -1
  100. package/ios/Util/NetworkMonitor.swift +43 -26
  101. package/ios/Util/SFSymbolRenderer.swift +24 -2
  102. package/ios/Util/SVGProcessor.swift +9 -2
  103. package/lib/commonjs/AudioBrowser.js +11 -0
  104. package/lib/commonjs/AudioBrowser.js.map +1 -1
  105. package/lib/commonjs/features/browser-config.js +11 -8
  106. package/lib/commonjs/features/browser-config.js.map +1 -1
  107. package/lib/commonjs/features/browser.js +2 -2
  108. package/lib/commonjs/features/favorites.js +13 -10
  109. package/lib/commonjs/features/favorites.js.map +1 -1
  110. package/lib/commonjs/features/playback/controls.js +4 -2
  111. package/lib/commonjs/features/playback/controls.js.map +1 -1
  112. package/lib/commonjs/features/playback/progress.js +2 -1
  113. package/lib/commonjs/features/playback/progress.js.map +1 -1
  114. package/lib/commonjs/features/playback/rate.js +8 -1
  115. package/lib/commonjs/features/playback/rate.js.map +1 -1
  116. package/lib/commonjs/features/playback/state.js +2 -3
  117. package/lib/commonjs/features/playback/state.js.map +1 -1
  118. package/lib/commonjs/features/player/options.js.map +1 -1
  119. package/lib/commonjs/features/player/setup.js +3 -1
  120. package/lib/commonjs/features/player/setup.js.map +1 -1
  121. package/lib/commonjs/features/player/validateOptions.js +2 -0
  122. package/lib/commonjs/features/player/validateOptions.js.map +1 -1
  123. package/lib/commonjs/features/queue/activeTrack.js +14 -3
  124. package/lib/commonjs/features/queue/activeTrack.js.map +1 -1
  125. package/lib/commonjs/features/queue/queue.js +11 -4
  126. package/lib/commonjs/features/queue/queue.js.map +1 -1
  127. package/lib/commonjs/utils/LazyNativeEmitter.js +21 -10
  128. package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -1
  129. package/lib/commonjs/utils/NativeUpdatedValue.js +31 -13
  130. package/lib/commonjs/utils/NativeUpdatedValue.js.map +1 -1
  131. package/lib/commonjs/utils/getTrackIdentity.js +24 -0
  132. package/lib/commonjs/utils/getTrackIdentity.js.map +1 -0
  133. package/lib/commonjs/utils/useNativeValueRefreshedBy.js +33 -0
  134. package/lib/commonjs/utils/useNativeValueRefreshedBy.js.map +1 -0
  135. package/lib/commonjs/web/NativeAudioBrowser.js +32 -24
  136. package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
  137. package/lib/commonjs/web/TrackPlayer/QueueManager.js +14 -0
  138. package/lib/commonjs/web/TrackPlayer/QueueManager.js.map +1 -1
  139. package/lib/commonjs/web/browser/BrowserManager.js +144 -87
  140. package/lib/commonjs/web/browser/BrowserManager.js.map +1 -1
  141. package/lib/commonjs/web/browser/FavoriteManager.js +30 -21
  142. package/lib/commonjs/web/browser/FavoriteManager.js.map +1 -1
  143. package/lib/commonjs/web/browser/assertBrowsePageShape.js +2 -2
  144. package/lib/commonjs/web/browser/assertBrowsePageShape.js.map +1 -1
  145. package/lib/commonjs/web/browser/classifyTrackNavigation.js +9 -9
  146. package/lib/commonjs/web/browser/classifyTrackNavigation.js.map +1 -1
  147. package/lib/commonjs/web/browser/sections.js +89 -0
  148. package/lib/commonjs/web/browser/sections.js.map +1 -0
  149. package/lib/commonjs/web/player/NowPlayingManager.js +4 -3
  150. package/lib/commonjs/web/player/NowPlayingManager.js.map +1 -1
  151. package/lib/commonjs/web/util/BrowserPathHelper.js +56 -11
  152. package/lib/commonjs/web/util/BrowserPathHelper.js.map +1 -1
  153. package/lib/module/AudioBrowser.js +1 -0
  154. package/lib/module/AudioBrowser.js.map +1 -1
  155. package/lib/module/features/browser-config.js +11 -8
  156. package/lib/module/features/browser-config.js.map +1 -1
  157. package/lib/module/features/browser.js +2 -2
  158. package/lib/module/features/favorites.js +13 -10
  159. package/lib/module/features/favorites.js.map +1 -1
  160. package/lib/module/features/playback/controls.js +4 -2
  161. package/lib/module/features/playback/controls.js.map +1 -1
  162. package/lib/module/features/playback/progress.js +2 -1
  163. package/lib/module/features/playback/progress.js.map +1 -1
  164. package/lib/module/features/playback/rate.js +8 -1
  165. package/lib/module/features/playback/rate.js.map +1 -1
  166. package/lib/module/features/playback/state.js +2 -3
  167. package/lib/module/features/playback/state.js.map +1 -1
  168. package/lib/module/features/player/options.js.map +1 -1
  169. package/lib/module/features/player/setup.js +3 -1
  170. package/lib/module/features/player/setup.js.map +1 -1
  171. package/lib/module/features/player/validateOptions.js +2 -0
  172. package/lib/module/features/player/validateOptions.js.map +1 -1
  173. package/lib/module/features/queue/activeTrack.js +14 -3
  174. package/lib/module/features/queue/activeTrack.js.map +1 -1
  175. package/lib/module/features/queue/queue.js +11 -4
  176. package/lib/module/features/queue/queue.js.map +1 -1
  177. package/lib/module/utils/LazyNativeEmitter.js +21 -10
  178. package/lib/module/utils/LazyNativeEmitter.js.map +1 -1
  179. package/lib/module/utils/NativeUpdatedValue.js +31 -13
  180. package/lib/module/utils/NativeUpdatedValue.js.map +1 -1
  181. package/lib/module/utils/getTrackIdentity.js +20 -0
  182. package/lib/module/utils/getTrackIdentity.js.map +1 -0
  183. package/lib/module/utils/useNativeValueRefreshedBy.js +29 -0
  184. package/lib/module/utils/useNativeValueRefreshedBy.js.map +1 -0
  185. package/lib/module/web/NativeAudioBrowser.js +32 -24
  186. package/lib/module/web/NativeAudioBrowser.js.map +1 -1
  187. package/lib/module/web/TrackPlayer/QueueManager.js +14 -0
  188. package/lib/module/web/TrackPlayer/QueueManager.js.map +1 -1
  189. package/lib/module/web/browser/BrowserManager.js +144 -87
  190. package/lib/module/web/browser/BrowserManager.js.map +1 -1
  191. package/lib/module/web/browser/FavoriteManager.js +31 -21
  192. package/lib/module/web/browser/FavoriteManager.js.map +1 -1
  193. package/lib/module/web/browser/assertBrowsePageShape.js +2 -2
  194. package/lib/module/web/browser/assertBrowsePageShape.js.map +1 -1
  195. package/lib/module/web/browser/classifyTrackNavigation.js +9 -9
  196. package/lib/module/web/browser/classifyTrackNavigation.js.map +1 -1
  197. package/lib/module/web/browser/sections.js +83 -0
  198. package/lib/module/web/browser/sections.js.map +1 -0
  199. package/lib/module/web/player/NowPlayingManager.js +4 -3
  200. package/lib/module/web/player/NowPlayingManager.js.map +1 -1
  201. package/lib/module/web/util/BrowserPathHelper.js +56 -11
  202. package/lib/module/web/util/BrowserPathHelper.js.map +1 -1
  203. package/lib/typescript/src/AudioBrowser.d.ts +1 -0
  204. package/lib/typescript/src/AudioBrowser.d.ts.map +1 -1
  205. package/lib/typescript/src/features/browser-config.d.ts.map +1 -1
  206. package/lib/typescript/src/features/browser.d.ts +2 -2
  207. package/lib/typescript/src/features/favorites.d.ts +13 -10
  208. package/lib/typescript/src/features/favorites.d.ts.map +1 -1
  209. package/lib/typescript/src/features/playback/controls.d.ts +4 -2
  210. package/lib/typescript/src/features/playback/controls.d.ts.map +1 -1
  211. package/lib/typescript/src/features/playback/progress.d.ts.map +1 -1
  212. package/lib/typescript/src/features/playback/rate.d.ts +8 -1
  213. package/lib/typescript/src/features/playback/rate.d.ts.map +1 -1
  214. package/lib/typescript/src/features/playback/state.d.ts +2 -3
  215. package/lib/typescript/src/features/playback/state.d.ts.map +1 -1
  216. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts +1 -1
  217. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts.map +1 -1
  218. package/lib/typescript/src/features/player/options.d.ts +21 -19
  219. package/lib/typescript/src/features/player/options.d.ts.map +1 -1
  220. package/lib/typescript/src/features/player/setup.d.ts.map +1 -1
  221. package/lib/typescript/src/features/player/validateOptions.d.ts +1 -8
  222. package/lib/typescript/src/features/player/validateOptions.d.ts.map +1 -1
  223. package/lib/typescript/src/features/queue/activeTrack.d.ts +8 -1
  224. package/lib/typescript/src/features/queue/activeTrack.d.ts.map +1 -1
  225. package/lib/typescript/src/features/queue/queue.d.ts +5 -2
  226. package/lib/typescript/src/features/queue/queue.d.ts.map +1 -1
  227. package/lib/typescript/src/types/browser-native.d.ts +2 -2
  228. package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
  229. package/lib/typescript/src/types/browser-nodes.d.ts +361 -126
  230. package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
  231. package/lib/typescript/src/types/browser.d.ts +33 -53
  232. package/lib/typescript/src/types/browser.d.ts.map +1 -1
  233. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts +16 -17
  234. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -1
  235. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts +24 -19
  236. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts.map +1 -1
  237. package/lib/typescript/src/utils/getTrackIdentity.d.ts +18 -0
  238. package/lib/typescript/src/utils/getTrackIdentity.d.ts.map +1 -0
  239. package/lib/typescript/src/utils/useNativeValueRefreshedBy.d.ts +21 -0
  240. package/lib/typescript/src/utils/useNativeValueRefreshedBy.d.ts.map +1 -0
  241. package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +0 -1
  242. package/nitrogen/generated/android/c++/{JFavoritesMatchMode.hpp → JArtworkRendering.hpp} +15 -15
  243. package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +8 -3
  244. package/nitrogen/generated/android/c++/JBrowseResult.hpp +16 -4
  245. package/nitrogen/generated/android/c++/JCarPlayPlayingIndicatorLocation.hpp +58 -0
  246. package/nitrogen/generated/android/c++/JCardImage.hpp +58 -0
  247. package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +8 -3
  248. package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +8 -3
  249. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +8 -3
  250. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +8 -3
  251. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +8 -3
  252. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +8 -3
  253. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +8 -2
  254. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +8 -2
  255. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.hpp +16 -4
  256. package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +8 -3
  257. package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +2 -5
  258. package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +8 -3
  259. package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +15 -3
  260. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +8 -2
  261. package/nitrogen/generated/android/c++/JGridTile.hpp +61 -0
  262. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +33 -14
  263. package/nitrogen/generated/android/c++/JIOSOptions.hpp +9 -3
  264. package/nitrogen/generated/android/c++/JImageShape.hpp +58 -0
  265. package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +8 -3
  266. package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +22 -10
  267. package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +14 -2
  268. package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +10 -7
  269. package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +2 -5
  270. package/nitrogen/generated/android/c++/JNitroIOSUpdateOptions.hpp +9 -3
  271. package/nitrogen/generated/android/c++/JOptions.hpp +2 -5
  272. package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +8 -3
  273. package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +5 -11
  274. package/nitrogen/generated/android/c++/JResolvedTrack.hpp +55 -51
  275. package/nitrogen/generated/android/c++/JSection.hpp +120 -0
  276. package/nitrogen/generated/android/c++/JSectionStyle.hpp +96 -0
  277. package/nitrogen/generated/android/c++/JStyleDisplay.hpp +58 -0
  278. package/nitrogen/generated/android/c++/JTrack.hpp +23 -48
  279. package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +8 -2
  280. package/nitrogen/generated/android/c++/JTrackStyle.hpp +46 -18
  281. package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +16 -4
  282. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoritesMatchMode.kt → ArtworkRendering.kt} +5 -5
  283. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayPlayingIndicatorLocation.kt +23 -0
  284. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CardImage.kt +23 -0
  285. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/GridTile.kt +24 -0
  286. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSOptions.kt +6 -3
  287. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageShape.kt +23 -0
  288. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +5 -5
  289. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroIOSUpdateOptions.kt +6 -3
  290. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +2 -2
  291. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +12 -18
  292. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoriteConfig.kt → Section.kt} +18 -6
  293. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SectionStyle.kt +59 -0
  294. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StyleDisplay.kt +23 -0
  295. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +6 -15
  296. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +35 -5
  297. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +158 -82
  298. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +25 -10
  299. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +25 -10
  300. package/nitrogen/generated/ios/swift/ArtworkRendering.swift +40 -0
  301. package/nitrogen/generated/ios/swift/CarPlayPlayingIndicatorLocation.swift +40 -0
  302. package/nitrogen/generated/ios/swift/CardImage.swift +40 -0
  303. package/nitrogen/generated/ios/swift/GridTile.swift +44 -0
  304. package/nitrogen/generated/ios/swift/IOSOptions.swift +7 -2
  305. package/nitrogen/generated/ios/swift/ImageShape.swift +40 -0
  306. package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +5 -5
  307. package/nitrogen/generated/ios/swift/NitroIOSUpdateOptions.swift +12 -1
  308. package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +8 -27
  309. package/nitrogen/generated/ios/swift/ResolvedTrack.swift +54 -83
  310. package/nitrogen/generated/ios/swift/Section.swift +100 -0
  311. package/nitrogen/generated/ios/swift/SectionStyle.swift +133 -0
  312. package/nitrogen/generated/ios/swift/StyleDisplay.swift +40 -0
  313. package/nitrogen/generated/ios/swift/Track.swift +20 -73
  314. package/nitrogen/generated/ios/swift/TrackStyle.swift +86 -22
  315. package/nitrogen/generated/shared/c++/{FavoritesMatchMode.hpp → ArtworkRendering.hpp} +17 -17
  316. package/nitrogen/generated/shared/c++/CarPlayPlayingIndicatorLocation.hpp +76 -0
  317. package/nitrogen/generated/shared/c++/CardImage.hpp +76 -0
  318. package/nitrogen/generated/shared/c++/GridTile.hpp +80 -0
  319. package/nitrogen/generated/shared/c++/IOSOptions.hpp +9 -2
  320. package/nitrogen/generated/shared/c++/ImageShape.hpp +76 -0
  321. package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +6 -6
  322. package/nitrogen/generated/shared/c++/NitroIOSUpdateOptions.hpp +9 -2
  323. package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +6 -9
  324. package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +30 -38
  325. package/nitrogen/generated/shared/c++/Section.hpp +106 -0
  326. package/nitrogen/generated/shared/c++/SectionStyle.hpp +126 -0
  327. package/nitrogen/generated/shared/c++/StyleDisplay.hpp +76 -0
  328. package/nitrogen/generated/shared/c++/Track.hpp +15 -31
  329. package/nitrogen/generated/shared/c++/TrackStyle.hpp +73 -34
  330. package/package.json +7 -2
  331. package/src/AudioBrowser.ts +1 -0
  332. package/src/features/browser-config.test.ts +21 -6
  333. package/src/features/browser-config.ts +11 -8
  334. package/src/features/browser.test.ts +1 -1
  335. package/src/features/browser.ts +2 -2
  336. package/src/features/favorites.ts +13 -10
  337. package/src/features/hook-wiring.test.ts +63 -15
  338. package/src/features/playback/controls.ts +4 -2
  339. package/src/features/playback/progress.ts +2 -1
  340. package/src/features/playback/rate.ts +8 -1
  341. package/src/features/playback/state.ts +2 -3
  342. package/src/features/playback/trackPlaybackTime.ts +1 -1
  343. package/src/features/player/options.ts +27 -19
  344. package/src/features/player/setup.test.ts +12 -3
  345. package/src/features/player/setup.ts +3 -1
  346. package/src/features/player/validateOptions.ts +2 -0
  347. package/src/features/queue/activeTrack.ts +14 -3
  348. package/src/features/queue/queue.ts +11 -4
  349. package/src/nitro-stub-drift.test.ts +40 -0
  350. package/src/public-surface.test.ts +40 -0
  351. package/src/specs/audio-browser.nitro.ts +4 -3
  352. package/src/style-resolution.test.ts +210 -0
  353. package/src/types/browser-native.ts +2 -2
  354. package/src/types/browser-nodes.ts +377 -135
  355. package/src/types/browser.ts +34 -55
  356. package/src/utils/LazyNativeEmitter.ts +20 -10
  357. package/src/utils/NativeUpdatedValue.ts +29 -13
  358. package/src/utils/getTrackIdentity.ts +20 -0
  359. package/src/utils/useNativeValueRefreshedBy.ts +38 -0
  360. package/src/web/NativeAudioBrowser.ts +37 -22
  361. package/src/web/TrackPlayer/QueueManager.test.ts +29 -0
  362. package/src/web/TrackPlayer/QueueManager.ts +14 -0
  363. package/src/web/browser/BrowserManager.ts +176 -95
  364. package/src/web/browser/FavoriteManager.test.ts +84 -0
  365. package/src/web/browser/FavoriteManager.ts +28 -23
  366. package/src/web/browser/assertBrowsePageShape.test.ts +1 -1
  367. package/src/web/browser/assertBrowsePageShape.ts +5 -3
  368. package/src/web/browser/classifyTrackNavigation.test.ts +10 -8
  369. package/src/web/browser/classifyTrackNavigation.ts +9 -9
  370. package/src/web/browser/parseSearchResponse.test.ts +8 -2
  371. package/src/web/browser/sections.test.ts +91 -0
  372. package/src/web/browser/sections.ts +72 -0
  373. package/src/web/player/NowPlayingManager.ts +4 -3
  374. package/src/web/util/BrowserPathHelper.test.ts +52 -0
  375. package/src/web/util/BrowserPathHelper.ts +61 -13
  376. package/website/guide/android-auto.md +114 -0
  377. package/website/guide/android-certificates.md +409 -0
  378. package/website/guide/artwork.md +255 -0
  379. package/website/guide/audio-output.md +135 -0
  380. package/website/guide/automotive.md +86 -0
  381. package/website/guide/basic-usage.md +151 -0
  382. package/website/guide/battery.md +115 -0
  383. package/website/guide/browser.md +581 -0
  384. package/website/guide/carplay.md +620 -0
  385. package/website/guide/configuration.md +173 -0
  386. package/website/guide/equalizer.md +231 -0
  387. package/website/guide/errors.md +310 -0
  388. package/website/guide/favorites.md +154 -0
  389. package/website/guide/gate.md +143 -0
  390. package/website/guide/getting-started.md +46 -0
  391. package/website/guide/hooks.md +238 -0
  392. package/website/guide/live-streams.md +125 -0
  393. package/website/guide/metadata.md +239 -0
  394. package/website/guide/migrating-from-track-player.md +244 -0
  395. package/website/guide/native-callback-fetch.md +127 -0
  396. package/website/guide/network.md +86 -0
  397. package/website/guide/now-playing.md +175 -0
  398. package/website/guide/playback.md +328 -0
  399. package/website/guide/queue.md +300 -0
  400. package/website/guide/remote-controls.md +256 -0
  401. package/website/guide/search.md +255 -0
  402. package/website/guide/sleep-timer.md +268 -0
  403. package/website/guide/track.md +246 -0
  404. package/ios/CarPlay/ImageRowItem+CarPlay.swift +0 -19
  405. package/nitrogen/generated/android/c++/JFavoriteConfig.hpp +0 -58
  406. package/nitrogen/generated/android/c++/JImageRowItem.hpp +0 -105
  407. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.cpp +0 -26
  408. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.hpp +0 -71
  409. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +0 -68
  410. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_FavoriteConfig.kt +0 -53
  411. package/nitrogen/generated/ios/swift/FavoriteConfig.swift +0 -29
  412. package/nitrogen/generated/ios/swift/FavoritesMatchMode.swift +0 -40
  413. package/nitrogen/generated/ios/swift/ImageRowItem.swift +0 -195
  414. package/nitrogen/generated/ios/swift/Variant_Bool_FavoriteConfig.swift +0 -18
  415. package/nitrogen/generated/shared/c++/FavoriteConfig.hpp +0 -84
  416. package/nitrogen/generated/shared/c++/ImageRowItem.hpp +0 -129
@@ -10,18 +10,24 @@
10
10
  #include <fbjni/fbjni.h>
11
11
  #include "TrackLoadEvent.hpp"
12
12
 
13
+ #include "ArtworkRendering.hpp"
13
14
  #include "ArtworkVariants.hpp"
15
+ #include "CardImage.hpp"
14
16
  #include "HttpMethod.hpp"
15
- #include "ImageRowItem.hpp"
17
+ #include "ImageShape.hpp"
16
18
  #include "ImageSource.hpp"
19
+ #include "JArtworkRendering.hpp"
17
20
  #include "JArtworkVariants.hpp"
21
+ #include "JCardImage.hpp"
18
22
  #include "JHttpMethod.hpp"
19
- #include "JImageRowItem.hpp"
23
+ #include "JImageShape.hpp"
20
24
  #include "JImageSource.hpp"
25
+ #include "JStyleDisplay.hpp"
21
26
  #include "JTrack.hpp"
22
27
  #include "JTrackRequest.hpp"
23
28
  #include "JTrackStyle.hpp"
24
29
  #include "JVariant_String_ArtworkVariants.hpp"
30
+ #include "StyleDisplay.hpp"
25
31
  #include "Track.hpp"
26
32
  #include "TrackRequest.hpp"
27
33
  #include "TrackStyle.hpp"
@@ -10,12 +10,23 @@
10
10
  #include <fbjni/fbjni.h>
11
11
  #include "TrackStyle.hpp"
12
12
 
13
+ #include "ArtworkRendering.hpp"
14
+ #include "CardImage.hpp"
15
+ #include "ImageShape.hpp"
16
+ #include "JArtworkRendering.hpp"
17
+ #include "JCardImage.hpp"
18
+ #include "JImageShape.hpp"
19
+ #include "JStyleDisplay.hpp"
20
+ #include "StyleDisplay.hpp"
21
+ #include <optional>
22
+ #include <string>
23
+
13
24
  namespace margelo::nitro::audiobrowser {
14
25
 
15
26
  using namespace facebook;
16
27
 
17
28
  /**
18
- * The C++ JNI bridge between the C++ enum "TrackStyle" and the the Kotlin enum "TrackStyle".
29
+ * The C++ JNI bridge between the C++ struct "TrackStyle" and the the Kotlin data class "TrackStyle".
19
30
  */
20
31
  struct JTrackStyle final: public jni::JavaClass<JTrackStyle> {
21
32
  public:
@@ -23,35 +34,52 @@ namespace margelo::nitro::audiobrowser {
23
34
 
24
35
  public:
25
36
  /**
26
- * Convert this Java/Kotlin-based enum to the C++ enum TrackStyle.
37
+ * Convert this Java/Kotlin-based struct to the C++ struct TrackStyle by copying all values to C++.
27
38
  */
28
39
  [[maybe_unused]]
29
40
  [[nodiscard]]
30
41
  TrackStyle toCpp() const {
31
42
  static const auto clazz = javaClassStatic();
32
- static const auto fieldOrdinal = clazz->getField<int>("value");
33
- int ordinal = this->getFieldValue(fieldOrdinal);
34
- return static_cast<TrackStyle>(ordinal);
43
+ static const auto fieldDisplay = clazz->getField<JStyleDisplay>("display");
44
+ jni::local_ref<JStyleDisplay> display = this->getFieldValue(fieldDisplay);
45
+ static const auto fieldArtworkRendering = clazz->getField<JArtworkRendering>("artworkRendering");
46
+ jni::local_ref<JArtworkRendering> artworkRendering = this->getFieldValue(fieldArtworkRendering);
47
+ static const auto fieldImageShape = clazz->getField<JImageShape>("imageShape");
48
+ jni::local_ref<JImageShape> imageShape = this->getFieldValue(fieldImageShape);
49
+ static const auto fieldAccessorySymbol = clazz->getField<jni::JString>("accessorySymbol");
50
+ jni::local_ref<jni::JString> accessorySymbol = this->getFieldValue(fieldAccessorySymbol);
51
+ static const auto fieldCardTint = clazz->getField<jni::JString>("cardTint");
52
+ jni::local_ref<jni::JString> cardTint = this->getFieldValue(fieldCardTint);
53
+ static const auto fieldCardImage = clazz->getField<JCardImage>("cardImage");
54
+ jni::local_ref<JCardImage> cardImage = this->getFieldValue(fieldCardImage);
55
+ return TrackStyle(
56
+ display != nullptr ? std::make_optional(display->toCpp()) : std::nullopt,
57
+ artworkRendering != nullptr ? std::make_optional(artworkRendering->toCpp()) : std::nullopt,
58
+ imageShape != nullptr ? std::make_optional(imageShape->toCpp()) : std::nullopt,
59
+ accessorySymbol != nullptr ? std::make_optional(accessorySymbol->toStdString()) : std::nullopt,
60
+ cardTint != nullptr ? std::make_optional(cardTint->toStdString()) : std::nullopt,
61
+ cardImage != nullptr ? std::make_optional(cardImage->toCpp()) : std::nullopt
62
+ );
35
63
  }
36
64
 
37
65
  public:
38
66
  /**
39
- * Create a Java/Kotlin-based enum with the given C++ enum's value.
67
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
40
68
  */
41
69
  [[maybe_unused]]
42
- static jni::alias_ref<JTrackStyle> fromCpp(TrackStyle value) {
70
+ static jni::local_ref<JTrackStyle::javaobject> fromCpp(const TrackStyle& value) {
71
+ using JSignature = JTrackStyle(jni::alias_ref<JStyleDisplay>, jni::alias_ref<JArtworkRendering>, jni::alias_ref<JImageShape>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JCardImage>);
43
72
  static const auto clazz = javaClassStatic();
44
- switch (value) {
45
- case TrackStyle::LIST:
46
- static const auto fieldLIST = clazz->getStaticField<JTrackStyle>("LIST");
47
- return clazz->getStaticFieldValue(fieldLIST);
48
- case TrackStyle::GRID:
49
- static const auto fieldGRID = clazz->getStaticField<JTrackStyle>("GRID");
50
- return clazz->getStaticFieldValue(fieldGRID);
51
- default:
52
- std::string stringValue = std::to_string(static_cast<int>(value));
53
- throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
54
- }
73
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
74
+ return create(
75
+ clazz,
76
+ value.display.has_value() ? JStyleDisplay::fromCpp(value.display.value()) : nullptr,
77
+ value.artworkRendering.has_value() ? JArtworkRendering::fromCpp(value.artworkRendering.value()) : nullptr,
78
+ value.imageShape.has_value() ? JImageShape::fromCpp(value.imageShape.value()) : nullptr,
79
+ value.accessorySymbol.has_value() ? jni::make_jstring(value.accessorySymbol.value()) : nullptr,
80
+ value.cardTint.has_value() ? jni::make_jstring(value.cardTint.value()) : nullptr,
81
+ value.cardImage.has_value() ? JCardImage::fromCpp(value.cardImage.value()) : nullptr
82
+ );
55
83
  }
56
84
  };
57
85
 
@@ -16,9 +16,23 @@
16
16
  #include <NitroModules/Promise.hpp>
17
17
  #include "JResolvedTrack.hpp"
18
18
  #include <string>
19
- #include "Track.hpp"
20
- #include <vector>
19
+ #include "SectionStyle.hpp"
21
20
  #include <optional>
21
+ #include "JSectionStyle.hpp"
22
+ #include "GridTile.hpp"
23
+ #include "JGridTile.hpp"
24
+ #include "StyleDisplay.hpp"
25
+ #include "JStyleDisplay.hpp"
26
+ #include "ArtworkRendering.hpp"
27
+ #include "JArtworkRendering.hpp"
28
+ #include "ImageShape.hpp"
29
+ #include "JImageShape.hpp"
30
+ #include "CardImage.hpp"
31
+ #include "JCardImage.hpp"
32
+ #include "Section.hpp"
33
+ #include <vector>
34
+ #include "JSection.hpp"
35
+ #include "Track.hpp"
22
36
  #include "JTrack.hpp"
23
37
  #include "ArtworkVariants.hpp"
24
38
  #include "JVariant_String_ArtworkVariants.hpp"
@@ -32,8 +46,6 @@
32
46
  #include "JTrackRequest.hpp"
33
47
  #include "TrackStyle.hpp"
34
48
  #include "JTrackStyle.hpp"
35
- #include "ImageRowItem.hpp"
36
- #include "JImageRowItem.hpp"
37
49
  #include "CarPlaySiriListButtonPosition.hpp"
38
50
  #include "JCarPlaySiriListButtonPosition.hpp"
39
51
  #include "JBrowseError.hpp"
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// FavoritesMatchMode.kt
2
+ /// ArtworkRendering.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
5
  /// Copyright © Marc Rousavy @ Margelo
@@ -11,13 +11,13 @@ import androidx.annotation.Keep
11
11
  import com.facebook.proguard.annotations.DoNotStrip
12
12
 
13
13
  /**
14
- * Represents the JavaScript enum/union "FavoritesMatchMode".
14
+ * Represents the JavaScript enum/union "ArtworkRendering".
15
15
  */
16
16
  @DoNotStrip
17
17
  @Keep
18
- enum class FavoritesMatchMode(@DoNotStrip @Keep val value: Int) {
19
- EXACT(0),
20
- PARTIAL(1);
18
+ enum class ArtworkRendering(@DoNotStrip @Keep val value: Int) {
19
+ ORIGINAL(0),
20
+ STENCIL(1);
21
21
 
22
22
  companion object
23
23
  }
@@ -0,0 +1,23 @@
1
+ ///
2
+ /// CarPlayPlayingIndicatorLocation.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.audiobrowser
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+ /**
14
+ * Represents the JavaScript enum/union "CarPlayPlayingIndicatorLocation".
15
+ */
16
+ @DoNotStrip
17
+ @Keep
18
+ enum class CarPlayPlayingIndicatorLocation(@DoNotStrip @Keep val value: Int) {
19
+ LEADING(0),
20
+ TRAILING(1);
21
+
22
+ companion object
23
+ }
@@ -0,0 +1,23 @@
1
+ ///
2
+ /// CardImage.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.audiobrowser
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+ /**
14
+ * Represents the JavaScript enum/union "CardImage".
15
+ */
16
+ @DoNotStrip
17
+ @Keep
18
+ enum class CardImage(@DoNotStrip @Keep val value: Int) {
19
+ NORMAL(0),
20
+ BACKGROUND(1);
21
+
22
+ companion object
23
+ }
@@ -0,0 +1,24 @@
1
+ ///
2
+ /// GridTile.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.audiobrowser
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+ /**
14
+ * Represents the JavaScript enum/union "GridTile".
15
+ */
16
+ @DoNotStrip
17
+ @Keep
18
+ enum class GridTile(@DoNotStrip @Keep val value: Int) {
19
+ PLAIN(0),
20
+ CARD(1),
21
+ CONDENSED(2);
22
+
23
+ companion object
24
+ }
@@ -25,7 +25,10 @@ data class IOSOptions(
25
25
  val carPlayUpNextButton: Boolean,
26
26
  @DoNotStrip
27
27
  @Keep
28
- val carPlayNowPlayingButtons: Array<CarPlayNowPlayingButton>
28
+ val carPlayNowPlayingButtons: Array<CarPlayNowPlayingButton>,
29
+ @DoNotStrip
30
+ @Keep
31
+ val carPlayPlayingIndicatorLocation: CarPlayPlayingIndicatorLocation
29
32
  ) {
30
33
  /* primary constructor */
31
34
 
@@ -37,8 +40,8 @@ data class IOSOptions(
37
40
  @Keep
38
41
  @Suppress("unused")
39
42
  @JvmStatic
40
- private fun fromCpp(playbackRates: DoubleArray, carPlayUpNextButton: Boolean, carPlayNowPlayingButtons: Array<CarPlayNowPlayingButton>): IOSOptions {
41
- return IOSOptions(playbackRates, carPlayUpNextButton, carPlayNowPlayingButtons)
43
+ private fun fromCpp(playbackRates: DoubleArray, carPlayUpNextButton: Boolean, carPlayNowPlayingButtons: Array<CarPlayNowPlayingButton>, carPlayPlayingIndicatorLocation: CarPlayPlayingIndicatorLocation): IOSOptions {
44
+ return IOSOptions(playbackRates, carPlayUpNextButton, carPlayNowPlayingButtons, carPlayPlayingIndicatorLocation)
42
45
  }
43
46
  }
44
47
  }
@@ -0,0 +1,23 @@
1
+ ///
2
+ /// ImageShape.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.audiobrowser
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+ /**
14
+ * Represents the JavaScript enum/union "ImageShape".
15
+ */
16
+ @DoNotStrip
17
+ @Keep
18
+ enum class ImageShape(@DoNotStrip @Keep val value: Int) {
19
+ CIRCULAR(0),
20
+ ROUNDED_RECTANGLE(1);
21
+
22
+ companion object
23
+ }
@@ -58,7 +58,7 @@ data class NativeBrowserConfiguration(
58
58
  val carPlayLoadingTitle: String?,
59
59
  @DoNotStrip
60
60
  @Keep
61
- val resolveAlbumUrl: Func_std__shared_ptr_Promise_std__optional_std__string____Track?,
61
+ val resolveAlbumPath: Func_std__shared_ptr_Promise_std__optional_std__string____Track?,
62
62
  @DoNotStrip
63
63
  @Keep
64
64
  val formatNavigationError: Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams?
@@ -66,8 +66,8 @@ data class NativeBrowserConfiguration(
66
66
  /**
67
67
  * Create a new instance of NativeBrowserConfiguration from Kotlin
68
68
  */
69
- constructor(path: String?, request: TransformableRequestConfig?, requestResolver: (() -> Promise<Promise<TransformableRequestConfig>>)?, browse: TransformableRequestConfig?, browseResolver: (() -> Promise<Promise<TransformableRequestConfig>>)?, media: MediaRequestConfig?, artwork: ArtworkRequestConfig?, nowPlayingArtwork: ArtworkRequestConfig?, routes: Array<NativeRouteEntry>?, singleTrack: Boolean?, handleTrackLoad: ((event: TrackLoadEvent) -> Promise<Promise<Unit>>)?, androidControllerOfflineError: Boolean?, carPlayLoadingTitle: String?, resolveAlbumUrl: ((track: Track) -> Promise<String?>)?, formatNavigationError: ((params: FormatNavigationErrorParams) -> Promise<FormattedNavigationError?>)?):
70
- this(path, request, requestResolver?.let { Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig_____java(it) }, browse, browseResolver?.let { Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig_____java(it) }, media, artwork, nowPlayingArtwork, routes, singleTrack, handleTrackLoad?.let { Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent_java(it) }, androidControllerOfflineError, carPlayLoadingTitle, resolveAlbumUrl?.let { Func_std__shared_ptr_Promise_std__optional_std__string____Track_java(it) }, formatNavigationError?.let { Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams_java(it) })
69
+ constructor(path: String?, request: TransformableRequestConfig?, requestResolver: (() -> Promise<Promise<TransformableRequestConfig>>)?, browse: TransformableRequestConfig?, browseResolver: (() -> Promise<Promise<TransformableRequestConfig>>)?, media: MediaRequestConfig?, artwork: ArtworkRequestConfig?, nowPlayingArtwork: ArtworkRequestConfig?, routes: Array<NativeRouteEntry>?, singleTrack: Boolean?, handleTrackLoad: ((event: TrackLoadEvent) -> Promise<Promise<Unit>>)?, androidControllerOfflineError: Boolean?, carPlayLoadingTitle: String?, resolveAlbumPath: ((track: Track) -> Promise<String?>)?, formatNavigationError: ((params: FormatNavigationErrorParams) -> Promise<FormattedNavigationError?>)?):
70
+ this(path, request, requestResolver?.let { Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig_____java(it) }, browse, browseResolver?.let { Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig_____java(it) }, media, artwork, nowPlayingArtwork, routes, singleTrack, handleTrackLoad?.let { Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent_java(it) }, androidControllerOfflineError, carPlayLoadingTitle, resolveAlbumPath?.let { Func_std__shared_ptr_Promise_std__optional_std__string____Track_java(it) }, formatNavigationError?.let { Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams_java(it) })
71
71
 
72
72
  companion object {
73
73
  /**
@@ -77,8 +77,8 @@ data class NativeBrowserConfiguration(
77
77
  @Keep
78
78
  @Suppress("unused")
79
79
  @JvmStatic
80
- private fun fromCpp(path: String?, request: TransformableRequestConfig?, requestResolver: Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____?, browse: TransformableRequestConfig?, browseResolver: Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____?, media: MediaRequestConfig?, artwork: ArtworkRequestConfig?, nowPlayingArtwork: ArtworkRequestConfig?, routes: Array<NativeRouteEntry>?, singleTrack: Boolean?, handleTrackLoad: Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent?, androidControllerOfflineError: Boolean?, carPlayLoadingTitle: String?, resolveAlbumUrl: Func_std__shared_ptr_Promise_std__optional_std__string____Track?, formatNavigationError: Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams?): NativeBrowserConfiguration {
81
- return NativeBrowserConfiguration(path, request, requestResolver, browse, browseResolver, media, artwork, nowPlayingArtwork, routes, singleTrack, handleTrackLoad, androidControllerOfflineError, carPlayLoadingTitle, resolveAlbumUrl, formatNavigationError)
80
+ private fun fromCpp(path: String?, request: TransformableRequestConfig?, requestResolver: Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____?, browse: TransformableRequestConfig?, browseResolver: Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____?, media: MediaRequestConfig?, artwork: ArtworkRequestConfig?, nowPlayingArtwork: ArtworkRequestConfig?, routes: Array<NativeRouteEntry>?, singleTrack: Boolean?, handleTrackLoad: Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent?, androidControllerOfflineError: Boolean?, carPlayLoadingTitle: String?, resolveAlbumPath: Func_std__shared_ptr_Promise_std__optional_std__string____Track?, formatNavigationError: Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams?): NativeBrowserConfiguration {
81
+ return NativeBrowserConfiguration(path, request, requestResolver, browse, browseResolver, media, artwork, nowPlayingArtwork, routes, singleTrack, handleTrackLoad, androidControllerOfflineError, carPlayLoadingTitle, resolveAlbumPath, formatNavigationError)
82
82
  }
83
83
  }
84
84
  }
@@ -25,7 +25,10 @@ data class NitroIOSUpdateOptions(
25
25
  val carPlayUpNextButton: Boolean?,
26
26
  @DoNotStrip
27
27
  @Keep
28
- val carPlayNowPlayingButtons: Array<CarPlayNowPlayingButton>?
28
+ val carPlayNowPlayingButtons: Array<CarPlayNowPlayingButton>?,
29
+ @DoNotStrip
30
+ @Keep
31
+ val carPlayPlayingIndicatorLocation: CarPlayPlayingIndicatorLocation?
29
32
  ) {
30
33
  /* primary constructor */
31
34
 
@@ -37,8 +40,8 @@ data class NitroIOSUpdateOptions(
37
40
  @Keep
38
41
  @Suppress("unused")
39
42
  @JvmStatic
40
- private fun fromCpp(playbackRates: DoubleArray?, carPlayUpNextButton: Boolean?, carPlayNowPlayingButtons: Array<CarPlayNowPlayingButton>?): NitroIOSUpdateOptions {
41
- return NitroIOSUpdateOptions(playbackRates, carPlayUpNextButton, carPlayNowPlayingButtons)
43
+ private fun fromCpp(playbackRates: DoubleArray?, carPlayUpNextButton: Boolean?, carPlayNowPlayingButtons: Array<CarPlayNowPlayingButton>?, carPlayPlayingIndicatorLocation: CarPlayPlayingIndicatorLocation?): NitroIOSUpdateOptions {
44
+ return NitroIOSUpdateOptions(playbackRates, carPlayUpNextButton, carPlayNowPlayingButtons, carPlayPlayingIndicatorLocation)
42
45
  }
43
46
  }
44
47
  }
@@ -43,7 +43,7 @@ data class PlayerCapabilities(
43
43
  val jumpBackward: Boolean?,
44
44
  @DoNotStrip
45
45
  @Keep
46
- val favorite: Variant_Boolean_FavoriteConfig?,
46
+ val favorite: Boolean?,
47
47
  @DoNotStrip
48
48
  @Keep
49
49
  val shuffleMode: Boolean?,
@@ -64,7 +64,7 @@ data class PlayerCapabilities(
64
64
  @Keep
65
65
  @Suppress("unused")
66
66
  @JvmStatic
67
- private fun fromCpp(play: Boolean?, pause: Boolean?, stop: Boolean?, seekTo: Boolean?, skipToNext: Boolean?, skipToPrevious: Boolean?, jumpForward: Boolean?, jumpBackward: Boolean?, favorite: Variant_Boolean_FavoriteConfig?, shuffleMode: Boolean?, repeatMode: Boolean?, playbackRate: Boolean?): PlayerCapabilities {
67
+ private fun fromCpp(play: Boolean?, pause: Boolean?, stop: Boolean?, seekTo: Boolean?, skipToNext: Boolean?, skipToPrevious: Boolean?, jumpForward: Boolean?, jumpBackward: Boolean?, favorite: Boolean?, shuffleMode: Boolean?, repeatMode: Boolean?, playbackRate: Boolean?): PlayerCapabilities {
68
68
  return PlayerCapabilities(play, pause, stop, seekTo, skipToNext, skipToPrevious, jumpForward, jumpBackward, favorite, shuffleMode, repeatMode, playbackRate)
69
69
  }
70
70
  }
@@ -19,7 +19,13 @@ import com.facebook.proguard.annotations.DoNotStrip
19
19
  data class ResolvedTrack(
20
20
  @DoNotStrip
21
21
  @Keep
22
- val url: String,
22
+ val path: String,
23
+ @DoNotStrip
24
+ @Keep
25
+ val style: SectionStyle?,
26
+ @DoNotStrip
27
+ @Keep
28
+ val sections: Array<Section>?,
23
29
  @DoNotStrip
24
30
  @Keep
25
31
  val children: Array<Track>?,
@@ -43,9 +49,6 @@ data class ResolvedTrack(
43
49
  val request: TrackRequest?,
44
50
  @DoNotStrip
45
51
  @Keep
46
- val artworkCarPlayTinted: Boolean?,
47
- @DoNotStrip
48
- @Keep
49
52
  val title: String,
50
53
  @DoNotStrip
51
54
  @Keep
@@ -55,7 +58,7 @@ data class ResolvedTrack(
55
58
  val artist: String?,
56
59
  @DoNotStrip
57
60
  @Keep
58
- val albumUrl: String?,
61
+ val albumPath: String?,
59
62
  @DoNotStrip
60
63
  @Keep
61
64
  val album: String?,
@@ -70,22 +73,13 @@ data class ResolvedTrack(
70
73
  val duration: Double?,
71
74
  @DoNotStrip
72
75
  @Keep
73
- val style: TrackStyle?,
74
- @DoNotStrip
75
- @Keep
76
- val childrenStyle: TrackStyle?,
76
+ val disabled: Boolean?,
77
77
  @DoNotStrip
78
78
  @Keep
79
79
  val favorited: Boolean?,
80
80
  @DoNotStrip
81
81
  @Keep
82
- val groupTitle: String?,
83
- @DoNotStrip
84
- @Keep
85
- val live: Boolean?,
86
- @DoNotStrip
87
- @Keep
88
- val imageRow: Array<ImageRowItem>?
82
+ val live: Boolean?
89
83
  ) {
90
84
  /* primary constructor */
91
85
 
@@ -97,8 +91,8 @@ data class ResolvedTrack(
97
91
  @Keep
98
92
  @Suppress("unused")
99
93
  @JvmStatic
100
- private fun fromCpp(url: String, children: Array<Track>?, carPlaySiriListButton: CarPlaySiriListButtonPosition?, id: String?, src: String?, artwork: Variant_String_ArtworkVariants?, artworkSource: ImageSource?, request: TrackRequest?, artworkCarPlayTinted: Boolean?, title: String, subtitle: String?, artist: String?, albumUrl: String?, album: String?, description: String?, genre: String?, duration: Double?, style: TrackStyle?, childrenStyle: TrackStyle?, favorited: Boolean?, groupTitle: String?, live: Boolean?, imageRow: Array<ImageRowItem>?): ResolvedTrack {
101
- return ResolvedTrack(url, children, carPlaySiriListButton, id, src, artwork, artworkSource, request, artworkCarPlayTinted, title, subtitle, artist, albumUrl, album, description, genre, duration, style, childrenStyle, favorited, groupTitle, live, imageRow)
94
+ private fun fromCpp(path: String, style: SectionStyle?, sections: Array<Section>?, children: Array<Track>?, carPlaySiriListButton: CarPlaySiriListButtonPosition?, id: String?, src: String?, artwork: Variant_String_ArtworkVariants?, artworkSource: ImageSource?, request: TrackRequest?, title: String, subtitle: String?, artist: String?, albumPath: String?, album: String?, description: String?, genre: String?, duration: Double?, disabled: Boolean?, favorited: Boolean?, live: Boolean?): ResolvedTrack {
95
+ return ResolvedTrack(path, style, sections, children, carPlaySiriListButton, id, src, artwork, artworkSource, request, title, subtitle, artist, albumPath, album, description, genre, duration, disabled, favorited, live)
102
96
  }
103
97
  }
104
98
  }
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// FavoriteConfig.kt
2
+ /// Section.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
5
  /// Copyright © Marc Rousavy @ Margelo
@@ -12,14 +12,26 @@ import com.facebook.proguard.annotations.DoNotStrip
12
12
 
13
13
 
14
14
  /**
15
- * Represents the JavaScript object/struct "FavoriteConfig".
15
+ * Represents the JavaScript object/struct "Section".
16
16
  */
17
17
  @DoNotStrip
18
18
  @Keep
19
- data class FavoriteConfig(
19
+ data class Section(
20
20
  @DoNotStrip
21
21
  @Keep
22
- val match: FavoritesMatchMode
22
+ val title: String?,
23
+ @DoNotStrip
24
+ @Keep
25
+ val subtitle: String?,
26
+ @DoNotStrip
27
+ @Keep
28
+ val style: SectionStyle?,
29
+ @DoNotStrip
30
+ @Keep
31
+ val path: String?,
32
+ @DoNotStrip
33
+ @Keep
34
+ val children: Array<Track>
23
35
  ) {
24
36
  /* primary constructor */
25
37
 
@@ -31,8 +43,8 @@ data class FavoriteConfig(
31
43
  @Keep
32
44
  @Suppress("unused")
33
45
  @JvmStatic
34
- private fun fromCpp(match: FavoritesMatchMode): FavoriteConfig {
35
- return FavoriteConfig(match)
46
+ private fun fromCpp(title: String?, subtitle: String?, style: SectionStyle?, path: String?, children: Array<Track>): Section {
47
+ return Section(title, subtitle, style, path, children)
36
48
  }
37
49
  }
38
50
  }
@@ -0,0 +1,59 @@
1
+ ///
2
+ /// SectionStyle.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.audiobrowser
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+
14
+ /**
15
+ * Represents the JavaScript object/struct "SectionStyle".
16
+ */
17
+ @DoNotStrip
18
+ @Keep
19
+ data class SectionStyle(
20
+ @DoNotStrip
21
+ @Keep
22
+ val gridWrap: Boolean?,
23
+ @DoNotStrip
24
+ @Keep
25
+ val gridTile: GridTile?,
26
+ @DoNotStrip
27
+ @Keep
28
+ val display: StyleDisplay?,
29
+ @DoNotStrip
30
+ @Keep
31
+ val artworkRendering: ArtworkRendering?,
32
+ @DoNotStrip
33
+ @Keep
34
+ val imageShape: ImageShape?,
35
+ @DoNotStrip
36
+ @Keep
37
+ val accessorySymbol: String?,
38
+ @DoNotStrip
39
+ @Keep
40
+ val cardTint: String?,
41
+ @DoNotStrip
42
+ @Keep
43
+ val cardImage: CardImage?
44
+ ) {
45
+ /* primary constructor */
46
+
47
+ companion object {
48
+ /**
49
+ * Constructor called from C++
50
+ */
51
+ @DoNotStrip
52
+ @Keep
53
+ @Suppress("unused")
54
+ @JvmStatic
55
+ private fun fromCpp(gridWrap: Boolean?, gridTile: GridTile?, display: StyleDisplay?, artworkRendering: ArtworkRendering?, imageShape: ImageShape?, accessorySymbol: String?, cardTint: String?, cardImage: CardImage?): SectionStyle {
56
+ return SectionStyle(gridWrap, gridTile, display, artworkRendering, imageShape, accessorySymbol, cardTint, cardImage)
57
+ }
58
+ }
59
+ }
@@ -0,0 +1,23 @@
1
+ ///
2
+ /// StyleDisplay.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.audiobrowser
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+
13
+ /**
14
+ * Represents the JavaScript enum/union "StyleDisplay".
15
+ */
16
+ @DoNotStrip
17
+ @Keep
18
+ enum class StyleDisplay(@DoNotStrip @Keep val value: Int) {
19
+ LIST(0),
20
+ GRID(1);
21
+
22
+ companion object
23
+ }
@@ -22,7 +22,7 @@ data class Track(
22
22
  val id: String?,
23
23
  @DoNotStrip
24
24
  @Keep
25
- val url: String?,
25
+ val path: String?,
26
26
  @DoNotStrip
27
27
  @Keep
28
28
  val src: String?,
@@ -37,9 +37,6 @@ data class Track(
37
37
  val request: TrackRequest?,
38
38
  @DoNotStrip
39
39
  @Keep
40
- val artworkCarPlayTinted: Boolean?,
41
- @DoNotStrip
42
- @Keep
43
40
  val title: String,
44
41
  @DoNotStrip
45
42
  @Keep
@@ -49,7 +46,7 @@ data class Track(
49
46
  val artist: String?,
50
47
  @DoNotStrip
51
48
  @Keep
52
- val albumUrl: String?,
49
+ val albumPath: String?,
53
50
  @DoNotStrip
54
51
  @Keep
55
52
  val album: String?,
@@ -67,19 +64,13 @@ data class Track(
67
64
  val style: TrackStyle?,
68
65
  @DoNotStrip
69
66
  @Keep
70
- val childrenStyle: TrackStyle?,
67
+ val disabled: Boolean?,
71
68
  @DoNotStrip
72
69
  @Keep
73
70
  val favorited: Boolean?,
74
71
  @DoNotStrip
75
72
  @Keep
76
- val groupTitle: String?,
77
- @DoNotStrip
78
- @Keep
79
- val live: Boolean?,
80
- @DoNotStrip
81
- @Keep
82
- val imageRow: Array<ImageRowItem>?
73
+ val live: Boolean?
83
74
  ) {
84
75
  /* primary constructor */
85
76
 
@@ -91,8 +82,8 @@ data class Track(
91
82
  @Keep
92
83
  @Suppress("unused")
93
84
  @JvmStatic
94
- private fun fromCpp(id: String?, url: String?, src: String?, artwork: Variant_String_ArtworkVariants?, artworkSource: ImageSource?, request: TrackRequest?, artworkCarPlayTinted: Boolean?, title: String, subtitle: String?, artist: String?, albumUrl: String?, album: String?, description: String?, genre: String?, duration: Double?, style: TrackStyle?, childrenStyle: TrackStyle?, favorited: Boolean?, groupTitle: String?, live: Boolean?, imageRow: Array<ImageRowItem>?): Track {
95
- return Track(id, url, src, artwork, artworkSource, request, artworkCarPlayTinted, title, subtitle, artist, albumUrl, album, description, genre, duration, style, childrenStyle, favorited, groupTitle, live, imageRow)
85
+ private fun fromCpp(id: String?, path: String?, src: String?, artwork: Variant_String_ArtworkVariants?, artworkSource: ImageSource?, request: TrackRequest?, title: String, subtitle: String?, artist: String?, albumPath: String?, album: String?, description: String?, genre: String?, duration: Double?, style: TrackStyle?, disabled: Boolean?, favorited: Boolean?, live: Boolean?): Track {
86
+ return Track(id, path, src, artwork, artworkSource, request, title, subtitle, artist, albumPath, album, description, genre, duration, style, disabled, favorited, live)
96
87
  }
97
88
  }
98
89
  }