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
@@ -0,0 +1,133 @@
1
+ ///
2
+ /// SectionStyle.swift
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
+ import NitroModules
9
+
10
+ /**
11
+ * Represents an instance of `SectionStyle`, backed by a C++ struct.
12
+ */
13
+ public typealias SectionStyle = margelo.nitro.audiobrowser.SectionStyle
14
+
15
+ public extension SectionStyle {
16
+ private typealias bridge = margelo.nitro.audiobrowser.bridge.swift
17
+
18
+ /**
19
+ * Create a new instance of `SectionStyle`.
20
+ */
21
+ init(gridWrap: Bool?, gridTile: GridTile?, display: StyleDisplay?, artworkRendering: ArtworkRendering?, imageShape: ImageShape?, accessorySymbol: String?, cardTint: String?, cardImage: CardImage?) {
22
+ self.init({ () -> bridge.std__optional_bool_ in
23
+ if let __unwrappedValue = gridWrap {
24
+ return bridge.create_std__optional_bool_(__unwrappedValue)
25
+ } else {
26
+ return .init()
27
+ }
28
+ }(), { () -> bridge.std__optional_GridTile_ in
29
+ if let __unwrappedValue = gridTile {
30
+ return bridge.create_std__optional_GridTile_(__unwrappedValue)
31
+ } else {
32
+ return .init()
33
+ }
34
+ }(), { () -> bridge.std__optional_StyleDisplay_ in
35
+ if let __unwrappedValue = display {
36
+ return bridge.create_std__optional_StyleDisplay_(__unwrappedValue)
37
+ } else {
38
+ return .init()
39
+ }
40
+ }(), { () -> bridge.std__optional_ArtworkRendering_ in
41
+ if let __unwrappedValue = artworkRendering {
42
+ return bridge.create_std__optional_ArtworkRendering_(__unwrappedValue)
43
+ } else {
44
+ return .init()
45
+ }
46
+ }(), { () -> bridge.std__optional_ImageShape_ in
47
+ if let __unwrappedValue = imageShape {
48
+ return bridge.create_std__optional_ImageShape_(__unwrappedValue)
49
+ } else {
50
+ return .init()
51
+ }
52
+ }(), { () -> bridge.std__optional_std__string_ in
53
+ if let __unwrappedValue = accessorySymbol {
54
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
55
+ } else {
56
+ return .init()
57
+ }
58
+ }(), { () -> bridge.std__optional_std__string_ in
59
+ if let __unwrappedValue = cardTint {
60
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
61
+ } else {
62
+ return .init()
63
+ }
64
+ }(), { () -> bridge.std__optional_CardImage_ in
65
+ if let __unwrappedValue = cardImage {
66
+ return bridge.create_std__optional_CardImage_(__unwrappedValue)
67
+ } else {
68
+ return .init()
69
+ }
70
+ }())
71
+ }
72
+
73
+ @inline(__always)
74
+ var gridWrap: Bool? {
75
+ return { () -> Bool? in
76
+ if bridge.has_value_std__optional_bool_(self.__gridWrap) {
77
+ let __unwrapped = bridge.get_std__optional_bool_(self.__gridWrap)
78
+ return __unwrapped
79
+ } else {
80
+ return nil
81
+ }
82
+ }()
83
+ }
84
+
85
+ @inline(__always)
86
+ var gridTile: GridTile? {
87
+ return self.__gridTile.value
88
+ }
89
+
90
+ @inline(__always)
91
+ var display: StyleDisplay? {
92
+ return self.__display.value
93
+ }
94
+
95
+ @inline(__always)
96
+ var artworkRendering: ArtworkRendering? {
97
+ return self.__artworkRendering.value
98
+ }
99
+
100
+ @inline(__always)
101
+ var imageShape: ImageShape? {
102
+ return self.__imageShape.value
103
+ }
104
+
105
+ @inline(__always)
106
+ var accessorySymbol: String? {
107
+ return { () -> String? in
108
+ if bridge.has_value_std__optional_std__string_(self.__accessorySymbol) {
109
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__accessorySymbol)
110
+ return String(__unwrapped)
111
+ } else {
112
+ return nil
113
+ }
114
+ }()
115
+ }
116
+
117
+ @inline(__always)
118
+ var cardTint: String? {
119
+ return { () -> String? in
120
+ if bridge.has_value_std__optional_std__string_(self.__cardTint) {
121
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__cardTint)
122
+ return String(__unwrapped)
123
+ } else {
124
+ return nil
125
+ }
126
+ }()
127
+ }
128
+
129
+ @inline(__always)
130
+ var cardImage: CardImage? {
131
+ return self.__cardImage.value
132
+ }
133
+ }
@@ -0,0 +1,40 @@
1
+ ///
2
+ /// StyleDisplay.swift
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
+ /**
9
+ * Represents the JS union `StyleDisplay`, backed by a C++ enum.
10
+ */
11
+ public typealias StyleDisplay = margelo.nitro.audiobrowser.StyleDisplay
12
+
13
+ public extension StyleDisplay {
14
+ /**
15
+ * Get a StyleDisplay for the given String value, or
16
+ * return `nil` if the given value was invalid/unknown.
17
+ */
18
+ init?(fromString string: String) {
19
+ switch string {
20
+ case "list":
21
+ self = .list
22
+ case "grid":
23
+ self = .grid
24
+ default:
25
+ return nil
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Get the String value this StyleDisplay represents.
31
+ */
32
+ var stringValue: String {
33
+ switch self {
34
+ case .list:
35
+ return "list"
36
+ case .grid:
37
+ return "grid"
38
+ }
39
+ }
40
+ }
@@ -18,7 +18,7 @@ public extension Track {
18
18
  /**
19
19
  * Create a new instance of `Track`.
20
20
  */
21
- init(id: String?, url: String?, src: String?, artwork: Variant_String_ArtworkVariants?, artworkSource: ImageSource?, request: TrackRequest?, artworkCarPlayTinted: Bool?, title: String, subtitle: String?, artist: String?, albumUrl: String?, album: String?, description: String?, genre: String?, duration: Double?, style: TrackStyle?, childrenStyle: TrackStyle?, favorited: Bool?, groupTitle: String?, live: Bool?, imageRow: [ImageRowItem]?) {
21
+ init(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: Bool?, favorited: Bool?, live: Bool?) {
22
22
  self.init({ () -> bridge.std__optional_std__string_ in
23
23
  if let __unwrappedValue = id {
24
24
  return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
@@ -26,7 +26,7 @@ public extension Track {
26
26
  return .init()
27
27
  }
28
28
  }(), { () -> bridge.std__optional_std__string_ in
29
- if let __unwrappedValue = url {
29
+ if let __unwrappedValue = path {
30
30
  return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
31
31
  } else {
32
32
  return .init()
@@ -62,12 +62,6 @@ public extension Track {
62
62
  } else {
63
63
  return .init()
64
64
  }
65
- }(), { () -> bridge.std__optional_bool_ in
66
- if let __unwrappedValue = artworkCarPlayTinted {
67
- return bridge.create_std__optional_bool_(__unwrappedValue)
68
- } else {
69
- return .init()
70
- }
71
65
  }(), std.string(title), { () -> bridge.std__optional_std__string_ in
72
66
  if let __unwrappedValue = subtitle {
73
67
  return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
@@ -81,7 +75,7 @@ public extension Track {
81
75
  return .init()
82
76
  }
83
77
  }(), { () -> bridge.std__optional_std__string_ in
84
- if let __unwrappedValue = albumUrl {
78
+ if let __unwrappedValue = albumPath {
85
79
  return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
86
80
  } else {
87
81
  return .init()
@@ -116,9 +110,9 @@ public extension Track {
116
110
  } else {
117
111
  return .init()
118
112
  }
119
- }(), { () -> bridge.std__optional_TrackStyle_ in
120
- if let __unwrappedValue = childrenStyle {
121
- return bridge.create_std__optional_TrackStyle_(__unwrappedValue)
113
+ }(), { () -> bridge.std__optional_bool_ in
114
+ if let __unwrappedValue = disabled {
115
+ return bridge.create_std__optional_bool_(__unwrappedValue)
122
116
  } else {
123
117
  return .init()
124
118
  }
@@ -128,30 +122,12 @@ public extension Track {
128
122
  } else {
129
123
  return .init()
130
124
  }
131
- }(), { () -> bridge.std__optional_std__string_ in
132
- if let __unwrappedValue = groupTitle {
133
- return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
134
- } else {
135
- return .init()
136
- }
137
125
  }(), { () -> bridge.std__optional_bool_ in
138
126
  if let __unwrappedValue = live {
139
127
  return bridge.create_std__optional_bool_(__unwrappedValue)
140
128
  } else {
141
129
  return .init()
142
130
  }
143
- }(), { () -> bridge.std__optional_std__vector_ImageRowItem__ in
144
- if let __unwrappedValue = imageRow {
145
- return bridge.create_std__optional_std__vector_ImageRowItem__({ () -> bridge.std__vector_ImageRowItem_ in
146
- var __vector = bridge.create_std__vector_ImageRowItem_(__unwrappedValue.count)
147
- for __item in __unwrappedValue {
148
- __vector.push_back(__item)
149
- }
150
- return __vector
151
- }())
152
- } else {
153
- return .init()
154
- }
155
131
  }())
156
132
  }
157
133
 
@@ -168,10 +144,10 @@ public extension Track {
168
144
  }
169
145
 
170
146
  @inline(__always)
171
- var url: String? {
147
+ var path: String? {
172
148
  return { () -> String? in
173
- if bridge.has_value_std__optional_std__string_(self.__url) {
174
- let __unwrapped = bridge.get_std__optional_std__string_(self.__url)
149
+ if bridge.has_value_std__optional_std__string_(self.__path) {
150
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__path)
175
151
  return String(__unwrapped)
176
152
  } else {
177
153
  return nil
@@ -225,18 +201,6 @@ public extension Track {
225
201
  return self.__request.value
226
202
  }
227
203
 
228
- @inline(__always)
229
- var artworkCarPlayTinted: Bool? {
230
- return { () -> Bool? in
231
- if bridge.has_value_std__optional_bool_(self.__artworkCarPlayTinted) {
232
- let __unwrapped = bridge.get_std__optional_bool_(self.__artworkCarPlayTinted)
233
- return __unwrapped
234
- } else {
235
- return nil
236
- }
237
- }()
238
- }
239
-
240
204
  @inline(__always)
241
205
  var title: String {
242
206
  return String(self.__title)
@@ -267,10 +231,10 @@ public extension Track {
267
231
  }
268
232
 
269
233
  @inline(__always)
270
- var albumUrl: String? {
234
+ var albumPath: String? {
271
235
  return { () -> String? in
272
- if bridge.has_value_std__optional_std__string_(self.__albumUrl) {
273
- let __unwrapped = bridge.get_std__optional_std__string_(self.__albumUrl)
236
+ if bridge.has_value_std__optional_std__string_(self.__albumPath) {
237
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__albumPath)
274
238
  return String(__unwrapped)
275
239
  } else {
276
240
  return nil
@@ -332,15 +296,10 @@ public extension Track {
332
296
  }
333
297
 
334
298
  @inline(__always)
335
- var childrenStyle: TrackStyle? {
336
- return self.__childrenStyle.value
337
- }
338
-
339
- @inline(__always)
340
- var favorited: Bool? {
299
+ var disabled: Bool? {
341
300
  return { () -> Bool? in
342
- if bridge.has_value_std__optional_bool_(self.__favorited) {
343
- let __unwrapped = bridge.get_std__optional_bool_(self.__favorited)
301
+ if bridge.has_value_std__optional_bool_(self.__disabled) {
302
+ let __unwrapped = bridge.get_std__optional_bool_(self.__disabled)
344
303
  return __unwrapped
345
304
  } else {
346
305
  return nil
@@ -349,11 +308,11 @@ public extension Track {
349
308
  }
350
309
 
351
310
  @inline(__always)
352
- var groupTitle: String? {
353
- return { () -> String? in
354
- if bridge.has_value_std__optional_std__string_(self.__groupTitle) {
355
- let __unwrapped = bridge.get_std__optional_std__string_(self.__groupTitle)
356
- return String(__unwrapped)
311
+ var favorited: Bool? {
312
+ return { () -> Bool? in
313
+ if bridge.has_value_std__optional_bool_(self.__favorited) {
314
+ let __unwrapped = bridge.get_std__optional_bool_(self.__favorited)
315
+ return __unwrapped
357
316
  } else {
358
317
  return nil
359
318
  }
@@ -371,16 +330,4 @@ public extension Track {
371
330
  }
372
331
  }()
373
332
  }
374
-
375
- @inline(__always)
376
- var imageRow: [ImageRowItem]? {
377
- return { () -> [ImageRowItem]? in
378
- if bridge.has_value_std__optional_std__vector_ImageRowItem__(self.__imageRow) {
379
- let __unwrapped = bridge.get_std__optional_std__vector_ImageRowItem__(self.__imageRow)
380
- return __unwrapped.map({ __item in __item })
381
- } else {
382
- return nil
383
- }
384
- }()
385
- }
386
333
  }
@@ -5,36 +5,100 @@
5
5
  /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import NitroModules
9
+
8
10
  /**
9
- * Represents the JS union `TrackStyle`, backed by a C++ enum.
11
+ * Represents an instance of `TrackStyle`, backed by a C++ struct.
10
12
  */
11
13
  public typealias TrackStyle = margelo.nitro.audiobrowser.TrackStyle
12
14
 
13
15
  public extension TrackStyle {
16
+ private typealias bridge = margelo.nitro.audiobrowser.bridge.swift
17
+
14
18
  /**
15
- * Get a TrackStyle for the given String value, or
16
- * return `nil` if the given value was invalid/unknown.
19
+ * Create a new instance of `TrackStyle`.
17
20
  */
18
- init?(fromString string: String) {
19
- switch string {
20
- case "list":
21
- self = .list
22
- case "grid":
23
- self = .grid
24
- default:
25
- return nil
26
- }
21
+ init(display: StyleDisplay?, artworkRendering: ArtworkRendering?, imageShape: ImageShape?, accessorySymbol: String?, cardTint: String?, cardImage: CardImage?) {
22
+ self.init({ () -> bridge.std__optional_StyleDisplay_ in
23
+ if let __unwrappedValue = display {
24
+ return bridge.create_std__optional_StyleDisplay_(__unwrappedValue)
25
+ } else {
26
+ return .init()
27
+ }
28
+ }(), { () -> bridge.std__optional_ArtworkRendering_ in
29
+ if let __unwrappedValue = artworkRendering {
30
+ return bridge.create_std__optional_ArtworkRendering_(__unwrappedValue)
31
+ } else {
32
+ return .init()
33
+ }
34
+ }(), { () -> bridge.std__optional_ImageShape_ in
35
+ if let __unwrappedValue = imageShape {
36
+ return bridge.create_std__optional_ImageShape_(__unwrappedValue)
37
+ } else {
38
+ return .init()
39
+ }
40
+ }(), { () -> bridge.std__optional_std__string_ in
41
+ if let __unwrappedValue = accessorySymbol {
42
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
43
+ } else {
44
+ return .init()
45
+ }
46
+ }(), { () -> bridge.std__optional_std__string_ in
47
+ if let __unwrappedValue = cardTint {
48
+ return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
49
+ } else {
50
+ return .init()
51
+ }
52
+ }(), { () -> bridge.std__optional_CardImage_ in
53
+ if let __unwrappedValue = cardImage {
54
+ return bridge.create_std__optional_CardImage_(__unwrappedValue)
55
+ } else {
56
+ return .init()
57
+ }
58
+ }())
27
59
  }
28
60
 
29
- /**
30
- * Get the String value this TrackStyle represents.
31
- */
32
- var stringValue: String {
33
- switch self {
34
- case .list:
35
- return "list"
36
- case .grid:
37
- return "grid"
38
- }
61
+ @inline(__always)
62
+ var display: StyleDisplay? {
63
+ return self.__display.value
64
+ }
65
+
66
+ @inline(__always)
67
+ var artworkRendering: ArtworkRendering? {
68
+ return self.__artworkRendering.value
69
+ }
70
+
71
+ @inline(__always)
72
+ var imageShape: ImageShape? {
73
+ return self.__imageShape.value
74
+ }
75
+
76
+ @inline(__always)
77
+ var accessorySymbol: String? {
78
+ return { () -> String? in
79
+ if bridge.has_value_std__optional_std__string_(self.__accessorySymbol) {
80
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__accessorySymbol)
81
+ return String(__unwrapped)
82
+ } else {
83
+ return nil
84
+ }
85
+ }()
86
+ }
87
+
88
+ @inline(__always)
89
+ var cardTint: String? {
90
+ return { () -> String? in
91
+ if bridge.has_value_std__optional_std__string_(self.__cardTint) {
92
+ let __unwrapped = bridge.get_std__optional_std__string_(self.__cardTint)
93
+ return String(__unwrapped)
94
+ } else {
95
+ return nil
96
+ }
97
+ }()
98
+ }
99
+
100
+ @inline(__always)
101
+ var cardImage: CardImage? {
102
+ return self.__cardImage.value
39
103
  }
40
104
  }
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// FavoritesMatchMode.hpp
2
+ /// ArtworkRendering.hpp
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
@@ -26,35 +26,35 @@
26
26
  namespace margelo::nitro::audiobrowser {
27
27
 
28
28
  /**
29
- * An enum which can be represented as a JavaScript union (FavoritesMatchMode).
29
+ * An enum which can be represented as a JavaScript union (ArtworkRendering).
30
30
  */
31
- enum class FavoritesMatchMode {
32
- EXACT SWIFT_NAME(exact) = 0,
33
- PARTIAL SWIFT_NAME(partial) = 1,
31
+ enum class ArtworkRendering {
32
+ ORIGINAL SWIFT_NAME(original) = 0,
33
+ STENCIL SWIFT_NAME(stencil) = 1,
34
34
  } CLOSED_ENUM;
35
35
 
36
36
  } // namespace margelo::nitro::audiobrowser
37
37
 
38
38
  namespace margelo::nitro {
39
39
 
40
- // C++ FavoritesMatchMode <> JS FavoritesMatchMode (union)
40
+ // C++ ArtworkRendering <> JS ArtworkRendering (union)
41
41
  template <>
42
- struct JSIConverter<margelo::nitro::audiobrowser::FavoritesMatchMode> final {
43
- static inline margelo::nitro::audiobrowser::FavoritesMatchMode fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
42
+ struct JSIConverter<margelo::nitro::audiobrowser::ArtworkRendering> final {
43
+ static inline margelo::nitro::audiobrowser::ArtworkRendering fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
44
44
  std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
45
45
  switch (hashString(unionValue.c_str(), unionValue.size())) {
46
- case hashString("exact"): return margelo::nitro::audiobrowser::FavoritesMatchMode::EXACT;
47
- case hashString("partial"): return margelo::nitro::audiobrowser::FavoritesMatchMode::PARTIAL;
46
+ case hashString("original"): return margelo::nitro::audiobrowser::ArtworkRendering::ORIGINAL;
47
+ case hashString("stencil"): return margelo::nitro::audiobrowser::ArtworkRendering::STENCIL;
48
48
  default: [[unlikely]]
49
- throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum FavoritesMatchMode - invalid value!");
49
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum ArtworkRendering - invalid value!");
50
50
  }
51
51
  }
52
- static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::audiobrowser::FavoritesMatchMode arg) {
52
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::audiobrowser::ArtworkRendering arg) {
53
53
  switch (arg) {
54
- case margelo::nitro::audiobrowser::FavoritesMatchMode::EXACT: return JSIConverter<std::string>::toJSI(runtime, "exact");
55
- case margelo::nitro::audiobrowser::FavoritesMatchMode::PARTIAL: return JSIConverter<std::string>::toJSI(runtime, "partial");
54
+ case margelo::nitro::audiobrowser::ArtworkRendering::ORIGINAL: return JSIConverter<std::string>::toJSI(runtime, "original");
55
+ case margelo::nitro::audiobrowser::ArtworkRendering::STENCIL: return JSIConverter<std::string>::toJSI(runtime, "stencil");
56
56
  default: [[unlikely]]
57
- throw std::invalid_argument("Cannot convert FavoritesMatchMode to JS - invalid value: "
57
+ throw std::invalid_argument("Cannot convert ArtworkRendering to JS - invalid value: "
58
58
  + std::to_string(static_cast<int>(arg)) + "!");
59
59
  }
60
60
  }
@@ -64,8 +64,8 @@ namespace margelo::nitro {
64
64
  }
65
65
  std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
66
66
  switch (hashString(unionValue.c_str(), unionValue.size())) {
67
- case hashString("exact"):
68
- case hashString("partial"):
67
+ case hashString("original"):
68
+ case hashString("stencil"):
69
69
  return true;
70
70
  default:
71
71
  return false;
@@ -0,0 +1,76 @@
1
+ ///
2
+ /// CarPlayPlayingIndicatorLocation.hpp
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
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/NitroHash.hpp>)
11
+ #include <NitroModules/NitroHash.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
16
+ #include <NitroModules/JSIConverter.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
21
+ #include <NitroModules/NitroDefines.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ namespace margelo::nitro::audiobrowser {
27
+
28
+ /**
29
+ * An enum which can be represented as a JavaScript union (CarPlayPlayingIndicatorLocation).
30
+ */
31
+ enum class CarPlayPlayingIndicatorLocation {
32
+ LEADING SWIFT_NAME(leading) = 0,
33
+ TRAILING SWIFT_NAME(trailing) = 1,
34
+ } CLOSED_ENUM;
35
+
36
+ } // namespace margelo::nitro::audiobrowser
37
+
38
+ namespace margelo::nitro {
39
+
40
+ // C++ CarPlayPlayingIndicatorLocation <> JS CarPlayPlayingIndicatorLocation (union)
41
+ template <>
42
+ struct JSIConverter<margelo::nitro::audiobrowser::CarPlayPlayingIndicatorLocation> final {
43
+ static inline margelo::nitro::audiobrowser::CarPlayPlayingIndicatorLocation fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
44
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
45
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
46
+ case hashString("leading"): return margelo::nitro::audiobrowser::CarPlayPlayingIndicatorLocation::LEADING;
47
+ case hashString("trailing"): return margelo::nitro::audiobrowser::CarPlayPlayingIndicatorLocation::TRAILING;
48
+ default: [[unlikely]]
49
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum CarPlayPlayingIndicatorLocation - invalid value!");
50
+ }
51
+ }
52
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::audiobrowser::CarPlayPlayingIndicatorLocation arg) {
53
+ switch (arg) {
54
+ case margelo::nitro::audiobrowser::CarPlayPlayingIndicatorLocation::LEADING: return JSIConverter<std::string>::toJSI(runtime, "leading");
55
+ case margelo::nitro::audiobrowser::CarPlayPlayingIndicatorLocation::TRAILING: return JSIConverter<std::string>::toJSI(runtime, "trailing");
56
+ default: [[unlikely]]
57
+ throw std::invalid_argument("Cannot convert CarPlayPlayingIndicatorLocation to JS - invalid value: "
58
+ + std::to_string(static_cast<int>(arg)) + "!");
59
+ }
60
+ }
61
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
62
+ if (!value.isString()) {
63
+ return false;
64
+ }
65
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
66
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
67
+ case hashString("leading"):
68
+ case hashString("trailing"):
69
+ return true;
70
+ default:
71
+ return false;
72
+ }
73
+ }
74
+ };
75
+
76
+ } // namespace margelo::nitro