react-native-audio-browser 0.2.0-next.10 → 0.2.0-next.12

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 (345) hide show
  1. package/README.md +4 -4
  2. package/android/build.gradle +6 -5
  3. package/android/gradle.properties +1 -1
  4. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +110 -25
  5. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +254 -188
  6. package/android/src/main/java/com/audiobrowser/browser/BrowserUrlResolution.kt +23 -3
  7. package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +77 -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 +49 -0
  10. package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +9 -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/player/MediaSessionCallback.kt +120 -67
  14. package/android/src/main/java/com/audiobrowser/player/NowPlayingUpdater.kt +21 -24
  15. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +93 -73
  16. package/android/src/main/java/com/audiobrowser/player/Player.kt +48 -30
  17. package/android/src/main/java/com/audiobrowser/player/PlayerCapabilitiesExt.kt +2 -15
  18. package/android/src/main/java/com/audiobrowser/tls/AiaCertChaser.kt +46 -5
  19. package/android/src/main/java/com/audiobrowser/tls/AiaChasingExtendedTrustManager.kt +86 -27
  20. package/android/src/main/java/com/audiobrowser/tls/AiaChasingTrustManager.kt +58 -14
  21. package/android/src/main/java/com/audiobrowser/tls/AiaTls.kt +20 -6
  22. package/android/src/main/java/com/audiobrowser/tls/CachingCertificateFetcher.kt +249 -86
  23. package/android/src/main/java/com/audiobrowser/util/BrowserPathHelper.kt +44 -40
  24. package/android/src/main/java/com/audiobrowser/util/MediaExtrasBuilder.kt +28 -23
  25. package/android/src/main/java/com/audiobrowser/util/StyleWire.kt +35 -0
  26. package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +45 -53
  27. package/android/src/test/java/com/audiobrowser/TestFixtures.kt +69 -30
  28. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerFavoritesTest.kt +153 -0
  29. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerLayerResolutionTest.kt +6 -0
  30. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +345 -8
  31. package/android/src/test/java/com/audiobrowser/browser/BrowserUrlResolutionTest.kt +38 -0
  32. package/android/src/test/java/com/audiobrowser/browser/JsonArtworkTest.kt +1 -1
  33. package/android/src/test/java/com/audiobrowser/browser/JsonStyleTest.kt +91 -0
  34. package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +128 -53
  35. package/android/src/test/java/com/audiobrowser/browser/StyleResolverTest.kt +87 -0
  36. package/android/src/test/java/com/audiobrowser/extension/TappedTrackTest.kt +43 -0
  37. package/android/src/test/java/com/audiobrowser/extension/TrackIdentityTest.kt +41 -0
  38. package/android/src/test/java/com/audiobrowser/player/CapabilityControlsTest.kt +1 -2
  39. package/android/src/test/java/com/audiobrowser/player/NowPlayingUpdaterTest.kt +42 -2
  40. package/android/src/test/java/com/audiobrowser/player/PlaybackStateStoreTrackJsonTest.kt +55 -0
  41. package/android/src/test/java/com/audiobrowser/tls/AiaCertChaserTest.kt +152 -8
  42. package/android/src/test/java/com/audiobrowser/tls/AiaChasingTrustManagerTest.kt +218 -10
  43. package/android/src/test/java/com/audiobrowser/tls/CachingCertificateFetcherCallSiteTest.kt +322 -0
  44. package/android/src/test/java/com/audiobrowser/util/BrowserPathHelperTest.kt +41 -16
  45. package/android/src/test/java/com/audiobrowser/util/MediaExtrasBuilderTest.kt +161 -0
  46. package/android/src/test/java/com/audiobrowser/util/TrackFactoryMediaIdTest.kt +7 -7
  47. package/ios/Browser/BrowserConfig.swift +102 -5
  48. package/ios/Browser/BrowserManager+URLResolution.swift +18 -14
  49. package/ios/Browser/BrowserManager.swift +131 -143
  50. package/ios/Browser/BrowserPathHelper.swift +44 -44
  51. package/ios/Browser/JsonModels.swift +187 -106
  52. package/ios/Browser/SearchDrillIn.swift +6 -6
  53. package/ios/Browser/SectionPresentation.swift +34 -0
  54. package/ios/Browser/SectionScope.swift +58 -24
  55. package/ios/Browser/StyleResolver.swift +47 -0
  56. package/ios/Browser/TabBarEntries.swift +2 -2
  57. package/ios/Browser/TrackIdTemplate.swift +37 -0
  58. package/ios/CarPlay/CarPlayArtworkResolver.swift +8 -7
  59. package/ios/CarPlay/CarPlayController.swift +105 -67
  60. package/ios/CarPlay/CarPlayImageLoader.swift +38 -18
  61. package/ios/CarPlay/CarPlayListItemFactory.swift +217 -84
  62. package/ios/CarPlay/CarPlayNowPlayingManager.swift +15 -12
  63. package/ios/Extension/Capability+RemoteCommand.swift +1 -1
  64. package/ios/Extension/PlayerCapabilities+Favorite.swift +1 -15
  65. package/ios/Extension/ResolvedTrack+Copying.swift +11 -15
  66. package/ios/Extension/Section+Copying.swift +31 -0
  67. package/ios/Extension/Track+Copying.swift +6 -12
  68. package/ios/Extension/Track+Identity.swift +18 -0
  69. package/ios/HybridAudioBrowser.swift +113 -35
  70. package/ios/Model/NitroTypeStubs.swift +64 -23
  71. package/ios/Model/PlayerUpdateOptions.swift +7 -0
  72. package/ios/Player/NowPlayingUpdater.swift +1 -1
  73. package/ios/Player/PlaybackCoordinator.swift +2 -2
  74. package/ios/Player/RetryManager.swift +4 -3
  75. package/ios/Tests/BrowserPathHelperTests.swift +50 -20
  76. package/ios/Tests/CarPlayArtworkResolverTests.swift +24 -41
  77. package/ios/Tests/JsonModelsTests.swift +75 -1
  78. package/ios/Tests/PlaybackStateStoreTests.swift +4 -3
  79. package/ios/Tests/QueueManagerTests.swift +4 -4
  80. package/ios/Tests/ResolvedTrackCopyingTests.swift +37 -35
  81. package/ios/Tests/SearchDrillInTests.swift +16 -16
  82. package/ios/Tests/SectionPresentationTests.swift +61 -0
  83. package/ios/Tests/SectionScopeTests.swift +87 -55
  84. package/ios/Tests/StyleResolverTests.swift +67 -0
  85. package/ios/Tests/TabBarEntriesTests.swift +18 -18
  86. package/ios/Tests/TrackIdTemplateTests.swift +67 -0
  87. package/ios/Tests/TrackIdentityTests.swift +20 -0
  88. package/ios/Tests/TrackSelectorTests.swift +168 -33
  89. package/ios/TrackSelector.swift +45 -30
  90. package/ios/Util/ArtworkImageFetcher.swift +16 -1
  91. package/lib/commonjs/AudioBrowser.js +11 -0
  92. package/lib/commonjs/AudioBrowser.js.map +1 -1
  93. package/lib/commonjs/features/browser-config.js +11 -8
  94. package/lib/commonjs/features/browser-config.js.map +1 -1
  95. package/lib/commonjs/features/browser.js +2 -2
  96. package/lib/commonjs/features/favorites.js +13 -10
  97. package/lib/commonjs/features/favorites.js.map +1 -1
  98. package/lib/commonjs/features/playback/controls.js +4 -2
  99. package/lib/commonjs/features/playback/controls.js.map +1 -1
  100. package/lib/commonjs/features/playback/state.js +2 -3
  101. package/lib/commonjs/features/playback/state.js.map +1 -1
  102. package/lib/commonjs/features/player/options.js.map +1 -1
  103. package/lib/commonjs/features/player/setup.js +3 -1
  104. package/lib/commonjs/features/player/setup.js.map +1 -1
  105. package/lib/commonjs/features/player/validateOptions.js +2 -0
  106. package/lib/commonjs/features/player/validateOptions.js.map +1 -1
  107. package/lib/commonjs/features/queue/activeTrack.js +14 -3
  108. package/lib/commonjs/features/queue/activeTrack.js.map +1 -1
  109. package/lib/commonjs/features/queue/queue.js +11 -4
  110. package/lib/commonjs/features/queue/queue.js.map +1 -1
  111. package/lib/commonjs/utils/LazyNativeEmitter.js +21 -10
  112. package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -1
  113. package/lib/commonjs/utils/NativeUpdatedValue.js +31 -13
  114. package/lib/commonjs/utils/NativeUpdatedValue.js.map +1 -1
  115. package/lib/commonjs/utils/getTrackIdentity.js +24 -0
  116. package/lib/commonjs/utils/getTrackIdentity.js.map +1 -0
  117. package/lib/commonjs/utils/useNativeValueRefreshedBy.js +33 -0
  118. package/lib/commonjs/utils/useNativeValueRefreshedBy.js.map +1 -0
  119. package/lib/commonjs/web/NativeAudioBrowser.js +32 -24
  120. package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
  121. package/lib/commonjs/web/browser/BrowserManager.js +144 -87
  122. package/lib/commonjs/web/browser/BrowserManager.js.map +1 -1
  123. package/lib/commonjs/web/browser/FavoriteManager.js +30 -21
  124. package/lib/commonjs/web/browser/FavoriteManager.js.map +1 -1
  125. package/lib/commonjs/web/browser/assertBrowsePageShape.js +2 -2
  126. package/lib/commonjs/web/browser/assertBrowsePageShape.js.map +1 -1
  127. package/lib/commonjs/web/browser/classifyTrackNavigation.js +9 -9
  128. package/lib/commonjs/web/browser/classifyTrackNavigation.js.map +1 -1
  129. package/lib/commonjs/web/browser/sections.js +89 -0
  130. package/lib/commonjs/web/browser/sections.js.map +1 -0
  131. package/lib/commonjs/web/player/NowPlayingManager.js +4 -3
  132. package/lib/commonjs/web/player/NowPlayingManager.js.map +1 -1
  133. package/lib/commonjs/web/util/BrowserPathHelper.js +56 -11
  134. package/lib/commonjs/web/util/BrowserPathHelper.js.map +1 -1
  135. package/lib/module/AudioBrowser.js +1 -0
  136. package/lib/module/AudioBrowser.js.map +1 -1
  137. package/lib/module/features/browser-config.js +11 -8
  138. package/lib/module/features/browser-config.js.map +1 -1
  139. package/lib/module/features/browser.js +2 -2
  140. package/lib/module/features/favorites.js +13 -10
  141. package/lib/module/features/favorites.js.map +1 -1
  142. package/lib/module/features/playback/controls.js +4 -2
  143. package/lib/module/features/playback/controls.js.map +1 -1
  144. package/lib/module/features/playback/state.js +2 -3
  145. package/lib/module/features/playback/state.js.map +1 -1
  146. package/lib/module/features/player/options.js.map +1 -1
  147. package/lib/module/features/player/setup.js +3 -1
  148. package/lib/module/features/player/setup.js.map +1 -1
  149. package/lib/module/features/player/validateOptions.js +2 -0
  150. package/lib/module/features/player/validateOptions.js.map +1 -1
  151. package/lib/module/features/queue/activeTrack.js +14 -3
  152. package/lib/module/features/queue/activeTrack.js.map +1 -1
  153. package/lib/module/features/queue/queue.js +11 -4
  154. package/lib/module/features/queue/queue.js.map +1 -1
  155. package/lib/module/utils/LazyNativeEmitter.js +21 -10
  156. package/lib/module/utils/LazyNativeEmitter.js.map +1 -1
  157. package/lib/module/utils/NativeUpdatedValue.js +31 -13
  158. package/lib/module/utils/NativeUpdatedValue.js.map +1 -1
  159. package/lib/module/utils/getTrackIdentity.js +20 -0
  160. package/lib/module/utils/getTrackIdentity.js.map +1 -0
  161. package/lib/module/utils/useNativeValueRefreshedBy.js +29 -0
  162. package/lib/module/utils/useNativeValueRefreshedBy.js.map +1 -0
  163. package/lib/module/web/NativeAudioBrowser.js +32 -24
  164. package/lib/module/web/NativeAudioBrowser.js.map +1 -1
  165. package/lib/module/web/browser/BrowserManager.js +144 -87
  166. package/lib/module/web/browser/BrowserManager.js.map +1 -1
  167. package/lib/module/web/browser/FavoriteManager.js +31 -21
  168. package/lib/module/web/browser/FavoriteManager.js.map +1 -1
  169. package/lib/module/web/browser/assertBrowsePageShape.js +2 -2
  170. package/lib/module/web/browser/assertBrowsePageShape.js.map +1 -1
  171. package/lib/module/web/browser/classifyTrackNavigation.js +9 -9
  172. package/lib/module/web/browser/classifyTrackNavigation.js.map +1 -1
  173. package/lib/module/web/browser/sections.js +83 -0
  174. package/lib/module/web/browser/sections.js.map +1 -0
  175. package/lib/module/web/player/NowPlayingManager.js +4 -3
  176. package/lib/module/web/player/NowPlayingManager.js.map +1 -1
  177. package/lib/module/web/util/BrowserPathHelper.js +56 -11
  178. package/lib/module/web/util/BrowserPathHelper.js.map +1 -1
  179. package/lib/typescript/src/AudioBrowser.d.ts +1 -0
  180. package/lib/typescript/src/AudioBrowser.d.ts.map +1 -1
  181. package/lib/typescript/src/features/browser-config.d.ts.map +1 -1
  182. package/lib/typescript/src/features/browser.d.ts +2 -2
  183. package/lib/typescript/src/features/favorites.d.ts +13 -10
  184. package/lib/typescript/src/features/favorites.d.ts.map +1 -1
  185. package/lib/typescript/src/features/playback/controls.d.ts +4 -2
  186. package/lib/typescript/src/features/playback/controls.d.ts.map +1 -1
  187. package/lib/typescript/src/features/playback/state.d.ts +2 -3
  188. package/lib/typescript/src/features/playback/state.d.ts.map +1 -1
  189. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts +1 -1
  190. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts.map +1 -1
  191. package/lib/typescript/src/features/player/options.d.ts +21 -19
  192. package/lib/typescript/src/features/player/options.d.ts.map +1 -1
  193. package/lib/typescript/src/features/player/setup.d.ts.map +1 -1
  194. package/lib/typescript/src/features/player/validateOptions.d.ts +1 -8
  195. package/lib/typescript/src/features/player/validateOptions.d.ts.map +1 -1
  196. package/lib/typescript/src/features/queue/activeTrack.d.ts +8 -1
  197. package/lib/typescript/src/features/queue/activeTrack.d.ts.map +1 -1
  198. package/lib/typescript/src/features/queue/queue.d.ts +5 -2
  199. package/lib/typescript/src/features/queue/queue.d.ts.map +1 -1
  200. package/lib/typescript/src/types/browser-native.d.ts +2 -2
  201. package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
  202. package/lib/typescript/src/types/browser-nodes.d.ts +260 -127
  203. package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
  204. package/lib/typescript/src/types/browser.d.ts +33 -53
  205. package/lib/typescript/src/types/browser.d.ts.map +1 -1
  206. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts +16 -17
  207. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -1
  208. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts +24 -19
  209. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts.map +1 -1
  210. package/lib/typescript/src/utils/getTrackIdentity.d.ts +18 -0
  211. package/lib/typescript/src/utils/getTrackIdentity.d.ts.map +1 -0
  212. package/lib/typescript/src/utils/useNativeValueRefreshedBy.d.ts +21 -0
  213. package/lib/typescript/src/utils/useNativeValueRefreshedBy.d.ts.map +1 -0
  214. package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +0 -1
  215. package/nitrogen/generated/android/c++/{JFavoritesMatchMode.hpp → JArtworkRendering.hpp} +15 -15
  216. package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +4 -3
  217. package/nitrogen/generated/android/c++/JBrowseResult.hpp +10 -4
  218. package/nitrogen/generated/android/c++/JCarPlayPlayingIndicatorLocation.hpp +58 -0
  219. package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +4 -3
  220. package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +4 -3
  221. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +4 -3
  222. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +4 -3
  223. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +4 -3
  224. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +4 -3
  225. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +4 -2
  226. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +4 -2
  227. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.hpp +10 -4
  228. package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +4 -3
  229. package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +2 -5
  230. package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +4 -3
  231. package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +9 -3
  232. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +4 -2
  233. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +21 -14
  234. package/nitrogen/generated/android/c++/JIOSOptions.hpp +9 -3
  235. package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +4 -3
  236. package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +16 -10
  237. package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +8 -2
  238. package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +6 -7
  239. package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +2 -5
  240. package/nitrogen/generated/android/c++/JNitroIOSUpdateOptions.hpp +9 -3
  241. package/nitrogen/generated/android/c++/JOptions.hpp +2 -5
  242. package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +4 -3
  243. package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +5 -11
  244. package/nitrogen/generated/android/c++/JResolvedTrack.hpp +49 -51
  245. package/nitrogen/generated/android/c++/JSection.hpp +114 -0
  246. package/nitrogen/generated/android/c++/JSectionStyle.hpp +69 -0
  247. package/nitrogen/generated/android/c++/JStyleDisplay.hpp +58 -0
  248. package/nitrogen/generated/android/c++/JTrack.hpp +19 -48
  249. package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +4 -2
  250. package/nitrogen/generated/android/c++/JTrackStyle.hpp +25 -18
  251. package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +10 -4
  252. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoritesMatchMode.kt → ArtworkRendering.kt} +5 -5
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayPlayingIndicatorLocation.kt +23 -0
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSOptions.kt +6 -3
  255. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +5 -5
  256. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroIOSUpdateOptions.kt +6 -3
  257. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +2 -2
  258. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +12 -18
  259. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Section.kt +50 -0
  260. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoriteConfig.kt → SectionStyle.kt} +12 -6
  261. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StyleDisplay.kt +23 -0
  262. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +6 -15
  263. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +23 -5
  264. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +104 -82
  265. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +16 -10
  266. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +16 -10
  267. package/nitrogen/generated/ios/swift/ArtworkRendering.swift +40 -0
  268. package/nitrogen/generated/ios/swift/CarPlayPlayingIndicatorLocation.swift +40 -0
  269. package/nitrogen/generated/ios/swift/IOSOptions.swift +7 -2
  270. package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +5 -5
  271. package/nitrogen/generated/ios/swift/NitroIOSUpdateOptions.swift +12 -1
  272. package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +8 -27
  273. package/nitrogen/generated/ios/swift/ResolvedTrack.swift +54 -83
  274. package/nitrogen/generated/ios/swift/Section.swift +100 -0
  275. package/nitrogen/generated/ios/swift/SectionStyle.swift +64 -0
  276. package/nitrogen/generated/ios/swift/StyleDisplay.swift +40 -0
  277. package/nitrogen/generated/ios/swift/Track.swift +20 -73
  278. package/nitrogen/generated/ios/swift/TrackStyle.swift +28 -22
  279. package/nitrogen/generated/shared/c++/{FavoritesMatchMode.hpp → ArtworkRendering.hpp} +17 -17
  280. package/nitrogen/generated/shared/c++/CarPlayPlayingIndicatorLocation.hpp +76 -0
  281. package/nitrogen/generated/shared/c++/IOSOptions.hpp +9 -2
  282. package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +6 -6
  283. package/nitrogen/generated/shared/c++/NitroIOSUpdateOptions.hpp +9 -2
  284. package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +6 -9
  285. package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +30 -38
  286. package/nitrogen/generated/shared/c++/Section.hpp +106 -0
  287. package/nitrogen/generated/shared/c++/SectionStyle.hpp +96 -0
  288. package/nitrogen/generated/shared/c++/StyleDisplay.hpp +76 -0
  289. package/nitrogen/generated/shared/c++/Track.hpp +15 -31
  290. package/nitrogen/generated/shared/c++/TrackStyle.hpp +50 -34
  291. package/package.json +3 -2
  292. package/src/AudioBrowser.ts +1 -0
  293. package/src/features/browser-config.test.ts +21 -6
  294. package/src/features/browser-config.ts +11 -8
  295. package/src/features/browser.test.ts +1 -1
  296. package/src/features/browser.ts +2 -2
  297. package/src/features/favorites.ts +13 -10
  298. package/src/features/hook-wiring.test.ts +63 -15
  299. package/src/features/playback/controls.ts +4 -2
  300. package/src/features/playback/state.ts +2 -3
  301. package/src/features/playback/trackPlaybackTime.ts +1 -1
  302. package/src/features/player/options.ts +27 -19
  303. package/src/features/player/setup.test.ts +12 -3
  304. package/src/features/player/setup.ts +3 -1
  305. package/src/features/player/validateOptions.ts +2 -0
  306. package/src/features/queue/activeTrack.ts +14 -3
  307. package/src/features/queue/queue.ts +11 -4
  308. package/src/nitro-stub-drift.test.ts +277 -0
  309. package/src/public-surface.test.ts +40 -0
  310. package/src/specs/audio-browser.nitro.ts +4 -3
  311. package/src/style-resolution.test.ts +139 -0
  312. package/src/types/browser-native.ts +2 -2
  313. package/src/types/browser-nodes.ts +268 -136
  314. package/src/types/browser.ts +34 -55
  315. package/src/utils/LazyNativeEmitter.ts +20 -10
  316. package/src/utils/NativeUpdatedValue.ts +29 -13
  317. package/src/utils/getTrackIdentity.ts +20 -0
  318. package/src/utils/useNativeValueRefreshedBy.ts +38 -0
  319. package/src/web/NativeAudioBrowser.ts +37 -22
  320. package/src/web/browser/BrowserManager.ts +176 -95
  321. package/src/web/browser/FavoriteManager.test.ts +84 -0
  322. package/src/web/browser/FavoriteManager.ts +28 -23
  323. package/src/web/browser/assertBrowsePageShape.test.ts +1 -1
  324. package/src/web/browser/assertBrowsePageShape.ts +5 -3
  325. package/src/web/browser/classifyTrackNavigation.test.ts +10 -8
  326. package/src/web/browser/classifyTrackNavigation.ts +9 -9
  327. package/src/web/browser/parseSearchResponse.test.ts +8 -2
  328. package/src/web/browser/sections.test.ts +91 -0
  329. package/src/web/browser/sections.ts +72 -0
  330. package/src/web/player/NowPlayingManager.ts +4 -3
  331. package/src/web/util/BrowserPathHelper.test.ts +52 -0
  332. package/src/web/util/BrowserPathHelper.ts +61 -13
  333. package/ios/CarPlay/ImageRowItem+CarPlay.swift +0 -19
  334. package/nitrogen/generated/android/c++/JFavoriteConfig.hpp +0 -58
  335. package/nitrogen/generated/android/c++/JImageRowItem.hpp +0 -105
  336. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.cpp +0 -26
  337. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.hpp +0 -71
  338. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +0 -68
  339. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_FavoriteConfig.kt +0 -53
  340. package/nitrogen/generated/ios/swift/FavoriteConfig.swift +0 -29
  341. package/nitrogen/generated/ios/swift/FavoritesMatchMode.swift +0 -40
  342. package/nitrogen/generated/ios/swift/ImageRowItem.swift +0 -195
  343. package/nitrogen/generated/ios/swift/Variant_Bool_FavoriteConfig.swift +0 -18
  344. package/nitrogen/generated/shared/c++/FavoriteConfig.hpp +0 -84
  345. package/nitrogen/generated/shared/c++/ImageRowItem.hpp +0 -129
