react-native-audio-browser 0.2.0-next.11 → 0.2.0-next.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +110 -25
- package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +254 -188
- package/android/src/main/java/com/audiobrowser/browser/BrowserUrlResolution.kt +23 -3
- package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +77 -58
- package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +68 -26
- package/android/src/main/java/com/audiobrowser/browser/StyleResolver.kt +49 -0
- package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +9 -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/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 +93 -73
- package/android/src/main/java/com/audiobrowser/player/Player.kt +48 -30
- package/android/src/main/java/com/audiobrowser/player/PlayerCapabilitiesExt.kt +2 -15
- 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 +35 -0
- package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +45 -53
- package/android/src/test/java/com/audiobrowser/TestFixtures.kt +26 -39
- package/android/src/test/java/com/audiobrowser/browser/BrowserManagerFavoritesTest.kt +153 -0
- package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +228 -50
- package/android/src/test/java/com/audiobrowser/browser/BrowserUrlResolutionTest.kt +38 -0
- package/android/src/test/java/com/audiobrowser/browser/JsonArtworkTest.kt +1 -1
- package/android/src/test/java/com/audiobrowser/browser/JsonStyleTest.kt +91 -0
- package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +128 -53
- package/android/src/test/java/com/audiobrowser/browser/StyleResolverTest.kt +87 -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/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 +131 -143
- package/ios/Browser/BrowserPathHelper.swift +44 -44
- package/ios/Browser/JsonModels.swift +187 -106
- package/ios/Browser/SearchDrillIn.swift +6 -6
- package/ios/Browser/SectionPresentation.swift +34 -0
- package/ios/Browser/SectionScope.swift +58 -24
- package/ios/Browser/StyleResolver.swift +47 -0
- package/ios/Browser/TabBarEntries.swift +2 -2
- package/ios/Browser/TrackIdTemplate.swift +37 -0
- package/ios/CarPlay/CarPlayArtworkResolver.swift +8 -7
- package/ios/CarPlay/CarPlayController.swift +105 -67
- package/ios/CarPlay/CarPlayImageLoader.swift +38 -18
- package/ios/CarPlay/CarPlayListItemFactory.swift +217 -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/HybridAudioBrowser.swift +113 -35
- package/ios/Model/NitroTypeStubs.swift +46 -21
- package/ios/Model/PlayerUpdateOptions.swift +7 -0
- package/ios/Player/NowPlayingUpdater.swift +1 -1
- package/ios/Player/PlaybackCoordinator.swift +2 -2
- package/ios/Player/RetryManager.swift +4 -3
- package/ios/Tests/BrowserPathHelperTests.swift +50 -20
- package/ios/Tests/CarPlayArtworkResolverTests.swift +24 -41
- package/ios/Tests/JsonModelsTests.swift +75 -1
- package/ios/Tests/PlaybackStateStoreTests.swift +4 -3
- package/ios/Tests/ResolvedTrackCopyingTests.swift +37 -35
- package/ios/Tests/SearchDrillInTests.swift +16 -16
- package/ios/Tests/SectionPresentationTests.swift +61 -0
- package/ios/Tests/SectionScopeTests.swift +87 -55
- package/ios/Tests/StyleResolverTests.swift +67 -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/TrackSelector.swift +45 -30
- package/ios/Util/ArtworkImageFetcher.swift +16 -1
- 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/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/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/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/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/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 +260 -127
- 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 +4 -3
- package/nitrogen/generated/android/c++/JBrowseResult.hpp +10 -4
- package/nitrogen/generated/android/c++/JCarPlayPlayingIndicatorLocation.hpp +58 -0
- package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +4 -3
- package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +4 -3
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +4 -3
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +4 -3
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +4 -3
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +4 -3
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +4 -2
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +4 -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 +10 -4
- package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +4 -3
- package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +2 -5
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +4 -3
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +9 -3
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +4 -2
- package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +21 -14
- package/nitrogen/generated/android/c++/JIOSOptions.hpp +9 -3
- package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +4 -3
- package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +16 -10
- package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +8 -2
- package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +6 -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 +4 -3
- package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +5 -11
- package/nitrogen/generated/android/c++/JResolvedTrack.hpp +49 -51
- package/nitrogen/generated/android/c++/JSection.hpp +114 -0
- package/nitrogen/generated/android/c++/JSectionStyle.hpp +69 -0
- package/nitrogen/generated/android/c++/JStyleDisplay.hpp +58 -0
- package/nitrogen/generated/android/c++/JTrack.hpp +19 -48
- package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +4 -2
- package/nitrogen/generated/android/c++/JTrackStyle.hpp +25 -18
- package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +10 -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/IOSOptions.kt +6 -3
- 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/Section.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoriteConfig.kt → SectionStyle.kt} +12 -6
- 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 +23 -5
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +104 -82
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +16 -10
- package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +16 -10
- package/nitrogen/generated/ios/swift/ArtworkRendering.swift +40 -0
- package/nitrogen/generated/ios/swift/CarPlayPlayingIndicatorLocation.swift +40 -0
- package/nitrogen/generated/ios/swift/IOSOptions.swift +7 -2
- 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 +64 -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 +28 -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++/IOSOptions.hpp +9 -2
- 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 +96 -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 +50 -34
- package/package.json +1 -1
- 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/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 +139 -0
- package/src/types/browser-native.ts +2 -2
- package/src/types/browser-nodes.ts +268 -136
- 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/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/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
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
///
|
|
2
|
-
/// JImageRowItem.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
|
-
#include <fbjni/fbjni.h>
|
|
11
|
-
#include "ImageRowItem.hpp"
|
|
12
|
-
|
|
13
|
-
#include "HttpMethod.hpp"
|
|
14
|
-
#include "ImageSource.hpp"
|
|
15
|
-
#include "JHttpMethod.hpp"
|
|
16
|
-
#include "JImageSource.hpp"
|
|
17
|
-
#include "JTrackRequest.hpp"
|
|
18
|
-
#include "TrackRequest.hpp"
|
|
19
|
-
#include <optional>
|
|
20
|
-
#include <string>
|
|
21
|
-
#include <unordered_map>
|
|
22
|
-
|
|
23
|
-
namespace margelo::nitro::audiobrowser {
|
|
24
|
-
|
|
25
|
-
using namespace facebook;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* The C++ JNI bridge between the C++ struct "ImageRowItem" and the the Kotlin data class "ImageRowItem".
|
|
29
|
-
*/
|
|
30
|
-
struct JImageRowItem final: public jni::JavaClass<JImageRowItem> {
|
|
31
|
-
public:
|
|
32
|
-
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/audiobrowser/ImageRowItem;";
|
|
33
|
-
|
|
34
|
-
public:
|
|
35
|
-
/**
|
|
36
|
-
* Convert this Java/Kotlin-based struct to the C++ struct ImageRowItem by copying all values to C++.
|
|
37
|
-
*/
|
|
38
|
-
[[maybe_unused]]
|
|
39
|
-
[[nodiscard]]
|
|
40
|
-
ImageRowItem toCpp() const {
|
|
41
|
-
static const auto clazz = javaClassStatic();
|
|
42
|
-
static const auto fieldId = clazz->getField<jni::JString>("id");
|
|
43
|
-
jni::local_ref<jni::JString> id = this->getFieldValue(fieldId);
|
|
44
|
-
static const auto fieldUrl = clazz->getField<jni::JString>("url");
|
|
45
|
-
jni::local_ref<jni::JString> url = this->getFieldValue(fieldUrl);
|
|
46
|
-
static const auto fieldSrc = clazz->getField<jni::JString>("src");
|
|
47
|
-
jni::local_ref<jni::JString> src = this->getFieldValue(fieldSrc);
|
|
48
|
-
static const auto fieldArtwork = clazz->getField<jni::JString>("artwork");
|
|
49
|
-
jni::local_ref<jni::JString> artwork = this->getFieldValue(fieldArtwork);
|
|
50
|
-
static const auto fieldArtworkSource = clazz->getField<JImageSource>("artworkSource");
|
|
51
|
-
jni::local_ref<JImageSource> artworkSource = this->getFieldValue(fieldArtworkSource);
|
|
52
|
-
static const auto fieldTitle = clazz->getField<jni::JString>("title");
|
|
53
|
-
jni::local_ref<jni::JString> title = this->getFieldValue(fieldTitle);
|
|
54
|
-
static const auto fieldArtist = clazz->getField<jni::JString>("artist");
|
|
55
|
-
jni::local_ref<jni::JString> artist = this->getFieldValue(fieldArtist);
|
|
56
|
-
static const auto fieldAlbum = clazz->getField<jni::JString>("album");
|
|
57
|
-
jni::local_ref<jni::JString> album = this->getFieldValue(fieldAlbum);
|
|
58
|
-
static const auto fieldAlbumUrl = clazz->getField<jni::JString>("albumUrl");
|
|
59
|
-
jni::local_ref<jni::JString> albumUrl = this->getFieldValue(fieldAlbumUrl);
|
|
60
|
-
static const auto fieldLive = clazz->getField<jni::JBoolean>("live");
|
|
61
|
-
jni::local_ref<jni::JBoolean> live = this->getFieldValue(fieldLive);
|
|
62
|
-
static const auto fieldRequest = clazz->getField<JTrackRequest>("request");
|
|
63
|
-
jni::local_ref<JTrackRequest> request = this->getFieldValue(fieldRequest);
|
|
64
|
-
return ImageRowItem(
|
|
65
|
-
id != nullptr ? std::make_optional(id->toStdString()) : std::nullopt,
|
|
66
|
-
url != nullptr ? std::make_optional(url->toStdString()) : std::nullopt,
|
|
67
|
-
src != nullptr ? std::make_optional(src->toStdString()) : std::nullopt,
|
|
68
|
-
artwork != nullptr ? std::make_optional(artwork->toStdString()) : std::nullopt,
|
|
69
|
-
artworkSource != nullptr ? std::make_optional(artworkSource->toCpp()) : std::nullopt,
|
|
70
|
-
title->toStdString(),
|
|
71
|
-
artist != nullptr ? std::make_optional(artist->toStdString()) : std::nullopt,
|
|
72
|
-
album != nullptr ? std::make_optional(album->toStdString()) : std::nullopt,
|
|
73
|
-
albumUrl != nullptr ? std::make_optional(albumUrl->toStdString()) : std::nullopt,
|
|
74
|
-
live != nullptr ? std::make_optional(static_cast<bool>(live->value())) : std::nullopt,
|
|
75
|
-
request != nullptr ? std::make_optional(request->toCpp()) : std::nullopt
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
public:
|
|
80
|
-
/**
|
|
81
|
-
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
82
|
-
*/
|
|
83
|
-
[[maybe_unused]]
|
|
84
|
-
static jni::local_ref<JImageRowItem::javaobject> fromCpp(const ImageRowItem& value) {
|
|
85
|
-
using JSignature = JImageRowItem(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JImageSource>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<JTrackRequest>);
|
|
86
|
-
static const auto clazz = javaClassStatic();
|
|
87
|
-
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
88
|
-
return create(
|
|
89
|
-
clazz,
|
|
90
|
-
value.id.has_value() ? jni::make_jstring(value.id.value()) : nullptr,
|
|
91
|
-
value.url.has_value() ? jni::make_jstring(value.url.value()) : nullptr,
|
|
92
|
-
value.src.has_value() ? jni::make_jstring(value.src.value()) : nullptr,
|
|
93
|
-
value.artwork.has_value() ? jni::make_jstring(value.artwork.value()) : nullptr,
|
|
94
|
-
value.artworkSource.has_value() ? JImageSource::fromCpp(value.artworkSource.value()) : nullptr,
|
|
95
|
-
jni::make_jstring(value.title),
|
|
96
|
-
value.artist.has_value() ? jni::make_jstring(value.artist.value()) : nullptr,
|
|
97
|
-
value.album.has_value() ? jni::make_jstring(value.album.value()) : nullptr,
|
|
98
|
-
value.albumUrl.has_value() ? jni::make_jstring(value.albumUrl.value()) : nullptr,
|
|
99
|
-
value.live.has_value() ? jni::JBoolean::valueOf(value.live.value()) : nullptr,
|
|
100
|
-
value.request.has_value() ? JTrackRequest::fromCpp(value.request.value()) : nullptr
|
|
101
|
-
);
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
} // namespace margelo::nitro::audiobrowser
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
///
|
|
2
|
-
/// JVariant_Boolean_FavoriteConfig.cpp
|
|
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
|
-
#include "JVariant_Boolean_FavoriteConfig.hpp"
|
|
9
|
-
|
|
10
|
-
namespace margelo::nitro::audiobrowser {
|
|
11
|
-
/**
|
|
12
|
-
* Converts JVariant_Boolean_FavoriteConfig to std::variant<bool, FavoriteConfig>
|
|
13
|
-
*/
|
|
14
|
-
std::variant<bool, FavoriteConfig> JVariant_Boolean_FavoriteConfig::toCpp() const {
|
|
15
|
-
if (isInstanceOf(JVariant_Boolean_FavoriteConfig_impl::First::javaClassStatic())) {
|
|
16
|
-
// It's a `bool`
|
|
17
|
-
auto jniValue = static_cast<const JVariant_Boolean_FavoriteConfig_impl::First*>(this)->getValue();
|
|
18
|
-
return static_cast<bool>(jniValue);
|
|
19
|
-
} else if (isInstanceOf(JVariant_Boolean_FavoriteConfig_impl::Second::javaClassStatic())) {
|
|
20
|
-
// It's a `FavoriteConfig`
|
|
21
|
-
auto jniValue = static_cast<const JVariant_Boolean_FavoriteConfig_impl::Second*>(this)->getValue();
|
|
22
|
-
return jniValue->toCpp();
|
|
23
|
-
}
|
|
24
|
-
throw std::invalid_argument("Variant is unknown Kotlin instance!");
|
|
25
|
-
}
|
|
26
|
-
} // namespace margelo::nitro::audiobrowser
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
///
|
|
2
|
-
/// JVariant_Boolean_FavoriteConfig.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
|
-
#include <fbjni/fbjni.h>
|
|
11
|
-
#include <variant>
|
|
12
|
-
|
|
13
|
-
#include "FavoriteConfig.hpp"
|
|
14
|
-
#include <variant>
|
|
15
|
-
#include "JFavoriteConfig.hpp"
|
|
16
|
-
#include "FavoritesMatchMode.hpp"
|
|
17
|
-
#include "JFavoritesMatchMode.hpp"
|
|
18
|
-
|
|
19
|
-
namespace margelo::nitro::audiobrowser {
|
|
20
|
-
|
|
21
|
-
using namespace facebook;
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* The C++ JNI bridge between the C++ std::variant and the Java class "Variant_Boolean_FavoriteConfig".
|
|
25
|
-
*/
|
|
26
|
-
class JVariant_Boolean_FavoriteConfig: public jni::JavaClass<JVariant_Boolean_FavoriteConfig> {
|
|
27
|
-
public:
|
|
28
|
-
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/audiobrowser/Variant_Boolean_FavoriteConfig;";
|
|
29
|
-
|
|
30
|
-
static jni::local_ref<JVariant_Boolean_FavoriteConfig> create_0(jboolean value) {
|
|
31
|
-
static const auto method = javaClassStatic()->getStaticMethod<JVariant_Boolean_FavoriteConfig(jboolean)>("create");
|
|
32
|
-
return method(javaClassStatic(), value);
|
|
33
|
-
}
|
|
34
|
-
static jni::local_ref<JVariant_Boolean_FavoriteConfig> create_1(jni::alias_ref<JFavoriteConfig> value) {
|
|
35
|
-
static const auto method = javaClassStatic()->getStaticMethod<JVariant_Boolean_FavoriteConfig(jni::alias_ref<JFavoriteConfig>)>("create");
|
|
36
|
-
return method(javaClassStatic(), value);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
static jni::local_ref<JVariant_Boolean_FavoriteConfig> fromCpp(const std::variant<bool, FavoriteConfig>& variant) {
|
|
40
|
-
switch (variant.index()) {
|
|
41
|
-
case 0: return create_0(std::get<0>(variant));
|
|
42
|
-
case 1: return create_1(JFavoriteConfig::fromCpp(std::get<1>(variant)));
|
|
43
|
-
default: throw std::invalid_argument("Variant holds unknown index! (" + std::to_string(variant.index()) + ")");
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
[[nodiscard]] std::variant<bool, FavoriteConfig> toCpp() const;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
namespace JVariant_Boolean_FavoriteConfig_impl {
|
|
51
|
-
class First final: public jni::JavaClass<First, JVariant_Boolean_FavoriteConfig> {
|
|
52
|
-
public:
|
|
53
|
-
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/audiobrowser/Variant_Boolean_FavoriteConfig$First;";
|
|
54
|
-
|
|
55
|
-
[[nodiscard]] jboolean getValue() const {
|
|
56
|
-
static const auto field = javaClassStatic()->getField<jboolean>("value");
|
|
57
|
-
return getFieldValue(field);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
class Second final: public jni::JavaClass<Second, JVariant_Boolean_FavoriteConfig> {
|
|
62
|
-
public:
|
|
63
|
-
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/audiobrowser/Variant_Boolean_FavoriteConfig$Second;";
|
|
64
|
-
|
|
65
|
-
[[nodiscard]] jni::local_ref<JFavoriteConfig> getValue() const {
|
|
66
|
-
static const auto field = javaClassStatic()->getField<JFavoriteConfig>("value");
|
|
67
|
-
return getFieldValue(field);
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
} // namespace JVariant_Boolean_FavoriteConfig_impl
|
|
71
|
-
} // namespace margelo::nitro::audiobrowser
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
///
|
|
2
|
-
/// ImageRowItem.kt
|
|
3
|
-
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
-
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
-
///
|
|
7
|
-
|
|
8
|
-
package com.margelo.nitro.audiobrowser
|
|
9
|
-
|
|
10
|
-
import androidx.annotation.Keep
|
|
11
|
-
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Represents the JavaScript object/struct "ImageRowItem".
|
|
16
|
-
*/
|
|
17
|
-
@DoNotStrip
|
|
18
|
-
@Keep
|
|
19
|
-
data class ImageRowItem(
|
|
20
|
-
@DoNotStrip
|
|
21
|
-
@Keep
|
|
22
|
-
val id: String?,
|
|
23
|
-
@DoNotStrip
|
|
24
|
-
@Keep
|
|
25
|
-
val url: String?,
|
|
26
|
-
@DoNotStrip
|
|
27
|
-
@Keep
|
|
28
|
-
val src: String?,
|
|
29
|
-
@DoNotStrip
|
|
30
|
-
@Keep
|
|
31
|
-
val artwork: String?,
|
|
32
|
-
@DoNotStrip
|
|
33
|
-
@Keep
|
|
34
|
-
val artworkSource: ImageSource?,
|
|
35
|
-
@DoNotStrip
|
|
36
|
-
@Keep
|
|
37
|
-
val title: String,
|
|
38
|
-
@DoNotStrip
|
|
39
|
-
@Keep
|
|
40
|
-
val artist: String?,
|
|
41
|
-
@DoNotStrip
|
|
42
|
-
@Keep
|
|
43
|
-
val album: String?,
|
|
44
|
-
@DoNotStrip
|
|
45
|
-
@Keep
|
|
46
|
-
val albumUrl: String?,
|
|
47
|
-
@DoNotStrip
|
|
48
|
-
@Keep
|
|
49
|
-
val live: Boolean?,
|
|
50
|
-
@DoNotStrip
|
|
51
|
-
@Keep
|
|
52
|
-
val request: TrackRequest?
|
|
53
|
-
) {
|
|
54
|
-
/* primary constructor */
|
|
55
|
-
|
|
56
|
-
companion object {
|
|
57
|
-
/**
|
|
58
|
-
* Constructor called from C++
|
|
59
|
-
*/
|
|
60
|
-
@DoNotStrip
|
|
61
|
-
@Keep
|
|
62
|
-
@Suppress("unused")
|
|
63
|
-
@JvmStatic
|
|
64
|
-
private fun fromCpp(id: String?, url: String?, src: String?, artwork: String?, artworkSource: ImageSource?, title: String, artist: String?, album: String?, albumUrl: String?, live: Boolean?, request: TrackRequest?): ImageRowItem {
|
|
65
|
-
return ImageRowItem(id, url, src, artwork, artworkSource, title, artist, album, albumUrl, live, request)
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
///
|
|
2
|
-
/// Variant_Boolean_FavoriteConfig.kt
|
|
3
|
-
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
-
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
-
///
|
|
7
|
-
|
|
8
|
-
package com.margelo.nitro.audiobrowser
|
|
9
|
-
|
|
10
|
-
import com.facebook.proguard.annotations.DoNotStrip
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Represents the TypeScript variant "Boolean | FavoriteConfig".
|
|
15
|
-
*/
|
|
16
|
-
@Suppress("ClassName")
|
|
17
|
-
@DoNotStrip
|
|
18
|
-
sealed class Variant_Boolean_FavoriteConfig {
|
|
19
|
-
@DoNotStrip
|
|
20
|
-
data class First(@DoNotStrip val value: Boolean): Variant_Boolean_FavoriteConfig()
|
|
21
|
-
@DoNotStrip
|
|
22
|
-
data class Second(@DoNotStrip val value: FavoriteConfig): Variant_Boolean_FavoriteConfig()
|
|
23
|
-
|
|
24
|
-
val isFirst: Boolean
|
|
25
|
-
get() = this is First
|
|
26
|
-
val isSecond: Boolean
|
|
27
|
-
get() = this is Second
|
|
28
|
-
|
|
29
|
-
fun asFirstOrNull(): Boolean? {
|
|
30
|
-
val value = (this as? First)?.value ?: return null
|
|
31
|
-
return value
|
|
32
|
-
}
|
|
33
|
-
fun asSecondOrNull(): FavoriteConfig? {
|
|
34
|
-
val value = (this as? Second)?.value ?: return null
|
|
35
|
-
return value
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
inline fun <R> match(first: (Boolean) -> R, second: (FavoriteConfig) -> R): R {
|
|
39
|
-
return when (this) {
|
|
40
|
-
is First -> first(value)
|
|
41
|
-
is Second -> second(value)
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
companion object {
|
|
46
|
-
@JvmStatic
|
|
47
|
-
@DoNotStrip
|
|
48
|
-
fun create(value: Boolean): Variant_Boolean_FavoriteConfig = First(value)
|
|
49
|
-
@JvmStatic
|
|
50
|
-
@DoNotStrip
|
|
51
|
-
fun create(value: FavoriteConfig): Variant_Boolean_FavoriteConfig = Second(value)
|
|
52
|
-
}
|
|
53
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
///
|
|
2
|
-
/// FavoriteConfig.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 `FavoriteConfig`, backed by a C++ struct.
|
|
12
|
-
*/
|
|
13
|
-
public typealias FavoriteConfig = margelo.nitro.audiobrowser.FavoriteConfig
|
|
14
|
-
|
|
15
|
-
public extension FavoriteConfig {
|
|
16
|
-
private typealias bridge = margelo.nitro.audiobrowser.bridge.swift
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Create a new instance of `FavoriteConfig`.
|
|
20
|
-
*/
|
|
21
|
-
init(match: FavoritesMatchMode) {
|
|
22
|
-
self.init(match)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
@inline(__always)
|
|
26
|
-
var match: FavoritesMatchMode {
|
|
27
|
-
return self.__match
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
///
|
|
2
|
-
/// FavoritesMatchMode.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 `FavoritesMatchMode`, backed by a C++ enum.
|
|
10
|
-
*/
|
|
11
|
-
public typealias FavoritesMatchMode = margelo.nitro.audiobrowser.FavoritesMatchMode
|
|
12
|
-
|
|
13
|
-
public extension FavoritesMatchMode {
|
|
14
|
-
/**
|
|
15
|
-
* Get a FavoritesMatchMode 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 "exact":
|
|
21
|
-
self = .exact
|
|
22
|
-
case "partial":
|
|
23
|
-
self = .partial
|
|
24
|
-
default:
|
|
25
|
-
return nil
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Get the String value this FavoritesMatchMode represents.
|
|
31
|
-
*/
|
|
32
|
-
var stringValue: String {
|
|
33
|
-
switch self {
|
|
34
|
-
case .exact:
|
|
35
|
-
return "exact"
|
|
36
|
-
case .partial:
|
|
37
|
-
return "partial"
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
///
|
|
2
|
-
/// ImageRowItem.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 `ImageRowItem`, backed by a C++ struct.
|
|
12
|
-
*/
|
|
13
|
-
public typealias ImageRowItem = margelo.nitro.audiobrowser.ImageRowItem
|
|
14
|
-
|
|
15
|
-
public extension ImageRowItem {
|
|
16
|
-
private typealias bridge = margelo.nitro.audiobrowser.bridge.swift
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Create a new instance of `ImageRowItem`.
|
|
20
|
-
*/
|
|
21
|
-
init(id: String?, url: String?, src: String?, artwork: String?, artworkSource: ImageSource?, title: String, artist: String?, album: String?, albumUrl: String?, live: Bool?, request: TrackRequest?) {
|
|
22
|
-
self.init({ () -> bridge.std__optional_std__string_ in
|
|
23
|
-
if let __unwrappedValue = id {
|
|
24
|
-
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
25
|
-
} else {
|
|
26
|
-
return .init()
|
|
27
|
-
}
|
|
28
|
-
}(), { () -> bridge.std__optional_std__string_ in
|
|
29
|
-
if let __unwrappedValue = url {
|
|
30
|
-
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
31
|
-
} else {
|
|
32
|
-
return .init()
|
|
33
|
-
}
|
|
34
|
-
}(), { () -> bridge.std__optional_std__string_ in
|
|
35
|
-
if let __unwrappedValue = src {
|
|
36
|
-
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
37
|
-
} else {
|
|
38
|
-
return .init()
|
|
39
|
-
}
|
|
40
|
-
}(), { () -> bridge.std__optional_std__string_ in
|
|
41
|
-
if let __unwrappedValue = artwork {
|
|
42
|
-
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
43
|
-
} else {
|
|
44
|
-
return .init()
|
|
45
|
-
}
|
|
46
|
-
}(), { () -> bridge.std__optional_ImageSource_ in
|
|
47
|
-
if let __unwrappedValue = artworkSource {
|
|
48
|
-
return bridge.create_std__optional_ImageSource_(__unwrappedValue)
|
|
49
|
-
} else {
|
|
50
|
-
return .init()
|
|
51
|
-
}
|
|
52
|
-
}(), std.string(title), { () -> bridge.std__optional_std__string_ in
|
|
53
|
-
if let __unwrappedValue = artist {
|
|
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 = album {
|
|
60
|
-
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
61
|
-
} else {
|
|
62
|
-
return .init()
|
|
63
|
-
}
|
|
64
|
-
}(), { () -> bridge.std__optional_std__string_ in
|
|
65
|
-
if let __unwrappedValue = albumUrl {
|
|
66
|
-
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
67
|
-
} else {
|
|
68
|
-
return .init()
|
|
69
|
-
}
|
|
70
|
-
}(), { () -> bridge.std__optional_bool_ in
|
|
71
|
-
if let __unwrappedValue = live {
|
|
72
|
-
return bridge.create_std__optional_bool_(__unwrappedValue)
|
|
73
|
-
} else {
|
|
74
|
-
return .init()
|
|
75
|
-
}
|
|
76
|
-
}(), { () -> bridge.std__optional_TrackRequest_ in
|
|
77
|
-
if let __unwrappedValue = request {
|
|
78
|
-
return bridge.create_std__optional_TrackRequest_(__unwrappedValue)
|
|
79
|
-
} else {
|
|
80
|
-
return .init()
|
|
81
|
-
}
|
|
82
|
-
}())
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
@inline(__always)
|
|
86
|
-
var id: String? {
|
|
87
|
-
return { () -> String? in
|
|
88
|
-
if bridge.has_value_std__optional_std__string_(self.__id) {
|
|
89
|
-
let __unwrapped = bridge.get_std__optional_std__string_(self.__id)
|
|
90
|
-
return String(__unwrapped)
|
|
91
|
-
} else {
|
|
92
|
-
return nil
|
|
93
|
-
}
|
|
94
|
-
}()
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
@inline(__always)
|
|
98
|
-
var url: String? {
|
|
99
|
-
return { () -> String? in
|
|
100
|
-
if bridge.has_value_std__optional_std__string_(self.__url) {
|
|
101
|
-
let __unwrapped = bridge.get_std__optional_std__string_(self.__url)
|
|
102
|
-
return String(__unwrapped)
|
|
103
|
-
} else {
|
|
104
|
-
return nil
|
|
105
|
-
}
|
|
106
|
-
}()
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
@inline(__always)
|
|
110
|
-
var src: String? {
|
|
111
|
-
return { () -> String? in
|
|
112
|
-
if bridge.has_value_std__optional_std__string_(self.__src) {
|
|
113
|
-
let __unwrapped = bridge.get_std__optional_std__string_(self.__src)
|
|
114
|
-
return String(__unwrapped)
|
|
115
|
-
} else {
|
|
116
|
-
return nil
|
|
117
|
-
}
|
|
118
|
-
}()
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
@inline(__always)
|
|
122
|
-
var artwork: String? {
|
|
123
|
-
return { () -> String? in
|
|
124
|
-
if bridge.has_value_std__optional_std__string_(self.__artwork) {
|
|
125
|
-
let __unwrapped = bridge.get_std__optional_std__string_(self.__artwork)
|
|
126
|
-
return String(__unwrapped)
|
|
127
|
-
} else {
|
|
128
|
-
return nil
|
|
129
|
-
}
|
|
130
|
-
}()
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
@inline(__always)
|
|
134
|
-
var artworkSource: ImageSource? {
|
|
135
|
-
return self.__artworkSource.value
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
@inline(__always)
|
|
139
|
-
var title: String {
|
|
140
|
-
return String(self.__title)
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
@inline(__always)
|
|
144
|
-
var artist: String? {
|
|
145
|
-
return { () -> String? in
|
|
146
|
-
if bridge.has_value_std__optional_std__string_(self.__artist) {
|
|
147
|
-
let __unwrapped = bridge.get_std__optional_std__string_(self.__artist)
|
|
148
|
-
return String(__unwrapped)
|
|
149
|
-
} else {
|
|
150
|
-
return nil
|
|
151
|
-
}
|
|
152
|
-
}()
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
@inline(__always)
|
|
156
|
-
var album: String? {
|
|
157
|
-
return { () -> String? in
|
|
158
|
-
if bridge.has_value_std__optional_std__string_(self.__album) {
|
|
159
|
-
let __unwrapped = bridge.get_std__optional_std__string_(self.__album)
|
|
160
|
-
return String(__unwrapped)
|
|
161
|
-
} else {
|
|
162
|
-
return nil
|
|
163
|
-
}
|
|
164
|
-
}()
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
@inline(__always)
|
|
168
|
-
var albumUrl: String? {
|
|
169
|
-
return { () -> String? in
|
|
170
|
-
if bridge.has_value_std__optional_std__string_(self.__albumUrl) {
|
|
171
|
-
let __unwrapped = bridge.get_std__optional_std__string_(self.__albumUrl)
|
|
172
|
-
return String(__unwrapped)
|
|
173
|
-
} else {
|
|
174
|
-
return nil
|
|
175
|
-
}
|
|
176
|
-
}()
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
@inline(__always)
|
|
180
|
-
var live: Bool? {
|
|
181
|
-
return { () -> Bool? in
|
|
182
|
-
if bridge.has_value_std__optional_bool_(self.__live) {
|
|
183
|
-
let __unwrapped = bridge.get_std__optional_bool_(self.__live)
|
|
184
|
-
return __unwrapped
|
|
185
|
-
} else {
|
|
186
|
-
return nil
|
|
187
|
-
}
|
|
188
|
-
}()
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
@inline(__always)
|
|
192
|
-
var request: TrackRequest? {
|
|
193
|
-
return self.__request.value
|
|
194
|
-
}
|
|
195
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
///
|
|
2
|
-
/// Variant_Bool_FavoriteConfig.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
|
-
|
|
10
|
-
/**
|
|
11
|
-
* An Swift enum with associated values representing a Variant/Union type.
|
|
12
|
-
* JS type: `boolean | struct`
|
|
13
|
-
*/
|
|
14
|
-
@frozen
|
|
15
|
-
public indirect enum Variant_Bool_FavoriteConfig {
|
|
16
|
-
case first(Bool)
|
|
17
|
-
case second(FavoriteConfig)
|
|
18
|
-
}
|