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.
- package/README.md +14 -4
- package/android/build.gradle +20 -1
- package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +115 -26
- package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +262 -188
- package/android/src/main/java/com/audiobrowser/browser/BrowserUrlResolution.kt +23 -3
- package/android/src/main/java/com/audiobrowser/browser/InertStyleDiagnostic.kt +267 -0
- package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +95 -58
- package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +68 -26
- package/android/src/main/java/com/audiobrowser/browser/StyleResolver.kt +60 -0
- package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +19 -7
- package/android/src/main/java/com/audiobrowser/extension/TappedTrack.kt +20 -0
- package/android/src/main/java/com/audiobrowser/extension/TrackIdentity.kt +15 -0
- package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +1 -1
- package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +120 -67
- package/android/src/main/java/com/audiobrowser/player/NowPlayingUpdater.kt +21 -24
- package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +109 -74
- package/android/src/main/java/com/audiobrowser/player/Player.kt +51 -30
- package/android/src/main/java/com/audiobrowser/player/PlayerCapabilitiesExt.kt +2 -15
- package/android/src/main/java/com/audiobrowser/player/ShuffleOrderLedBy.kt +30 -0
- package/android/src/main/java/com/audiobrowser/util/BrowserPathHelper.kt +44 -40
- package/android/src/main/java/com/audiobrowser/util/MediaExtrasBuilder.kt +28 -23
- package/android/src/main/java/com/audiobrowser/util/StyleWire.kt +108 -0
- package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +52 -53
- package/android/src/test/java/com/audiobrowser/TestFixtures.kt +74 -41
- package/android/src/test/java/com/audiobrowser/browser/BrowserManagerFavoritesTest.kt +153 -0
- package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +229 -50
- package/android/src/test/java/com/audiobrowser/browser/BrowserUrlResolutionTest.kt +38 -0
- package/android/src/test/java/com/audiobrowser/browser/InertStyleDiagnosticTest.kt +277 -0
- package/android/src/test/java/com/audiobrowser/browser/JsonArtworkTest.kt +1 -1
- package/android/src/test/java/com/audiobrowser/browser/JsonStyleTest.kt +147 -0
- package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +128 -53
- package/android/src/test/java/com/audiobrowser/browser/StyleResolverTest.kt +154 -0
- package/android/src/test/java/com/audiobrowser/extension/TappedTrackTest.kt +43 -0
- package/android/src/test/java/com/audiobrowser/extension/TrackIdentityTest.kt +41 -0
- package/android/src/test/java/com/audiobrowser/player/CapabilityControlsTest.kt +1 -2
- package/android/src/test/java/com/audiobrowser/player/NowPlayingUpdaterTest.kt +42 -2
- package/android/src/test/java/com/audiobrowser/player/PlaybackStateStoreTrackJsonTest.kt +55 -0
- package/android/src/test/java/com/audiobrowser/player/ShuffleOrderLedByTest.kt +79 -0
- package/android/src/test/java/com/audiobrowser/util/BrowserPathHelperTest.kt +41 -16
- package/android/src/test/java/com/audiobrowser/util/MediaExtrasBuilderTest.kt +161 -0
- package/android/src/test/java/com/audiobrowser/util/TrackFactoryMediaIdTest.kt +7 -7
- package/ios/Browser/BrowserConfig.swift +102 -5
- package/ios/Browser/BrowserManager+URLResolution.swift +18 -14
- package/ios/Browser/BrowserManager.swift +229 -180
- package/ios/Browser/BrowserPathHelper.swift +44 -44
- package/ios/Browser/InertStyleDiagnostic.swift +279 -0
- package/ios/Browser/JsonModels.swift +258 -106
- package/ios/Browser/SearchDrillIn.swift +6 -6
- package/ios/Browser/SectionPresentation.swift +64 -0
- package/ios/Browser/SectionScope.swift +58 -24
- package/ios/Browser/StyleResolver.swift +58 -0
- package/ios/Browser/TabBarEntries.swift +9 -3
- package/ios/Browser/TrackIdTemplate.swift +37 -0
- package/ios/CarPlay/CarPlayArtworkResolver.swift +8 -7
- package/ios/CarPlay/CarPlayController.swift +227 -85
- package/ios/CarPlay/CarPlayImageLoader.swift +38 -18
- package/ios/CarPlay/CarPlayListItemFactory.swift +289 -84
- package/ios/CarPlay/CarPlayNowPlayingManager.swift +15 -12
- package/ios/Extension/Capability+RemoteCommand.swift +1 -1
- package/ios/Extension/PlayerCapabilities+Favorite.swift +1 -15
- package/ios/Extension/ResolvedTrack+Copying.swift +11 -15
- package/ios/Extension/Section+Copying.swift +31 -0
- package/ios/Extension/Track+Copying.swift +6 -12
- package/ios/Extension/Track+Identity.swift +18 -0
- package/ios/Extension/UIApplication+ActiveScene.swift +27 -0
- package/ios/Http/HttpClient.swift +8 -2
- package/ios/HybridAudioBrowser.swift +166 -45
- package/ios/Model/NitroTypeStubs.swift +106 -21
- package/ios/Model/PlayerUpdateOptions.swift +7 -0
- package/ios/Player/MediaIntentCriteria.swift +13 -5
- package/ios/Player/MediaLoader.swift +33 -9
- package/ios/Player/NowPlayingUpdater.swift +54 -6
- package/ios/Player/PlaybackCoordinator.swift +13 -6
- package/ios/Player/PlaybackTimer.swift +8 -2
- package/ios/Player/QueueManager.swift +36 -10
- package/ios/Player/RetryManager.swift +4 -3
- package/ios/Player/ShuffleOrder.swift +23 -0
- package/ios/Player/SleepTimerHandling.swift +13 -0
- package/ios/RemoteCommand/RemoteCommandController.swift +53 -18
- package/ios/Tests/BrowserPathHelperTests.swift +50 -20
- package/ios/Tests/CarPlayArtworkResolverTests.swift +24 -41
- package/ios/Tests/InertStyleDiagnosticTests.swift +200 -0
- package/ios/Tests/JsonModelsTests.swift +150 -1
- package/ios/Tests/PlaybackStateStoreTests.swift +4 -3
- package/ios/Tests/QueueManagerTests.swift +72 -6
- package/ios/Tests/RemoteCommandControllerTests.swift +16 -0
- package/ios/Tests/ResolvedTrackCopyingTests.swift +37 -35
- package/ios/Tests/SearchDrillInTests.swift +16 -16
- package/ios/Tests/SectionPresentationTests.swift +90 -0
- package/ios/Tests/SectionScopeTests.swift +87 -55
- package/ios/Tests/StyleResolverTests.swift +127 -0
- package/ios/Tests/Support/TestTypes.swift +7 -0
- package/ios/Tests/TabBarEntriesTests.swift +18 -18
- package/ios/Tests/TrackIdTemplateTests.swift +67 -0
- package/ios/Tests/TrackIdentityTests.swift +20 -0
- package/ios/Tests/TrackSelectorTests.swift +168 -33
- package/ios/TrackPlayer.swift +57 -34
- package/ios/TrackSelector.swift +45 -30
- package/ios/Util/ArtworkImageFetcher.swift +16 -1
- package/ios/Util/NetworkMonitor.swift +43 -26
- package/ios/Util/SFSymbolRenderer.swift +24 -2
- package/ios/Util/SVGProcessor.swift +9 -2
- package/lib/commonjs/AudioBrowser.js +11 -0
- package/lib/commonjs/AudioBrowser.js.map +1 -1
- package/lib/commonjs/features/browser-config.js +11 -8
- package/lib/commonjs/features/browser-config.js.map +1 -1
- package/lib/commonjs/features/browser.js +2 -2
- package/lib/commonjs/features/favorites.js +13 -10
- package/lib/commonjs/features/favorites.js.map +1 -1
- package/lib/commonjs/features/playback/controls.js +4 -2
- package/lib/commonjs/features/playback/controls.js.map +1 -1
- package/lib/commonjs/features/playback/progress.js +2 -1
- package/lib/commonjs/features/playback/progress.js.map +1 -1
- package/lib/commonjs/features/playback/rate.js +8 -1
- package/lib/commonjs/features/playback/rate.js.map +1 -1
- package/lib/commonjs/features/playback/state.js +2 -3
- package/lib/commonjs/features/playback/state.js.map +1 -1
- package/lib/commonjs/features/player/options.js.map +1 -1
- package/lib/commonjs/features/player/setup.js +3 -1
- package/lib/commonjs/features/player/setup.js.map +1 -1
- package/lib/commonjs/features/player/validateOptions.js +2 -0
- package/lib/commonjs/features/player/validateOptions.js.map +1 -1
- package/lib/commonjs/features/queue/activeTrack.js +14 -3
- package/lib/commonjs/features/queue/activeTrack.js.map +1 -1
- package/lib/commonjs/features/queue/queue.js +11 -4
- package/lib/commonjs/features/queue/queue.js.map +1 -1
- package/lib/commonjs/utils/LazyNativeEmitter.js +21 -10
- package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -1
- package/lib/commonjs/utils/NativeUpdatedValue.js +31 -13
- package/lib/commonjs/utils/NativeUpdatedValue.js.map +1 -1
- package/lib/commonjs/utils/getTrackIdentity.js +24 -0
- package/lib/commonjs/utils/getTrackIdentity.js.map +1 -0
- package/lib/commonjs/utils/useNativeValueRefreshedBy.js +33 -0
- package/lib/commonjs/utils/useNativeValueRefreshedBy.js.map +1 -0
- package/lib/commonjs/web/NativeAudioBrowser.js +32 -24
- package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
- package/lib/commonjs/web/TrackPlayer/QueueManager.js +14 -0
- package/lib/commonjs/web/TrackPlayer/QueueManager.js.map +1 -1
- package/lib/commonjs/web/browser/BrowserManager.js +144 -87
- package/lib/commonjs/web/browser/BrowserManager.js.map +1 -1
- package/lib/commonjs/web/browser/FavoriteManager.js +30 -21
- package/lib/commonjs/web/browser/FavoriteManager.js.map +1 -1
- package/lib/commonjs/web/browser/assertBrowsePageShape.js +2 -2
- package/lib/commonjs/web/browser/assertBrowsePageShape.js.map +1 -1
- package/lib/commonjs/web/browser/classifyTrackNavigation.js +9 -9
- package/lib/commonjs/web/browser/classifyTrackNavigation.js.map +1 -1
- package/lib/commonjs/web/browser/sections.js +89 -0
- package/lib/commonjs/web/browser/sections.js.map +1 -0
- package/lib/commonjs/web/player/NowPlayingManager.js +4 -3
- package/lib/commonjs/web/player/NowPlayingManager.js.map +1 -1
- package/lib/commonjs/web/util/BrowserPathHelper.js +56 -11
- package/lib/commonjs/web/util/BrowserPathHelper.js.map +1 -1
- package/lib/module/AudioBrowser.js +1 -0
- package/lib/module/AudioBrowser.js.map +1 -1
- package/lib/module/features/browser-config.js +11 -8
- package/lib/module/features/browser-config.js.map +1 -1
- package/lib/module/features/browser.js +2 -2
- package/lib/module/features/favorites.js +13 -10
- package/lib/module/features/favorites.js.map +1 -1
- package/lib/module/features/playback/controls.js +4 -2
- package/lib/module/features/playback/controls.js.map +1 -1
- package/lib/module/features/playback/progress.js +2 -1
- package/lib/module/features/playback/progress.js.map +1 -1
- package/lib/module/features/playback/rate.js +8 -1
- package/lib/module/features/playback/rate.js.map +1 -1
- package/lib/module/features/playback/state.js +2 -3
- package/lib/module/features/playback/state.js.map +1 -1
- package/lib/module/features/player/options.js.map +1 -1
- package/lib/module/features/player/setup.js +3 -1
- package/lib/module/features/player/setup.js.map +1 -1
- package/lib/module/features/player/validateOptions.js +2 -0
- package/lib/module/features/player/validateOptions.js.map +1 -1
- package/lib/module/features/queue/activeTrack.js +14 -3
- package/lib/module/features/queue/activeTrack.js.map +1 -1
- package/lib/module/features/queue/queue.js +11 -4
- package/lib/module/features/queue/queue.js.map +1 -1
- package/lib/module/utils/LazyNativeEmitter.js +21 -10
- package/lib/module/utils/LazyNativeEmitter.js.map +1 -1
- package/lib/module/utils/NativeUpdatedValue.js +31 -13
- package/lib/module/utils/NativeUpdatedValue.js.map +1 -1
- package/lib/module/utils/getTrackIdentity.js +20 -0
- package/lib/module/utils/getTrackIdentity.js.map +1 -0
- package/lib/module/utils/useNativeValueRefreshedBy.js +29 -0
- package/lib/module/utils/useNativeValueRefreshedBy.js.map +1 -0
- package/lib/module/web/NativeAudioBrowser.js +32 -24
- package/lib/module/web/NativeAudioBrowser.js.map +1 -1
- package/lib/module/web/TrackPlayer/QueueManager.js +14 -0
- package/lib/module/web/TrackPlayer/QueueManager.js.map +1 -1
- package/lib/module/web/browser/BrowserManager.js +144 -87
- package/lib/module/web/browser/BrowserManager.js.map +1 -1
- package/lib/module/web/browser/FavoriteManager.js +31 -21
- package/lib/module/web/browser/FavoriteManager.js.map +1 -1
- package/lib/module/web/browser/assertBrowsePageShape.js +2 -2
- package/lib/module/web/browser/assertBrowsePageShape.js.map +1 -1
- package/lib/module/web/browser/classifyTrackNavigation.js +9 -9
- package/lib/module/web/browser/classifyTrackNavigation.js.map +1 -1
- package/lib/module/web/browser/sections.js +83 -0
- package/lib/module/web/browser/sections.js.map +1 -0
- package/lib/module/web/player/NowPlayingManager.js +4 -3
- package/lib/module/web/player/NowPlayingManager.js.map +1 -1
- package/lib/module/web/util/BrowserPathHelper.js +56 -11
- package/lib/module/web/util/BrowserPathHelper.js.map +1 -1
- package/lib/typescript/src/AudioBrowser.d.ts +1 -0
- package/lib/typescript/src/AudioBrowser.d.ts.map +1 -1
- package/lib/typescript/src/features/browser-config.d.ts.map +1 -1
- package/lib/typescript/src/features/browser.d.ts +2 -2
- package/lib/typescript/src/features/favorites.d.ts +13 -10
- package/lib/typescript/src/features/favorites.d.ts.map +1 -1
- package/lib/typescript/src/features/playback/controls.d.ts +4 -2
- package/lib/typescript/src/features/playback/controls.d.ts.map +1 -1
- package/lib/typescript/src/features/playback/progress.d.ts.map +1 -1
- package/lib/typescript/src/features/playback/rate.d.ts +8 -1
- package/lib/typescript/src/features/playback/rate.d.ts.map +1 -1
- package/lib/typescript/src/features/playback/state.d.ts +2 -3
- package/lib/typescript/src/features/playback/state.d.ts.map +1 -1
- package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts +1 -1
- package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts.map +1 -1
- package/lib/typescript/src/features/player/options.d.ts +21 -19
- package/lib/typescript/src/features/player/options.d.ts.map +1 -1
- package/lib/typescript/src/features/player/setup.d.ts.map +1 -1
- package/lib/typescript/src/features/player/validateOptions.d.ts +1 -8
- package/lib/typescript/src/features/player/validateOptions.d.ts.map +1 -1
- package/lib/typescript/src/features/queue/activeTrack.d.ts +8 -1
- package/lib/typescript/src/features/queue/activeTrack.d.ts.map +1 -1
- package/lib/typescript/src/features/queue/queue.d.ts +5 -2
- package/lib/typescript/src/features/queue/queue.d.ts.map +1 -1
- package/lib/typescript/src/types/browser-native.d.ts +2 -2
- package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
- package/lib/typescript/src/types/browser-nodes.d.ts +361 -126
- package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
- package/lib/typescript/src/types/browser.d.ts +33 -53
- package/lib/typescript/src/types/browser.d.ts.map +1 -1
- package/lib/typescript/src/utils/LazyNativeEmitter.d.ts +16 -17
- package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -1
- package/lib/typescript/src/utils/NativeUpdatedValue.d.ts +24 -19
- package/lib/typescript/src/utils/NativeUpdatedValue.d.ts.map +1 -1
- package/lib/typescript/src/utils/getTrackIdentity.d.ts +18 -0
- package/lib/typescript/src/utils/getTrackIdentity.d.ts.map +1 -0
- package/lib/typescript/src/utils/useNativeValueRefreshedBy.d.ts +21 -0
- package/lib/typescript/src/utils/useNativeValueRefreshedBy.d.ts.map +1 -0
- package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +0 -1
- package/nitrogen/generated/android/c++/{JFavoritesMatchMode.hpp → JArtworkRendering.hpp} +15 -15
- package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +8 -3
- package/nitrogen/generated/android/c++/JBrowseResult.hpp +16 -4
- package/nitrogen/generated/android/c++/JCarPlayPlayingIndicatorLocation.hpp +58 -0
- package/nitrogen/generated/android/c++/JCardImage.hpp +58 -0
- package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +8 -3
- package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +8 -3
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +8 -3
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +8 -3
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +8 -3
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +8 -3
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +8 -2
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +8 -2
- 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
- package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +8 -3
- package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +2 -5
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +8 -3
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +15 -3
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +8 -2
- package/nitrogen/generated/android/c++/JGridTile.hpp +61 -0
- package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +33 -14
- package/nitrogen/generated/android/c++/JIOSOptions.hpp +9 -3
- package/nitrogen/generated/android/c++/JImageShape.hpp +58 -0
- package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +8 -3
- package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +22 -10
- package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +14 -2
- package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +10 -7
- package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +2 -5
- package/nitrogen/generated/android/c++/JNitroIOSUpdateOptions.hpp +9 -3
- package/nitrogen/generated/android/c++/JOptions.hpp +2 -5
- package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +8 -3
- package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +5 -11
- package/nitrogen/generated/android/c++/JResolvedTrack.hpp +55 -51
- package/nitrogen/generated/android/c++/JSection.hpp +120 -0
- package/nitrogen/generated/android/c++/JSectionStyle.hpp +96 -0
- package/nitrogen/generated/android/c++/JStyleDisplay.hpp +58 -0
- package/nitrogen/generated/android/c++/JTrack.hpp +23 -48
- package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +8 -2
- package/nitrogen/generated/android/c++/JTrackStyle.hpp +46 -18
- package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +16 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoritesMatchMode.kt → ArtworkRendering.kt} +5 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayPlayingIndicatorLocation.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CardImage.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/GridTile.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSOptions.kt +6 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageShape.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +5 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroIOSUpdateOptions.kt +6 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +12 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoriteConfig.kt → Section.kt} +18 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SectionStyle.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StyleDisplay.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +6 -15
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +35 -5
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +158 -82
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +25 -10
- package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +25 -10
- package/nitrogen/generated/ios/swift/ArtworkRendering.swift +40 -0
- package/nitrogen/generated/ios/swift/CarPlayPlayingIndicatorLocation.swift +40 -0
- package/nitrogen/generated/ios/swift/CardImage.swift +40 -0
- package/nitrogen/generated/ios/swift/GridTile.swift +44 -0
- package/nitrogen/generated/ios/swift/IOSOptions.swift +7 -2
- package/nitrogen/generated/ios/swift/ImageShape.swift +40 -0
- package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +5 -5
- package/nitrogen/generated/ios/swift/NitroIOSUpdateOptions.swift +12 -1
- package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +8 -27
- package/nitrogen/generated/ios/swift/ResolvedTrack.swift +54 -83
- package/nitrogen/generated/ios/swift/Section.swift +100 -0
- package/nitrogen/generated/ios/swift/SectionStyle.swift +133 -0
- package/nitrogen/generated/ios/swift/StyleDisplay.swift +40 -0
- package/nitrogen/generated/ios/swift/Track.swift +20 -73
- package/nitrogen/generated/ios/swift/TrackStyle.swift +86 -22
- package/nitrogen/generated/shared/c++/{FavoritesMatchMode.hpp → ArtworkRendering.hpp} +17 -17
- package/nitrogen/generated/shared/c++/CarPlayPlayingIndicatorLocation.hpp +76 -0
- package/nitrogen/generated/shared/c++/CardImage.hpp +76 -0
- package/nitrogen/generated/shared/c++/GridTile.hpp +80 -0
- package/nitrogen/generated/shared/c++/IOSOptions.hpp +9 -2
- package/nitrogen/generated/shared/c++/ImageShape.hpp +76 -0
- package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +6 -6
- package/nitrogen/generated/shared/c++/NitroIOSUpdateOptions.hpp +9 -2
- package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +6 -9
- package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +30 -38
- package/nitrogen/generated/shared/c++/Section.hpp +106 -0
- package/nitrogen/generated/shared/c++/SectionStyle.hpp +126 -0
- package/nitrogen/generated/shared/c++/StyleDisplay.hpp +76 -0
- package/nitrogen/generated/shared/c++/Track.hpp +15 -31
- package/nitrogen/generated/shared/c++/TrackStyle.hpp +73 -34
- package/package.json +7 -2
- package/src/AudioBrowser.ts +1 -0
- package/src/features/browser-config.test.ts +21 -6
- package/src/features/browser-config.ts +11 -8
- package/src/features/browser.test.ts +1 -1
- package/src/features/browser.ts +2 -2
- package/src/features/favorites.ts +13 -10
- package/src/features/hook-wiring.test.ts +63 -15
- package/src/features/playback/controls.ts +4 -2
- package/src/features/playback/progress.ts +2 -1
- package/src/features/playback/rate.ts +8 -1
- package/src/features/playback/state.ts +2 -3
- package/src/features/playback/trackPlaybackTime.ts +1 -1
- package/src/features/player/options.ts +27 -19
- package/src/features/player/setup.test.ts +12 -3
- package/src/features/player/setup.ts +3 -1
- package/src/features/player/validateOptions.ts +2 -0
- package/src/features/queue/activeTrack.ts +14 -3
- package/src/features/queue/queue.ts +11 -4
- package/src/nitro-stub-drift.test.ts +40 -0
- package/src/public-surface.test.ts +40 -0
- package/src/specs/audio-browser.nitro.ts +4 -3
- package/src/style-resolution.test.ts +210 -0
- package/src/types/browser-native.ts +2 -2
- package/src/types/browser-nodes.ts +377 -135
- package/src/types/browser.ts +34 -55
- package/src/utils/LazyNativeEmitter.ts +20 -10
- package/src/utils/NativeUpdatedValue.ts +29 -13
- package/src/utils/getTrackIdentity.ts +20 -0
- package/src/utils/useNativeValueRefreshedBy.ts +38 -0
- package/src/web/NativeAudioBrowser.ts +37 -22
- package/src/web/TrackPlayer/QueueManager.test.ts +29 -0
- package/src/web/TrackPlayer/QueueManager.ts +14 -0
- package/src/web/browser/BrowserManager.ts +176 -95
- package/src/web/browser/FavoriteManager.test.ts +84 -0
- package/src/web/browser/FavoriteManager.ts +28 -23
- package/src/web/browser/assertBrowsePageShape.test.ts +1 -1
- package/src/web/browser/assertBrowsePageShape.ts +5 -3
- package/src/web/browser/classifyTrackNavigation.test.ts +10 -8
- package/src/web/browser/classifyTrackNavigation.ts +9 -9
- package/src/web/browser/parseSearchResponse.test.ts +8 -2
- package/src/web/browser/sections.test.ts +91 -0
- package/src/web/browser/sections.ts +72 -0
- package/src/web/player/NowPlayingManager.ts +4 -3
- package/src/web/util/BrowserPathHelper.test.ts +52 -0
- package/src/web/util/BrowserPathHelper.ts +61 -13
- package/website/guide/android-auto.md +114 -0
- package/website/guide/android-certificates.md +409 -0
- package/website/guide/artwork.md +255 -0
- package/website/guide/audio-output.md +135 -0
- package/website/guide/automotive.md +86 -0
- package/website/guide/basic-usage.md +151 -0
- package/website/guide/battery.md +115 -0
- package/website/guide/browser.md +581 -0
- package/website/guide/carplay.md +620 -0
- package/website/guide/configuration.md +173 -0
- package/website/guide/equalizer.md +231 -0
- package/website/guide/errors.md +310 -0
- package/website/guide/favorites.md +154 -0
- package/website/guide/gate.md +143 -0
- package/website/guide/getting-started.md +46 -0
- package/website/guide/hooks.md +238 -0
- package/website/guide/live-streams.md +125 -0
- package/website/guide/metadata.md +239 -0
- package/website/guide/migrating-from-track-player.md +244 -0
- package/website/guide/native-callback-fetch.md +127 -0
- package/website/guide/network.md +86 -0
- package/website/guide/now-playing.md +175 -0
- package/website/guide/playback.md +328 -0
- package/website/guide/queue.md +300 -0
- package/website/guide/remote-controls.md +256 -0
- package/website/guide/search.md +255 -0
- package/website/guide/sleep-timer.md +268 -0
- package/website/guide/track.md +246 -0
- package/ios/CarPlay/ImageRowItem+CarPlay.swift +0 -19
- package/nitrogen/generated/android/c++/JFavoriteConfig.hpp +0 -58
- package/nitrogen/generated/android/c++/JImageRowItem.hpp +0 -105
- package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.cpp +0 -26
- package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.hpp +0 -71
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +0 -68
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_FavoriteConfig.kt +0 -53
- package/nitrogen/generated/ios/swift/FavoriteConfig.swift +0 -29
- package/nitrogen/generated/ios/swift/FavoritesMatchMode.swift +0 -40
- package/nitrogen/generated/ios/swift/ImageRowItem.swift +0 -195
- package/nitrogen/generated/ios/swift/Variant_Bool_FavoriteConfig.swift +0 -18
- package/nitrogen/generated/shared/c++/FavoriteConfig.hpp +0 -84
- 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?,
|
|
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 =
|
|
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 =
|
|
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.
|
|
120
|
-
if let __unwrappedValue =
|
|
121
|
-
return bridge.
|
|
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
|
|
147
|
+
var path: String? {
|
|
172
148
|
return { () -> String? in
|
|
173
|
-
if bridge.has_value_std__optional_std__string_(self.
|
|
174
|
-
let __unwrapped = bridge.get_std__optional_std__string_(self.
|
|
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
|
|
234
|
+
var albumPath: String? {
|
|
271
235
|
return { () -> String? in
|
|
272
|
-
if bridge.has_value_std__optional_std__string_(self.
|
|
273
|
-
let __unwrapped = bridge.get_std__optional_std__string_(self.
|
|
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
|
|
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.
|
|
343
|
-
let __unwrapped = bridge.get_std__optional_bool_(self.
|
|
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
|
|
353
|
-
return { () ->
|
|
354
|
-
if bridge.
|
|
355
|
-
let __unwrapped = bridge.
|
|
356
|
-
return
|
|
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
|
|
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
|
-
*
|
|
16
|
-
* return `nil` if the given value was invalid/unknown.
|
|
19
|
+
* Create a new instance of `TrackStyle`.
|
|
17
20
|
*/
|
|
18
|
-
init
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
///
|
|
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 (
|
|
29
|
+
* An enum which can be represented as a JavaScript union (ArtworkRendering).
|
|
30
30
|
*/
|
|
31
|
-
enum class
|
|
32
|
-
|
|
33
|
-
|
|
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++
|
|
40
|
+
// C++ ArtworkRendering <> JS ArtworkRendering (union)
|
|
41
41
|
template <>
|
|
42
|
-
struct JSIConverter<margelo::nitro::audiobrowser::
|
|
43
|
-
static inline margelo::nitro::audiobrowser::
|
|
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("
|
|
47
|
-
case hashString("
|
|
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
|
|
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::
|
|
52
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::audiobrowser::ArtworkRendering arg) {
|
|
53
53
|
switch (arg) {
|
|
54
|
-
case margelo::nitro::audiobrowser::
|
|
55
|
-
case margelo::nitro::audiobrowser::
|
|
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
|
|
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("
|
|
68
|
-
case hashString("
|
|
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
|