@@ -10,24 +10,25 @@
10
10
  #include <fbjni/fbjni.h>
11
11
  #include "Track.hpp"
12
12
 
13
+ #include "ArtworkRendering.hpp"
13
14
  #include "ArtworkVariants.hpp"
14
15
  #include "HttpMethod.hpp"
15
- #include "ImageRowItem.hpp"
16
16
  #include "ImageSource.hpp"
17
+ #include "JArtworkRendering.hpp"
17
18
  #include "JArtworkVariants.hpp"
18
19
  #include "JHttpMethod.hpp"
19
- #include "JImageRowItem.hpp"
20
20
  #include "JImageSource.hpp"
21
+ #include "JStyleDisplay.hpp"
21
22
  #include "JTrackRequest.hpp"
22
23
  #include "JTrackStyle.hpp"
23
24
  #include "JVariant_String_ArtworkVariants.hpp"
25
+ #include "StyleDisplay.hpp"
24
26
  #include "TrackRequest.hpp"
25
27
  #include "TrackStyle.hpp"
26
28
  #include <optional>
27
29
  #include <string>
28
30
  #include <unordered_map>
29
31
  #include <variant>
30
- #include <vector>
31
32
 
32
33
  namespace margelo::nitro::audiobrowser {
33
34
 
@@ -50,8 +51,8 @@ namespace margelo::nitro::audiobrowser {
50
51
  static const auto clazz = javaClassStatic();
51
52
  static const auto fieldId = clazz->getField<jni::JString>("id");
52
53
  jni::local_ref<jni::JString> id = this->getFieldValue(fieldId);
53
- static const auto fieldUrl = clazz->getField<jni::JString>("url");
54
- jni::local_ref<jni::JString> url = this->getFieldValue(fieldUrl);
54
+ static const auto fieldPath = clazz->getField<jni::JString>("path");
55
+ jni::local_ref<jni::JString> path = this->getFieldValue(fieldPath);
55
56
  static const auto fieldSrc = clazz->getField<jni::JString>("src");
56
57
  jni::local_ref<jni::JString> src = this->getFieldValue(fieldSrc);
57
58
  static const auto fieldArtwork = clazz->getField<JVariant_String_ArtworkVariants>("artwork");
@@ -60,16 +61,14 @@ namespace margelo::nitro::audiobrowser {
60
61
  jni::local_ref<JImageSource> artworkSource = this->getFieldValue(fieldArtworkSource);
61
62
  static const auto fieldRequest = clazz->getField<JTrackRequest>("request");
62
63
  jni::local_ref<JTrackRequest> request = this->getFieldValue(fieldRequest);
63
- static const auto fieldArtworkCarPlayTinted = clazz->getField<jni::JBoolean>("artworkCarPlayTinted");
64
- jni::local_ref<jni::JBoolean> artworkCarPlayTinted = this->getFieldValue(fieldArtworkCarPlayTinted);
65
64
  static const auto fieldTitle = clazz->getField<jni::JString>("title");
66
65
  jni::local_ref<jni::JString> title = this->getFieldValue(fieldTitle);
67
66
  static const auto fieldSubtitle = clazz->getField<jni::JString>("subtitle");
68
67
  jni::local_ref<jni::JString> subtitle = this->getFieldValue(fieldSubtitle);
69
68
  static const auto fieldArtist = clazz->getField<jni::JString>("artist");
70
69
  jni::local_ref<jni::JString> artist = this->getFieldValue(fieldArtist);
71
- static const auto fieldAlbumUrl = clazz->getField<jni::JString>("albumUrl");
72
- jni::local_ref<jni::JString> albumUrl = this->getFieldValue(fieldAlbumUrl);
70
+ static const auto fieldAlbumPath = clazz->getField<jni::JString>("albumPath");
71
+ jni::local_ref<jni::JString> albumPath = this->getFieldValue(fieldAlbumPath);
73
72
  static const auto fieldAlbum = clazz->getField<jni::JString>("album");
74
73
  jni::local_ref<jni::JString> album = this->getFieldValue(fieldAlbum);
75
74
  static const auto fieldDescription = clazz->getField<jni::JString>("description");
@@ -80,47 +79,31 @@ namespace margelo::nitro::audiobrowser {
80
79
  jni::local_ref<jni::JDouble> duration = this->getFieldValue(fieldDuration);
81
80
  static const auto fieldStyle = clazz->getField<JTrackStyle>("style");
82
81
  jni::local_ref<JTrackStyle> style = this->getFieldValue(fieldStyle);
83
- static const auto fieldChildrenStyle = clazz->getField<JTrackStyle>("childrenStyle");
84
- jni::local_ref<JTrackStyle> childrenStyle = this->getFieldValue(fieldChildrenStyle);
82
+ static const auto fieldDisabled = clazz->getField<jni::JBoolean>("disabled");
83
+ jni::local_ref<jni::JBoolean> disabled = this->getFieldValue(fieldDisabled);
85
84
  static const auto fieldFavorited = clazz->getField<jni::JBoolean>("favorited");
86
85
  jni::local_ref<jni::JBoolean> favorited = this->getFieldValue(fieldFavorited);
87
- static const auto fieldGroupTitle = clazz->getField<jni::JString>("groupTitle");
88
- jni::local_ref<jni::JString> groupTitle = this->getFieldValue(fieldGroupTitle);
89
86
  static const auto fieldLive = clazz->getField<jni::JBoolean>("live");
90
87
  jni::local_ref<jni::JBoolean> live = this->getFieldValue(fieldLive);
91
- static const auto fieldImageRow = clazz->getField<jni::JArrayClass<JImageRowItem>>("imageRow");
92
- jni::local_ref<jni::JArrayClass<JImageRowItem>> imageRow = this->getFieldValue(fieldImageRow);
93
88
  return Track(
94
89
  id != nullptr ? std::make_optional(id->toStdString()) : std::nullopt,
95
- url != nullptr ? std::make_optional(url->toStdString()) : std::nullopt,
90
+ path != nullptr ? std::make_optional(path->toStdString()) : std::nullopt,
96
91
  src != nullptr ? std::make_optional(src->toStdString()) : std::nullopt,
97
92
  artwork != nullptr ? std::make_optional(artwork->toCpp()) : std::nullopt,
98
93
  artworkSource != nullptr ? std::make_optional(artworkSource->toCpp()) : std::nullopt,
99
94
  request != nullptr ? std::make_optional(request->toCpp()) : std::nullopt,
100
- artworkCarPlayTinted != nullptr ? std::make_optional(static_cast<bool>(artworkCarPlayTinted->value())) : std::nullopt,
101
95
  title->toStdString(),
102
96
  subtitle != nullptr ? std::make_optional(subtitle->toStdString()) : std::nullopt,
103
97
  artist != nullptr ? std::make_optional(artist->toStdString()) : std::nullopt,
104
- albumUrl != nullptr ? std::make_optional(albumUrl->toStdString()) : std::nullopt,
98
+ albumPath != nullptr ? std::make_optional(albumPath->toStdString()) : std::nullopt,
105
99
  album != nullptr ? std::make_optional(album->toStdString()) : std::nullopt,
106
100
  description != nullptr ? std::make_optional(description->toStdString()) : std::nullopt,
107
101
  genre != nullptr ? std::make_optional(genre->toStdString()) : std::nullopt,
108
102
  duration != nullptr ? std::make_optional(duration->value()) : std::nullopt,
109
103
  style != nullptr ? std::make_optional(style->toCpp()) : std::nullopt,
110
- childrenStyle != nullptr ? std::make_optional(childrenStyle->toCpp()) : std::nullopt,
104
+ disabled != nullptr ? std::make_optional(static_cast<bool>(disabled->value())) : std::nullopt,
111
105
  favorited != nullptr ? std::make_optional(static_cast<bool>(favorited->value())) : std::nullopt,
112
- groupTitle != nullptr ? std::make_optional(groupTitle->toStdString()) : std::nullopt,
113
- live != nullptr ? std::make_optional(static_cast<bool>(live->value())) : std::nullopt,
114
- imageRow != nullptr ? std::make_optional([&]() {
115
- size_t __size = imageRow->size();
116
- std::vector<ImageRowItem> __vector;
117
- __vector.reserve(__size);
118
- for (size_t __i = 0; __i < __size; __i++) {
119
- auto __element = imageRow->getElement(__i);
120
- __vector.push_back(__element->toCpp());
121
- }
122
- return __vector;
123
- }()) : std::nullopt
106
+ live != nullptr ? std::make_optional(static_cast<bool>(live->value())) : std::nullopt
124
107
  );
125
108
  }
126
109
 
@@ -130,41 +113,29 @@ namespace margelo::nitro::audiobrowser {
130
113
  */
131
114
  [[maybe_unused]]
132
115
  static jni::local_ref<JTrack::javaobject> fromCpp(const Track& value) {
133
- using JSignature = JTrack(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JVariant_String_ArtworkVariants>, jni::alias_ref<JImageSource>, jni::alias_ref<JTrackRequest>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JTrackStyle>, jni::alias_ref<JTrackStyle>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JArrayClass<JImageRowItem>>);
116
+ using JSignature = JTrack(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JVariant_String_ArtworkVariants>, jni::alias_ref<JImageSource>, jni::alias_ref<JTrackRequest>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<JTrackStyle>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>);
134
117
  static const auto clazz = javaClassStatic();
135
118
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
136
119
  return create(
137
120
  clazz,
138
121
  value.id.has_value() ? jni::make_jstring(value.id.value()) : nullptr,
139
- value.url.has_value() ? jni::make_jstring(value.url.value()) : nullptr,
122
+ value.path.has_value() ? jni::make_jstring(value.path.value()) : nullptr,
140
123
  value.src.has_value() ? jni::make_jstring(value.src.value()) : nullptr,
141
124
  value.artwork.has_value() ? JVariant_String_ArtworkVariants::fromCpp(value.artwork.value()) : nullptr,
142
125
  value.artworkSource.has_value() ? JImageSource::fromCpp(value.artworkSource.value()) : nullptr,
143
126
  value.request.has_value() ? JTrackRequest::fromCpp(value.request.value()) : nullptr,
144
- value.artworkCarPlayTinted.has_value() ? jni::JBoolean::valueOf(value.artworkCarPlayTinted.value()) : nullptr,
145
127
  jni::make_jstring(value.title),
146
128
  value.subtitle.has_value() ? jni::make_jstring(value.subtitle.value()) : nullptr,
147
129
  value.artist.has_value() ? jni::make_jstring(value.artist.value()) : nullptr,
148
- value.albumUrl.has_value() ? jni::make_jstring(value.albumUrl.value()) : nullptr,
130
+ value.albumPath.has_value() ? jni::make_jstring(value.albumPath.value()) : nullptr,
149
131
  value.album.has_value() ? jni::make_jstring(value.album.value()) : nullptr,
150
132
  value.description.has_value() ? jni::make_jstring(value.description.value()) : nullptr,
151
133
  value.genre.has_value() ? jni::make_jstring(value.genre.value()) : nullptr,
152
134
  value.duration.has_value() ? jni::JDouble::valueOf(value.duration.value()) : nullptr,
153
135
  value.style.has_value() ? JTrackStyle::fromCpp(value.style.value()) : nullptr,
154
- value.childrenStyle.has_value() ? JTrackStyle::fromCpp(value.childrenStyle.value()) : nullptr,
136
+ value.disabled.has_value() ? jni::JBoolean::valueOf(value.disabled.value()) : nullptr,
155
137
  value.favorited.has_value() ? jni::JBoolean::valueOf(value.favorited.value()) : nullptr,
156
- value.groupTitle.has_value() ? jni::make_jstring(value.groupTitle.value()) : nullptr,
157
- value.live.has_value() ? jni::JBoolean::valueOf(value.live.value()) : nullptr,
158
- value.imageRow.has_value() ? [&]() {
159
- size_t __size = value.imageRow.value().size();
160
- jni::local_ref<jni::JArrayClass<JImageRowItem>> __array = jni::JArrayClass<JImageRowItem>::newArray(__size);
161
- for (size_t __i = 0; __i < __size; __i++) {
162
- const auto& __element = value.imageRow.value()[__i];
163
- auto __elementJni = JImageRowItem::fromCpp(__element);
164
- __array->setElement(__i, *__elementJni);
165
- }
166
- return __array;
167
- }() : nullptr
138
+ value.live.has_value() ? jni::JBoolean::valueOf(value.live.value()) : nullptr
168
139
  );
169
140
  }
170
141
  };
@@ -10,18 +10,20 @@
10
10
  #include <fbjni/fbjni.h>
11
11
  #include "TrackLoadEvent.hpp"
12
12
 
13
+ #include "ArtworkRendering.hpp"
13
14
  #include "ArtworkVariants.hpp"
14
15
  #include "HttpMethod.hpp"
15
- #include "ImageRowItem.hpp"
16
16
  #include "ImageSource.hpp"
17
+ #include "JArtworkRendering.hpp"
17
18
  #include "JArtworkVariants.hpp"
18
19
  #include "JHttpMethod.hpp"
19
- #include "JImageRowItem.hpp"
20
20
  #include "JImageSource.hpp"
21
+ #include "JStyleDisplay.hpp"
21
22
  #include "JTrack.hpp"
22
23
  #include "JTrackRequest.hpp"
23
24
  #include "JTrackStyle.hpp"
24
25
  #include "JVariant_String_ArtworkVariants.hpp"
26
+ #include "StyleDisplay.hpp"
25
27
  #include "Track.hpp"
26
28
  #include "TrackRequest.hpp"
27
29
  #include "TrackStyle.hpp"
@@ -10,12 +10,18 @@
10
10
  #include <fbjni/fbjni.h>
11
11
  #include "TrackStyle.hpp"
12
12
 
13
+ #include "ArtworkRendering.hpp"
14
+ #include "JArtworkRendering.hpp"
15
+ #include "JStyleDisplay.hpp"
16
+ #include "StyleDisplay.hpp"
17
+ #include <optional>
18
+
13
19
  namespace margelo::nitro::audiobrowser {
14
20
 
15
21
  using namespace facebook;
16
22
 
17
23
  /**
18
- * The C++ JNI bridge between the C++ enum "TrackStyle" and the the Kotlin enum "TrackStyle".
24
+ * The C++ JNI bridge between the C++ struct "TrackStyle" and the the Kotlin data class "TrackStyle".
19
25
  */
20
26
  struct JTrackStyle final: public jni::JavaClass<JTrackStyle> {
21
27
  public:
@@ -23,35 +29,36 @@ namespace margelo::nitro::audiobrowser {
23
29
 
24
30
  public:
25
31
  /**
26
- * Convert this Java/Kotlin-based enum to the C++ enum TrackStyle.
32
+ * Convert this Java/Kotlin-based struct to the C++ struct TrackStyle by copying all values to C++.
27
33
  */
28
34
  [[maybe_unused]]
29
35
  [[nodiscard]]
30
36
  TrackStyle toCpp() const {
31
37
  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);
38
+ static const auto fieldDisplay = clazz->getField<JStyleDisplay>("display");
39
+ jni::local_ref<JStyleDisplay> display = this->getFieldValue(fieldDisplay);
40
+ static const auto fieldArtworkRendering = clazz->getField<JArtworkRendering>("artworkRendering");
41
+ jni::local_ref<JArtworkRendering> artworkRendering = this->getFieldValue(fieldArtworkRendering);
42
+ return TrackStyle(
43
+ display != nullptr ? std::make_optional(display->toCpp()) : std::nullopt,
44
+ artworkRendering != nullptr ? std::make_optional(artworkRendering->toCpp()) : std::nullopt
45
+ );
35
46
  }
36
47
 
37
48
  public:
38
49
  /**
39
- * Create a Java/Kotlin-based enum with the given C++ enum's value.
50
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
40
51
  */
41
52
  [[maybe_unused]]
42
- static jni::alias_ref<JTrackStyle> fromCpp(TrackStyle value) {
53
+ static jni::local_ref<JTrackStyle::javaobject> fromCpp(const TrackStyle& value) {
54
+ using JSignature = JTrackStyle(jni::alias_ref<JStyleDisplay>, jni::alias_ref<JArtworkRendering>);
43
55
  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
- }
56
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
57
+ return create(
58
+ clazz,
59
+ value.display.has_value() ? JStyleDisplay::fromCpp(value.display.value()) : nullptr,
60
+ value.artworkRendering.has_value() ? JArtworkRendering::fromCpp(value.artworkRendering.value()) : nullptr
61
+ );
55
62
  }
56
63
  };
57
64
 
@@ -16,9 +16,17 @@
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 "StyleDisplay.hpp"
23
+ #include "JStyleDisplay.hpp"
24
+ #include "ArtworkRendering.hpp"
25
+ #include "JArtworkRendering.hpp"
26
+ #include "Section.hpp"
27
+ #include <vector>
28
+ #include "JSection.hpp"
29
+ #include "Track.hpp"
22
30
  #include "JTrack.hpp"
23
31
  #include "ArtworkVariants.hpp"
24
32
  #include "JVariant_String_ArtworkVariants.hpp"
@@ -32,8 +40,6 @@
32
40
  #include "JTrackRequest.hpp"
33
41
  #include "TrackStyle.hpp"
34
42
  #include "JTrackStyle.hpp"
35
- #include "ImageRowItem.hpp"
36
- #include "JImageRowItem.hpp"
37
43
  #include "CarPlaySiriListButtonPosition.hpp"
38
44
  #include "JCarPlaySiriListButtonPosition.hpp"
39
45
  #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
+ }
@@ -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
  }
@@ -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
  }
@@ -0,0 +1,50 @@
1
+ ///
2
+ /// Section.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 "Section".
16
+ */
17
+ @DoNotStrip
18
+ @Keep
19
+ data class Section(
20
+ @DoNotStrip
21
+ @Keep
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>
35
+ ) {
36
+ /* primary constructor */
37
+
38
+ companion object {
39
+ /**
40
+ * Constructor called from C++
41
+ */
42
+ @DoNotStrip
43
+ @Keep
44
+ @Suppress("unused")
45
+ @JvmStatic
46
+ private fun fromCpp(title: String?, subtitle: String?, style: SectionStyle?, path: String?, children: Array<Track>): Section {
47
+ return Section(title, subtitle, style, path, children)
48
+ }
49
+ }
50
+ }
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// FavoriteConfig.kt
2
+ /// SectionStyle.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,20 @@ 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 "SectionStyle".
16
16
  */
17
17
  @DoNotStrip
18
18
  @Keep
19
- data class FavoriteConfig(
19
+ data class SectionStyle(
20
20
  @DoNotStrip
21
21
  @Keep
22
- val match: FavoritesMatchMode
22
+ val gridWrap: Boolean?,
23
+ @DoNotStrip
24
+ @Keep
25
+ val display: StyleDisplay?,
26
+ @DoNotStrip
27
+ @Keep
28
+ val artworkRendering: ArtworkRendering?
23
29
  ) {
24
30
  /* primary constructor */
25
31
 
@@ -31,8 +37,8 @@ data class FavoriteConfig(
31
37
  @Keep
32
38
  @Suppress("unused")
33
39
  @JvmStatic
34
- private fun fromCpp(match: FavoritesMatchMode): FavoriteConfig {
35
- return FavoriteConfig(match)
40
+ private fun fromCpp(gridWrap: Boolean?, display: StyleDisplay?, artworkRendering: ArtworkRendering?): SectionStyle {
41
+ return SectionStyle(gridWrap, display, artworkRendering)
36
42
  }
37
43
  }
38
44
  }
@@ -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
+ }