@5stones/react-native-audio-browser 0.1.6 → 0.3.0
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/AudioBrowser.podspec +3 -1
- package/android/src/main/cpp/cpp-adapter.cpp +4 -1
- package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +15 -9
- package/android/src/main/java/com/audiobrowser/Service.kt +0 -2
- package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +5 -0
- package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +31 -0
- package/android/src/main/java/com/audiobrowser/browser/SimpleRouter.kt +10 -6
- package/android/src/main/java/com/audiobrowser/browser/TrackLoadHandler.kt +45 -0
- package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +39 -17
- package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +1 -0
- package/android/src/main/java/com/audiobrowser/player/Player.kt +1 -0
- package/android/src/main/java/com/audiobrowser/player/TransformingDataSource.kt +33 -11
- package/android/src/test/java/com/audiobrowser/browser/SimpleRouterTest.kt +104 -95
- package/ios/Browser/BrowserConfig.swift +31 -5
- package/ios/Browser/BrowserManager.swift +98 -23
- package/ios/Browser/JsonModels.swift +37 -0
- package/ios/CarPlay/CarPlayController.swift +256 -88
- package/ios/CarPlay/RNABAudioBrowser.h +23 -0
- package/ios/CarPlay/RNABAudioBrowser.m +22 -0
- package/ios/CarPlay/RNABMediaIntentHandler.swift +60 -0
- package/ios/Extension/ChapterMetadata+AVFoundation.swift +1 -1
- package/ios/Extension/CxxVectorConformances.swift +20 -0
- package/ios/Extension/TimedMetadata+AVFoundation.swift +5 -5
- package/ios/Extension/Track+AVPlayer.swift +5 -6
- package/ios/Extension/TrackMetadata+AVFoundation.swift +1 -1
- package/ios/HybridAudioBrowser.swift +126 -35
- package/ios/Model/MediaURL.swift +2 -1
- package/ios/Player/PlayingStateManager.swift +1 -0
- package/ios/Player/RetryManager.swift +26 -65
- package/ios/Player/SleepTimerManager.swift +6 -8
- package/ios/RemoteCommand/RemoteCommandController.swift +6 -0
- package/ios/Tests/SimpleRouterTests.swift +139 -0
- package/ios/TrackPlayer.swift +71 -53
- package/ios/Util/NetworkMonitor.swift +3 -6
- package/ios/Util/SFSymbolRenderer.swift +142 -0
- package/lib/commonjs/features/browser.js +1 -0
- package/lib/commonjs/features/browser.js.map +1 -1
- package/lib/commonjs/web/NativeAudioBrowser.js +32 -7
- package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
- package/lib/commonjs/web/SimpleRouter.js +4 -3
- package/lib/commonjs/web/SimpleRouter.js.map +1 -1
- package/lib/commonjs/web/SimpleRouter.test.js +174 -0
- package/lib/commonjs/web/SimpleRouter.test.js.map +1 -0
- package/lib/module/features/browser.js +1 -0
- package/lib/module/features/browser.js.map +1 -1
- package/lib/module/web/NativeAudioBrowser.js +32 -7
- package/lib/module/web/NativeAudioBrowser.js.map +1 -1
- package/lib/module/web/SimpleRouter.js +4 -3
- package/lib/module/web/SimpleRouter.js.map +1 -1
- package/lib/module/web/SimpleRouter.test.js +174 -0
- package/lib/module/web/SimpleRouter.test.js.map +1 -0
- package/lib/typescript/src/features/browser.d.ts.map +1 -1
- package/lib/typescript/src/types/browser-native.d.ts +2 -1
- package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
- package/lib/typescript/src/types/browser-nodes.d.ts +46 -1
- package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
- package/lib/typescript/src/types/browser.d.ts +32 -0
- package/lib/typescript/src/types/browser.d.ts.map +1 -1
- package/lib/typescript/src/web/NativeAudioBrowser.d.ts +7 -0
- package/lib/typescript/src/web/NativeAudioBrowser.d.ts.map +1 -1
- package/lib/typescript/src/web/SimpleRouter.d.ts.map +1 -1
- package/lib/typescript/src/web/SimpleRouter.test.d.ts +2 -0
- package/lib/typescript/src/web/SimpleRouter.test.d.ts.map +1 -0
- package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +1 -1
- package/nitrogen/generated/android/AudioBrowser+autolinking.gradle +1 -1
- package/nitrogen/generated/android/AudioBrowserOnLoad.cpp +67 -55
- package/nitrogen/generated/android/AudioBrowserOnLoad.hpp +14 -5
- package/nitrogen/generated/android/c++/JAndroidAudioContentType.hpp +6 -7
- package/nitrogen/generated/android/c++/JAndroidAudioOffloadSettings.hpp +1 -1
- package/nitrogen/generated/android/c++/JAndroidOptions.hpp +1 -1
- package/nitrogen/generated/android/c++/JAndroidPlayerWakeMode.hpp +4 -5
- package/nitrogen/generated/android/c++/JAndroidUpdateOptions.hpp +1 -1
- package/nitrogen/generated/android/c++/JAppKilledPlaybackBehavior.hpp +4 -5
- package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +4 -1
- package/nitrogen/generated/android/c++/JBatteryOptimizationStatus.hpp +4 -5
- package/nitrogen/generated/android/c++/JBatteryOptimizationStatusChangedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JBatteryWarningPendingChangedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JBrowseError.hpp +1 -1
- package/nitrogen/generated/android/c++/JBrowseResult.cpp +1 -1
- package/nitrogen/generated/android/c++/JBrowseResult.hpp +7 -3
- package/nitrogen/generated/android/c++/JBrowserSourceCallbackParam.hpp +1 -1
- package/nitrogen/generated/android/c++/JCarPlayNowPlayingButton.hpp +5 -6
- package/nitrogen/generated/android/c++/JCarPlaySiriListButtonPosition.hpp +58 -0
- package/nitrogen/generated/android/c++/JChapterMetadata.hpp +1 -1
- package/nitrogen/generated/android/c++/JEqualizerSettings.hpp +1 -1
- package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +4 -1
- package/nitrogen/generated/android/c++/JFormatNavigationErrorParams.hpp +1 -1
- package/nitrogen/generated/android/c++/JFormattedNavigationError.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +4 -1
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.hpp +5 -1
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +3 -1
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +139 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_BatteryOptimizationStatusChangedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_BatteryWarningPendingChangedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_EqualizerSettings.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +4 -1
- package/nitrogen/generated/android/c++/JFunc_void_IosOutput.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_NavigationErrorEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_NowPlayingMetadata.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_Playback.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +4 -1
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackErrorEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackPlayWhenReadyChangedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackProgressUpdatedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackQueueEndedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_PlayingState.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_RemoteJumpBackwardEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_RemoteJumpForwardEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_RemotePlayIdEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_RemotePlaySearchEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_RemoteSeekEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_RemoteSetRatingEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_RemoteSkipEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_RepeatModeChangedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_TimedMetadata.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_TrackMetadata.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_double.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_FormattedNavigationError_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +5 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_ChapterMetadata_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +3 -1
- package/nitrogen/generated/android/c++/JHeartRating.hpp +1 -1
- package/nitrogen/generated/android/c++/JHttpMethod.hpp +8 -9
- package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +230 -206
- package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.hpp +20 -22
- package/nitrogen/generated/android/c++/JIOSCategory.hpp +7 -8
- package/nitrogen/generated/android/c++/JIOSCategoryMode.hpp +10 -11
- package/nitrogen/generated/android/c++/JIOSCategoryOptions.hpp +8 -9
- package/nitrogen/generated/android/c++/JIOSCategoryPolicy.hpp +4 -5
- package/nitrogen/generated/android/c++/JImageContext.hpp +1 -1
- package/nitrogen/generated/android/c++/JImageQueryParams.hpp +1 -1
- package/nitrogen/generated/android/c++/JImageRowItem.hpp +75 -0
- package/nitrogen/generated/android/c++/JImageSource.hpp +1 -1
- package/nitrogen/generated/android/c++/JIosOutput.hpp +1 -1
- package/nitrogen/generated/android/c++/JIosOutputType.hpp +12 -13
- package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +4 -1
- package/nitrogen/generated/android/c++/JMediaTransformParams.hpp +1 -1
- package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +22 -2
- package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +5 -1
- package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +1 -1
- package/nitrogen/generated/android/c++/JNavigationError.hpp +1 -1
- package/nitrogen/generated/android/c++/JNavigationErrorEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JNavigationErrorType.hpp +6 -7
- package/nitrogen/generated/android/c++/JNitroAndroidUpdateOptions.hpp +1 -1
- package/nitrogen/generated/android/c++/JNotificationButton.hpp +6 -7
- package/nitrogen/generated/android/c++/JNotificationButtonLayout.hpp +1 -1
- package/nitrogen/generated/android/c++/JNowPlayingMetadata.hpp +1 -1
- package/nitrogen/generated/android/c++/JNowPlayingUpdate.hpp +1 -1
- package/nitrogen/generated/android/c++/JOptions.hpp +1 -1
- package/nitrogen/generated/android/c++/JPartialAndroidSetupPlayerOptions.hpp +1 -1
- package/nitrogen/generated/android/c++/JPartialIOSSetupPlayerOptions.hpp +1 -1
- package/nitrogen/generated/android/c++/JPartialSetupPlayerOptions.hpp +1 -1
- package/nitrogen/generated/android/c++/JPercentageRating.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlayback.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +4 -1
- package/nitrogen/generated/android/c++/JPlaybackError.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlaybackErrorEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlaybackPlayWhenReadyChangedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlaybackProgressUpdatedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlaybackQueueEndedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlaybackState.hpp +10 -11
- package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +1 -1
- package/nitrogen/generated/android/c++/JPlayingState.hpp +1 -1
- package/nitrogen/generated/android/c++/JProgress.hpp +1 -1
- package/nitrogen/generated/android/c++/JRatingType.hpp +8 -9
- package/nitrogen/generated/android/c++/JRemoteJumpBackwardEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JRemoteJumpForwardEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JRemotePlayIdEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JRemotePlaySearchEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JRemoteSeekEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JRemoteSetRatingEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JRemoteSkipEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JRepeatMode.hpp +4 -5
- package/nitrogen/generated/android/c++/JRepeatModeChangedEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JRequestConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JResolvedTrack.hpp +34 -4
- package/nitrogen/generated/android/c++/JRetryConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JSearchMode.hpp +7 -8
- package/nitrogen/generated/android/c++/JSearchParams.hpp +1 -1
- package/nitrogen/generated/android/c++/JSleepTimer.cpp +1 -1
- package/nitrogen/generated/android/c++/JSleepTimer.hpp +4 -4
- package/nitrogen/generated/android/c++/JSleepTimerEndOfTrack.hpp +1 -1
- package/nitrogen/generated/android/c++/JSleepTimerTime.hpp +1 -1
- package/nitrogen/generated/android/c++/JStarRating.hpp +1 -1
- package/nitrogen/generated/android/c++/JThumbsRating.hpp +1 -1
- package/nitrogen/generated/android/c++/JTimedMetadata.hpp +1 -1
- package/nitrogen/generated/android/c++/JTrack.hpp +29 -4
- package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +96 -0
- package/nitrogen/generated/android/c++/JTrackMetadata.hpp +1 -1
- package/nitrogen/generated/android/c++/JTrackStyle.hpp +3 -4
- package/nitrogen/generated/android/c++/JTransformableRequestConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JUpdateOptions.hpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_Boolean_AndroidAudioOffloadSettings.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_Boolean_AndroidAudioOffloadSettings.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_Boolean_RetryConfig.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_Boolean_RetryConfig.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.hpp +5 -5
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.hpp +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidAudioContentType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidAudioOffloadSettings.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidOptions.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidPlayerWakeMode.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidUpdateOptions.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AppKilledPlaybackBehavior.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ArtworkRequestConfig.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AudioBrowserOnLoad.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryOptimizationStatus.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryOptimizationStatusChangedEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryWarningPendingChangedEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowseError.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowseResult.kt +1 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowserSourceCallbackParam.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayNowPlayingButton.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlaySiriListButtonPosition.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ChapterMetadata.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/EqualizerSettings.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FavoriteChangedEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormatNavigationErrorParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormattedNavigationError.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_BatteryOptimizationStatusChangedEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_BatteryWarningPendingChangedEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_EqualizerSettings.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_FavoriteChangedEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_IosOutput.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_NavigationErrorEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_NowPlayingMetadata.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_Options.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_Playback.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackActiveTrackChangedEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackErrorEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackPlayWhenReadyChangedEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackProgressUpdatedEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackQueueEndedEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlayingState.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteJumpBackwardEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteJumpForwardEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemotePlayIdEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemotePlaySearchEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSeekEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSetRatingEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSkipEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RepeatModeChangedEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_TimedMetadata.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_TrackMetadata.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_bool.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_double.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_FormattedNavigationError_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_ResolvedTrack_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__string.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__vector_ChapterMetadata_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__vector_Track_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HeartRating.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HttpMethod.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HybridAudioBrowserSpec.kt +16 -19
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategory.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryMode.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryOptions.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryPolicy.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageContext.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageQueryParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageSource.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IosOutput.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IosOutputType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaRequestConfig.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaTransformParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +9 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeRouteEntry.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeUpdateOptions.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationError.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationErrorEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationErrorType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroAndroidUpdateOptions.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButton.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButtonLayout.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingMetadata.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingUpdate.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Options.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialAndroidSetupPlayerOptions.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialIOSSetupPlayerOptions.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialSetupPlayerOptions.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PercentageRating.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Playback.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackActiveTrackChangedEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackError.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackErrorEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackPlayWhenReadyChangedEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackProgressUpdatedEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackQueueEndedEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackState.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayingState.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Progress.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RatingType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteJumpBackwardEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteJumpForwardEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemotePlayIdEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemotePlaySearchEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSeekEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSetRatingEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSkipEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RepeatMode.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RepeatModeChangedEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RequestConfig.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +11 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RetryConfig.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchMode.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimer.kt +1 -8
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimerEndOfTrack.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimerTime.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StarRating.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ThumbsRating.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TimedMetadata.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +8 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackLoadEvent.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackMetadata.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TransformableRequestConfig.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/UpdateOptions.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_AndroidAudioOffloadSettings.kt +1 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_RetryConfig.kt +1 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.kt +1 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_NullType_Double.kt +1 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_NullType_NotificationButtonLayout.kt +1 -7
- package/nitrogen/generated/ios/AudioBrowser+autolinking.rb +2 -2
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.cpp +23 -6
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +239 -102
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +10 -1
- package/nitrogen/generated/ios/AudioBrowserAutolinking.mm +1 -1
- package/nitrogen/generated/ios/AudioBrowserAutolinking.swift +9 -8
- package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +25 -1
- package/nitrogen/generated/ios/swift/AndroidAudioContentType.swift +1 -1
- package/nitrogen/generated/ios/swift/AndroidAudioOffloadSettings.swift +19 -44
- package/nitrogen/generated/ios/swift/AndroidOptions.swift +30 -74
- package/nitrogen/generated/ios/swift/AndroidPlayerWakeMode.swift +1 -1
- package/nitrogen/generated/ios/swift/AndroidUpdateOptions.swift +44 -112
- package/nitrogen/generated/ios/swift/AppKilledPlaybackBehavior.swift +1 -1
- package/nitrogen/generated/ios/swift/ArtworkRequestConfig.swift +152 -303
- package/nitrogen/generated/ios/swift/BatteryOptimizationStatus.swift +1 -1
- package/nitrogen/generated/ios/swift/BatteryOptimizationStatusChangedEvent.swift +3 -10
- package/nitrogen/generated/ios/swift/BatteryWarningPendingChangedEvent.swift +3 -10
- package/nitrogen/generated/ios/swift/BrowseError.swift +3 -10
- package/nitrogen/generated/ios/swift/BrowseResult.swift +1 -1
- package/nitrogen/generated/ios/swift/BrowserSourceCallbackParam.swift +20 -45
- package/nitrogen/generated/ios/swift/CarPlayNowPlayingButton.swift +1 -1
- package/nitrogen/generated/ios/swift/CarPlaySiriListButtonPosition.swift +40 -0
- package/nitrogen/generated/ios/swift/ChapterMetadata.swift +23 -60
- package/nitrogen/generated/ios/swift/EqualizerSettings.swift +24 -97
- package/nitrogen/generated/ios/swift/FavoriteChangedEvent.swift +5 -18
- package/nitrogen/generated/ios/swift/FormatNavigationErrorParams.swift +7 -26
- package/nitrogen/generated/ios/swift/FormattedNavigationError.swift +5 -18
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.swift +61 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_BatteryOptimizationStatusChangedEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_BatteryWarningPendingChangedEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_EqualizerSettings.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_FavoriteChangedEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_IosOutput.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_NavigationErrorEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_NowPlayingMetadata.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_Options.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_Playback.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_PlaybackActiveTrackChangedEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_PlaybackErrorEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_PlaybackPlayWhenReadyChangedEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_PlaybackProgressUpdatedEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_PlaybackQueueEndedEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_PlayingState.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_RemoteJumpBackwardEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_RemoteJumpForwardEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_RemotePlayIdEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_RemotePlaySearchEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_RemoteSeekEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_RemoteSetRatingEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_RemoteSkipEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_RepeatModeChangedEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_RequestConfig.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_TimedMetadata.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_TrackMetadata.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_double.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__optional_FormattedNavigationError_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__optional_ResolvedTrack_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_RequestConfig__.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError___.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_std__vector_Track___.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_void__.swift +64 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__variant_ResolvedTrack__BrowseError_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__vector_ChapterMetadata_.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__vector_Track_.swift +1 -2
- package/nitrogen/generated/ios/swift/HeartRating.swift +3 -10
- package/nitrogen/generated/ios/swift/HttpMethod.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec.swift +3 -4
- package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec_cxx.swift +56 -7
- package/nitrogen/generated/ios/swift/IOSCategory.swift +1 -1
- package/nitrogen/generated/ios/swift/IOSCategoryMode.swift +1 -1
- package/nitrogen/generated/ios/swift/IOSCategoryOptions.swift +1 -1
- package/nitrogen/generated/ios/swift/IOSCategoryPolicy.swift +1 -1
- package/nitrogen/generated/ios/swift/ImageContext.swift +19 -30
- package/nitrogen/generated/ios/swift/ImageQueryParams.swift +19 -44
- package/nitrogen/generated/ios/swift/ImageRowItem.swift +76 -0
- package/nitrogen/generated/ios/swift/ImageSource.swift +31 -80
- package/nitrogen/generated/ios/swift/IosOutput.swift +7 -26
- package/nitrogen/generated/ios/swift/IosOutputType.swift +1 -1
- package/nitrogen/generated/ios/swift/MediaRequestConfig.swift +162 -301
- package/nitrogen/generated/ios/swift/MediaTransformParams.swift +5 -24
- package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +143 -232
- package/nitrogen/generated/ios/swift/NativeRouteEntry.swift +81 -178
- package/nitrogen/generated/ios/swift/NativeUpdateOptions.swift +53 -125
- package/nitrogen/generated/ios/swift/NavigationError.swift +23 -53
- package/nitrogen/generated/ios/swift/NavigationErrorEvent.swift +3 -16
- package/nitrogen/generated/ios/swift/NavigationErrorType.swift +1 -1
- package/nitrogen/generated/ios/swift/NitroAndroidUpdateOptions.swift +44 -112
- package/nitrogen/generated/ios/swift/NotificationButton.swift +1 -1
- package/nitrogen/generated/ios/swift/NotificationButtonLayout.swift +18 -85
- package/nitrogen/generated/ios/swift/NowPlayingMetadata.swift +109 -227
- package/nitrogen/generated/ios/swift/NowPlayingUpdate.swift +19 -44
- package/nitrogen/generated/ios/swift/Options.swift +32 -88
- package/nitrogen/generated/ios/swift/PartialAndroidSetupPlayerOptions.swift +101 -201
- package/nitrogen/generated/ios/swift/PartialIOSSetupPlayerOptions.swift +25 -85
- package/nitrogen/generated/ios/swift/PartialSetupPlayerOptions.swift +35 -91
- package/nitrogen/generated/ios/swift/PercentageRating.swift +3 -10
- package/nitrogen/generated/ios/swift/Playback.swift +5 -24
- package/nitrogen/generated/ios/swift/PlaybackActiveTrackChangedEvent.swift +25 -66
- package/nitrogen/generated/ios/swift/PlaybackError.swift +5 -18
- package/nitrogen/generated/ios/swift/PlaybackErrorEvent.swift +3 -16
- package/nitrogen/generated/ios/swift/PlaybackPlayWhenReadyChangedEvent.swift +3 -10
- package/nitrogen/generated/ios/swift/PlaybackProgressUpdatedEvent.swift +9 -34
- package/nitrogen/generated/ios/swift/PlaybackQueueEndedEvent.swift +5 -18
- package/nitrogen/generated/ios/swift/PlaybackState.swift +1 -1
- package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +109 -254
- package/nitrogen/generated/ios/swift/PlayingState.swift +5 -18
- package/nitrogen/generated/ios/swift/Progress.swift +7 -26
- package/nitrogen/generated/ios/swift/RatingType.swift +1 -1
- package/nitrogen/generated/ios/swift/RemoteJumpBackwardEvent.swift +3 -10
- package/nitrogen/generated/ios/swift/RemoteJumpForwardEvent.swift +3 -10
- package/nitrogen/generated/ios/swift/RemotePlayIdEvent.swift +12 -24
- package/nitrogen/generated/ios/swift/RemotePlaySearchEvent.swift +3 -10
- package/nitrogen/generated/ios/swift/RemoteSeekEvent.swift +3 -10
- package/nitrogen/generated/ios/swift/RemoteSetRatingEvent.swift +21 -39
- package/nitrogen/generated/ios/swift/RemoteSkipEvent.swift +3 -10
- package/nitrogen/generated/ios/swift/RepeatMode.swift +1 -1
- package/nitrogen/generated/ios/swift/RepeatModeChangedEvent.swift +3 -10
- package/nitrogen/generated/ios/swift/RequestConfig.swift +82 -191
- package/nitrogen/generated/ios/swift/ResolvedTrack.swift +164 -333
- package/nitrogen/generated/ios/swift/RetryConfig.swift +12 -24
- package/nitrogen/generated/ios/swift/SearchMode.swift +1 -1
- package/nitrogen/generated/ios/swift/SearchParams.swift +50 -129
- package/nitrogen/generated/ios/swift/SleepTimer.swift +1 -1
- package/nitrogen/generated/ios/swift/SleepTimerEndOfTrack.swift +3 -10
- package/nitrogen/generated/ios/swift/SleepTimerTime.swift +3 -10
- package/nitrogen/generated/ios/swift/StarRating.swift +3 -10
- package/nitrogen/generated/ios/swift/ThumbsRating.swift +3 -10
- package/nitrogen/generated/ios/swift/TimedMetadata.swift +46 -107
- package/nitrogen/generated/ios/swift/Track.swift +151 -319
- package/nitrogen/generated/ios/swift/TrackLoadEvent.swift +45 -0
- package/nitrogen/generated/ios/swift/TrackMetadata.swift +145 -338
- package/nitrogen/generated/ios/swift/TrackStyle.swift +1 -1
- package/nitrogen/generated/ios/swift/TransformableRequestConfig.swift +128 -252
- package/nitrogen/generated/ios/swift/UpdateOptions.swift +53 -125
- package/nitrogen/generated/ios/swift/Variant_Bool_AndroidAudioOffloadSettings.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_Bool_RetryConfig.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_NullType_NotificationButtonLayout.swift +1 -1
- package/nitrogen/generated/shared/c++/AndroidAudioContentType.hpp +1 -1
- package/nitrogen/generated/shared/c++/AndroidAudioOffloadSettings.hpp +16 -8
- package/nitrogen/generated/shared/c++/AndroidOptions.hpp +25 -17
- package/nitrogen/generated/shared/c++/AndroidPlayerWakeMode.hpp +1 -1
- package/nitrogen/generated/shared/c++/AndroidUpdateOptions.hpp +25 -17
- package/nitrogen/generated/shared/c++/AppKilledPlaybackBehavior.hpp +1 -1
- package/nitrogen/generated/shared/c++/ArtworkRequestConfig.hpp +43 -35
- package/nitrogen/generated/shared/c++/BatteryOptimizationStatus.hpp +1 -1
- package/nitrogen/generated/shared/c++/BatteryOptimizationStatusChangedEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/BatteryWarningPendingChangedEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/BrowseError.hpp +13 -5
- package/nitrogen/generated/shared/c++/BrowserSourceCallbackParam.hpp +16 -8
- package/nitrogen/generated/shared/c++/CarPlayNowPlayingButton.hpp +1 -1
- package/nitrogen/generated/shared/c++/CarPlaySiriListButtonPosition.hpp +76 -0
- package/nitrogen/generated/shared/c++/ChapterMetadata.hpp +22 -14
- package/nitrogen/generated/shared/c++/EqualizerSettings.hpp +34 -26
- package/nitrogen/generated/shared/c++/FavoriteChangedEvent.hpp +16 -8
- package/nitrogen/generated/shared/c++/FormatNavigationErrorParams.hpp +19 -11
- package/nitrogen/generated/shared/c++/FormattedNavigationError.hpp +16 -8
- package/nitrogen/generated/shared/c++/HeartRating.hpp +13 -5
- package/nitrogen/generated/shared/c++/HttpMethod.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/IOSCategory.hpp +1 -1
- package/nitrogen/generated/shared/c++/IOSCategoryMode.hpp +1 -1
- package/nitrogen/generated/shared/c++/IOSCategoryOptions.hpp +1 -1
- package/nitrogen/generated/shared/c++/IOSCategoryPolicy.hpp +1 -1
- package/nitrogen/generated/shared/c++/ImageContext.hpp +16 -8
- package/nitrogen/generated/shared/c++/ImageQueryParams.hpp +16 -8
- package/nitrogen/generated/shared/c++/ImageRowItem.hpp +98 -0
- package/nitrogen/generated/shared/c++/ImageSource.hpp +22 -14
- package/nitrogen/generated/shared/c++/IosOutput.hpp +19 -11
- package/nitrogen/generated/shared/c++/IosOutputType.hpp +1 -1
- package/nitrogen/generated/shared/c++/MediaRequestConfig.hpp +40 -32
- package/nitrogen/generated/shared/c++/MediaTransformParams.hpp +16 -8
- package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +50 -35
- package/nitrogen/generated/shared/c++/NativeRouteEntry.hpp +34 -26
- package/nitrogen/generated/shared/c++/NativeUpdateOptions.hpp +28 -20
- package/nitrogen/generated/shared/c++/NavigationError.hpp +22 -14
- package/nitrogen/generated/shared/c++/NavigationErrorEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/NavigationErrorType.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroAndroidUpdateOptions.hpp +25 -17
- package/nitrogen/generated/shared/c++/NotificationButton.hpp +1 -1
- package/nitrogen/generated/shared/c++/NotificationButtonLayout.hpp +25 -17
- package/nitrogen/generated/shared/c++/NowPlayingMetadata.hpp +40 -32
- package/nitrogen/generated/shared/c++/NowPlayingUpdate.hpp +16 -8
- package/nitrogen/generated/shared/c++/Options.hpp +28 -20
- package/nitrogen/generated/shared/c++/PartialAndroidSetupPlayerOptions.hpp +40 -32
- package/nitrogen/generated/shared/c++/PartialIOSSetupPlayerOptions.hpp +25 -17
- package/nitrogen/generated/shared/c++/PartialSetupPlayerOptions.hpp +22 -14
- package/nitrogen/generated/shared/c++/PercentageRating.hpp +13 -5
- package/nitrogen/generated/shared/c++/Playback.hpp +16 -8
- package/nitrogen/generated/shared/c++/PlaybackActiveTrackChangedEvent.hpp +25 -17
- package/nitrogen/generated/shared/c++/PlaybackError.hpp +16 -8
- package/nitrogen/generated/shared/c++/PlaybackErrorEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/PlaybackPlayWhenReadyChangedEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/PlaybackProgressUpdatedEvent.hpp +22 -14
- package/nitrogen/generated/shared/c++/PlaybackQueueEndedEvent.hpp +16 -8
- package/nitrogen/generated/shared/c++/PlaybackState.hpp +1 -1
- package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +46 -38
- package/nitrogen/generated/shared/c++/PlayingState.hpp +16 -8
- package/nitrogen/generated/shared/c++/Progress.hpp +19 -11
- package/nitrogen/generated/shared/c++/RatingType.hpp +1 -1
- package/nitrogen/generated/shared/c++/RemoteJumpBackwardEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/RemoteJumpForwardEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/RemotePlayIdEvent.hpp +16 -8
- package/nitrogen/generated/shared/c++/RemotePlaySearchEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/RemoteSeekEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/RemoteSetRatingEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/RemoteSkipEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/RepeatMode.hpp +1 -1
- package/nitrogen/generated/shared/c++/RepeatModeChangedEvent.hpp +13 -5
- package/nitrogen/generated/shared/c++/RequestConfig.hpp +34 -26
- package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +79 -57
- package/nitrogen/generated/shared/c++/RetryConfig.hpp +16 -8
- package/nitrogen/generated/shared/c++/SearchMode.hpp +1 -1
- package/nitrogen/generated/shared/c++/SearchParams.hpp +31 -23
- package/nitrogen/generated/shared/c++/SleepTimerEndOfTrack.hpp +13 -5
- package/nitrogen/generated/shared/c++/SleepTimerTime.hpp +13 -5
- package/nitrogen/generated/shared/c++/StarRating.hpp +13 -5
- package/nitrogen/generated/shared/c++/ThumbsRating.hpp +13 -5
- package/nitrogen/generated/shared/c++/TimedMetadata.hpp +25 -17
- package/nitrogen/generated/shared/c++/Track.hpp +70 -54
- package/nitrogen/generated/shared/c++/TrackLoadEvent.hpp +93 -0
- package/nitrogen/generated/shared/c++/TrackMetadata.hpp +58 -50
- package/nitrogen/generated/shared/c++/TrackStyle.hpp +1 -1
- package/nitrogen/generated/shared/c++/TransformableRequestConfig.hpp +37 -29
- package/nitrogen/generated/shared/c++/UpdateOptions.hpp +28 -20
- package/package.json +6 -7
- package/src/features/browser.ts +1 -0
- package/src/types/browser-native.ts +2 -0
- package/src/types/browser-nodes.ts +49 -1
- package/src/types/browser.ts +36 -0
- package/src/web/NativeAudioBrowser.ts +33 -9
- package/src/web/SimpleRouter.test.ts +160 -0
- package/src/web/SimpleRouter.ts +10 -8
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// TransformableRequestConfig.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -22,6 +22,11 @@
|
|
|
22
22
|
#else
|
|
23
23
|
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
24
|
#endif
|
|
25
|
+
#if __has_include(<NitroModules/PropNameIDCache.hpp>)
|
|
26
|
+
#include <NitroModules/PropNameIDCache.hpp>
|
|
27
|
+
#else
|
|
28
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
29
|
+
#endif
|
|
25
30
|
|
|
26
31
|
// Forward declaration of `RequestConfig` to properly resolve imports.
|
|
27
32
|
namespace margelo::nitro::audiobrowser { struct RequestConfig; }
|
|
@@ -41,7 +46,7 @@ namespace margelo::nitro::audiobrowser {
|
|
|
41
46
|
/**
|
|
42
47
|
* A struct which can be represented as a JavaScript object (TransformableRequestConfig).
|
|
43
48
|
*/
|
|
44
|
-
struct TransformableRequestConfig {
|
|
49
|
+
struct TransformableRequestConfig final {
|
|
45
50
|
public:
|
|
46
51
|
std::optional<std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<RequestConfig>>>>(const RequestConfig& /* request */, const std::optional<std::unordered_map<std::string, std::string>>& /* routeParams */)>> transform SWIFT_PRIVATE;
|
|
47
52
|
std::optional<HttpMethod> method SWIFT_PRIVATE;
|
|
@@ -56,6 +61,9 @@ namespace margelo::nitro::audiobrowser {
|
|
|
56
61
|
public:
|
|
57
62
|
TransformableRequestConfig() = default;
|
|
58
63
|
explicit TransformableRequestConfig(std::optional<std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<RequestConfig>>>>(const RequestConfig& /* request */, const std::optional<std::unordered_map<std::string, std::string>>& /* routeParams */)>> transform, std::optional<HttpMethod> method, std::optional<std::string> path, std::optional<std::string> baseUrl, std::optional<std::unordered_map<std::string, std::string>> headers, std::optional<std::unordered_map<std::string, std::string>> query, std::optional<std::string> body, std::optional<std::string> contentType, std::optional<std::string> userAgent): transform(transform), method(method), path(path), baseUrl(baseUrl), headers(headers), query(query), body(body), contentType(contentType), userAgent(userAgent) {}
|
|
64
|
+
|
|
65
|
+
public:
|
|
66
|
+
// TransformableRequestConfig is not equatable because these properties are not equatable: transform
|
|
59
67
|
};
|
|
60
68
|
|
|
61
69
|
} // namespace margelo::nitro::audiobrowser
|
|
@@ -68,28 +76,28 @@ namespace margelo::nitro {
|
|
|
68
76
|
static inline margelo::nitro::audiobrowser::TransformableRequestConfig fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
69
77
|
jsi::Object obj = arg.asObject(runtime);
|
|
70
78
|
return margelo::nitro::audiobrowser::TransformableRequestConfig(
|
|
71
|
-
JSIConverter<std::optional<std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<margelo::nitro::audiobrowser::RequestConfig>>>>(const margelo::nitro::audiobrowser::RequestConfig&, const std::optional<std::unordered_map<std::string, std::string>>&)>>>::fromJSI(runtime, obj.getProperty(runtime, "transform")),
|
|
72
|
-
JSIConverter<std::optional<margelo::nitro::audiobrowser::HttpMethod>>::fromJSI(runtime, obj.getProperty(runtime, "method")),
|
|
73
|
-
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "path")),
|
|
74
|
-
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "baseUrl")),
|
|
75
|
-
JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, "headers")),
|
|
76
|
-
JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, "query")),
|
|
77
|
-
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "body")),
|
|
78
|
-
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "contentType")),
|
|
79
|
-
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "userAgent"))
|
|
79
|
+
JSIConverter<std::optional<std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<margelo::nitro::audiobrowser::RequestConfig>>>>(const margelo::nitro::audiobrowser::RequestConfig&, const std::optional<std::unordered_map<std::string, std::string>>&)>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "transform"))),
|
|
80
|
+
JSIConverter<std::optional<margelo::nitro::audiobrowser::HttpMethod>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "method"))),
|
|
81
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "path"))),
|
|
82
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "baseUrl"))),
|
|
83
|
+
JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "headers"))),
|
|
84
|
+
JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "query"))),
|
|
85
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "body"))),
|
|
86
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "contentType"))),
|
|
87
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "userAgent")))
|
|
80
88
|
);
|
|
81
89
|
}
|
|
82
90
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::TransformableRequestConfig& arg) {
|
|
83
91
|
jsi::Object obj(runtime);
|
|
84
|
-
obj.setProperty(runtime, "transform", JSIConverter<std::optional<std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<margelo::nitro::audiobrowser::RequestConfig>>>>(const margelo::nitro::audiobrowser::RequestConfig&, const std::optional<std::unordered_map<std::string, std::string>>&)>>>::toJSI(runtime, arg.transform));
|
|
85
|
-
obj.setProperty(runtime, "method", JSIConverter<std::optional<margelo::nitro::audiobrowser::HttpMethod>>::toJSI(runtime, arg.method));
|
|
86
|
-
obj.setProperty(runtime, "path", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.path));
|
|
87
|
-
obj.setProperty(runtime, "baseUrl", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.baseUrl));
|
|
88
|
-
obj.setProperty(runtime, "headers", JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::toJSI(runtime, arg.headers));
|
|
89
|
-
obj.setProperty(runtime, "query", JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::toJSI(runtime, arg.query));
|
|
90
|
-
obj.setProperty(runtime, "body", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.body));
|
|
91
|
-
obj.setProperty(runtime, "contentType", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.contentType));
|
|
92
|
-
obj.setProperty(runtime, "userAgent", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.userAgent));
|
|
92
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "transform"), JSIConverter<std::optional<std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<margelo::nitro::audiobrowser::RequestConfig>>>>(const margelo::nitro::audiobrowser::RequestConfig&, const std::optional<std::unordered_map<std::string, std::string>>&)>>>::toJSI(runtime, arg.transform));
|
|
93
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "method"), JSIConverter<std::optional<margelo::nitro::audiobrowser::HttpMethod>>::toJSI(runtime, arg.method));
|
|
94
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "path"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.path));
|
|
95
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "baseUrl"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.baseUrl));
|
|
96
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "headers"), JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::toJSI(runtime, arg.headers));
|
|
97
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "query"), JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::toJSI(runtime, arg.query));
|
|
98
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "body"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.body));
|
|
99
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "contentType"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.contentType));
|
|
100
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "userAgent"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.userAgent));
|
|
93
101
|
return obj;
|
|
94
102
|
}
|
|
95
103
|
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
@@ -100,15 +108,15 @@ namespace margelo::nitro {
|
|
|
100
108
|
if (!nitro::isPlainObject(runtime, obj)) {
|
|
101
109
|
return false;
|
|
102
110
|
}
|
|
103
|
-
if (!JSIConverter<std::optional<std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<margelo::nitro::audiobrowser::RequestConfig>>>>(const margelo::nitro::audiobrowser::RequestConfig&, const std::optional<std::unordered_map<std::string, std::string>>&)>>>::canConvert(runtime, obj.getProperty(runtime, "transform"))) return false;
|
|
104
|
-
if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::HttpMethod>>::canConvert(runtime, obj.getProperty(runtime, "method"))) return false;
|
|
105
|
-
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "path"))) return false;
|
|
106
|
-
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "baseUrl"))) return false;
|
|
107
|
-
if (!JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::canConvert(runtime, obj.getProperty(runtime, "headers"))) return false;
|
|
108
|
-
if (!JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::canConvert(runtime, obj.getProperty(runtime, "query"))) return false;
|
|
109
|
-
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "body"))) return false;
|
|
110
|
-
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "contentType"))) return false;
|
|
111
|
-
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "userAgent"))) return false;
|
|
111
|
+
if (!JSIConverter<std::optional<std::function<std::shared_ptr<Promise<std::shared_ptr<Promise<margelo::nitro::audiobrowser::RequestConfig>>>>(const margelo::nitro::audiobrowser::RequestConfig&, const std::optional<std::unordered_map<std::string, std::string>>&)>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "transform")))) return false;
|
|
112
|
+
if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::HttpMethod>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "method")))) return false;
|
|
113
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "path")))) return false;
|
|
114
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "baseUrl")))) return false;
|
|
115
|
+
if (!JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "headers")))) return false;
|
|
116
|
+
if (!JSIConverter<std::optional<std::unordered_map<std::string, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "query")))) return false;
|
|
117
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "body")))) return false;
|
|
118
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "contentType")))) return false;
|
|
119
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "userAgent")))) return false;
|
|
112
120
|
return true;
|
|
113
121
|
}
|
|
114
122
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// UpdateOptions.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -22,6 +22,11 @@
|
|
|
22
22
|
#else
|
|
23
23
|
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
24
|
#endif
|
|
25
|
+
#if __has_include(<NitroModules/PropNameIDCache.hpp>)
|
|
26
|
+
#include <NitroModules/PropNameIDCache.hpp>
|
|
27
|
+
#else
|
|
28
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
29
|
+
#endif
|
|
25
30
|
|
|
26
31
|
// Forward declaration of `AndroidUpdateOptions` to properly resolve imports.
|
|
27
32
|
namespace margelo::nitro::audiobrowser { struct AndroidUpdateOptions; }
|
|
@@ -40,7 +45,7 @@ namespace margelo::nitro::audiobrowser {
|
|
|
40
45
|
/**
|
|
41
46
|
* A struct which can be represented as a JavaScript object (UpdateOptions).
|
|
42
47
|
*/
|
|
43
|
-
struct UpdateOptions {
|
|
48
|
+
struct UpdateOptions final {
|
|
44
49
|
public:
|
|
45
50
|
std::optional<AndroidUpdateOptions> android SWIFT_PRIVATE;
|
|
46
51
|
std::optional<double> forwardJumpInterval SWIFT_PRIVATE;
|
|
@@ -52,6 +57,9 @@ namespace margelo::nitro::audiobrowser {
|
|
|
52
57
|
public:
|
|
53
58
|
UpdateOptions() = default;
|
|
54
59
|
explicit UpdateOptions(std::optional<AndroidUpdateOptions> android, std::optional<double> forwardJumpInterval, std::optional<double> backwardJumpInterval, std::optional<std::variant<nitro::NullType, double>> progressUpdateEventInterval, std::optional<PlayerCapabilities> capabilities, std::optional<std::vector<double>> iosPlaybackRates): android(android), forwardJumpInterval(forwardJumpInterval), backwardJumpInterval(backwardJumpInterval), progressUpdateEventInterval(progressUpdateEventInterval), capabilities(capabilities), iosPlaybackRates(iosPlaybackRates) {}
|
|
60
|
+
|
|
61
|
+
public:
|
|
62
|
+
friend bool operator==(const UpdateOptions& lhs, const UpdateOptions& rhs) = default;
|
|
55
63
|
};
|
|
56
64
|
|
|
57
65
|
} // namespace margelo::nitro::audiobrowser
|
|
@@ -64,22 +72,22 @@ namespace margelo::nitro {
|
|
|
64
72
|
static inline margelo::nitro::audiobrowser::UpdateOptions fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
65
73
|
jsi::Object obj = arg.asObject(runtime);
|
|
66
74
|
return margelo::nitro::audiobrowser::UpdateOptions(
|
|
67
|
-
JSIConverter<std::optional<margelo::nitro::audiobrowser::AndroidUpdateOptions>>::fromJSI(runtime, obj.getProperty(runtime, "android")),
|
|
68
|
-
JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "forwardJumpInterval")),
|
|
69
|
-
JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "backwardJumpInterval")),
|
|
70
|
-
JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::fromJSI(runtime, obj.getProperty(runtime, "progressUpdateEventInterval")),
|
|
71
|
-
JSIConverter<std::optional<margelo::nitro::audiobrowser::PlayerCapabilities>>::fromJSI(runtime, obj.getProperty(runtime, "capabilities")),
|
|
72
|
-
JSIConverter<std::optional<std::vector<double>>>::fromJSI(runtime, obj.getProperty(runtime, "iosPlaybackRates"))
|
|
75
|
+
JSIConverter<std::optional<margelo::nitro::audiobrowser::AndroidUpdateOptions>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "android"))),
|
|
76
|
+
JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "forwardJumpInterval"))),
|
|
77
|
+
JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "backwardJumpInterval"))),
|
|
78
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "progressUpdateEventInterval"))),
|
|
79
|
+
JSIConverter<std::optional<margelo::nitro::audiobrowser::PlayerCapabilities>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "capabilities"))),
|
|
80
|
+
JSIConverter<std::optional<std::vector<double>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "iosPlaybackRates")))
|
|
73
81
|
);
|
|
74
82
|
}
|
|
75
83
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::UpdateOptions& arg) {
|
|
76
84
|
jsi::Object obj(runtime);
|
|
77
|
-
obj.setProperty(runtime, "android", JSIConverter<std::optional<margelo::nitro::audiobrowser::AndroidUpdateOptions>>::toJSI(runtime, arg.android));
|
|
78
|
-
obj.setProperty(runtime, "forwardJumpInterval", JSIConverter<std::optional<double>>::toJSI(runtime, arg.forwardJumpInterval));
|
|
79
|
-
obj.setProperty(runtime, "backwardJumpInterval", JSIConverter<std::optional<double>>::toJSI(runtime, arg.backwardJumpInterval));
|
|
80
|
-
obj.setProperty(runtime, "progressUpdateEventInterval", JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::toJSI(runtime, arg.progressUpdateEventInterval));
|
|
81
|
-
obj.setProperty(runtime, "capabilities", JSIConverter<std::optional<margelo::nitro::audiobrowser::PlayerCapabilities>>::toJSI(runtime, arg.capabilities));
|
|
82
|
-
obj.setProperty(runtime, "iosPlaybackRates", JSIConverter<std::optional<std::vector<double>>>::toJSI(runtime, arg.iosPlaybackRates));
|
|
85
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "android"), JSIConverter<std::optional<margelo::nitro::audiobrowser::AndroidUpdateOptions>>::toJSI(runtime, arg.android));
|
|
86
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "forwardJumpInterval"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.forwardJumpInterval));
|
|
87
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "backwardJumpInterval"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.backwardJumpInterval));
|
|
88
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "progressUpdateEventInterval"), JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::toJSI(runtime, arg.progressUpdateEventInterval));
|
|
89
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "capabilities"), JSIConverter<std::optional<margelo::nitro::audiobrowser::PlayerCapabilities>>::toJSI(runtime, arg.capabilities));
|
|
90
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "iosPlaybackRates"), JSIConverter<std::optional<std::vector<double>>>::toJSI(runtime, arg.iosPlaybackRates));
|
|
83
91
|
return obj;
|
|
84
92
|
}
|
|
85
93
|
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
@@ -90,12 +98,12 @@ namespace margelo::nitro {
|
|
|
90
98
|
if (!nitro::isPlainObject(runtime, obj)) {
|
|
91
99
|
return false;
|
|
92
100
|
}
|
|
93
|
-
if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::AndroidUpdateOptions>>::canConvert(runtime, obj.getProperty(runtime, "android"))) return false;
|
|
94
|
-
if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "forwardJumpInterval"))) return false;
|
|
95
|
-
if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "backwardJumpInterval"))) return false;
|
|
96
|
-
if (!JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::canConvert(runtime, obj.getProperty(runtime, "progressUpdateEventInterval"))) return false;
|
|
97
|
-
if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::PlayerCapabilities>>::canConvert(runtime, obj.getProperty(runtime, "capabilities"))) return false;
|
|
98
|
-
if (!JSIConverter<std::optional<std::vector<double>>>::canConvert(runtime, obj.getProperty(runtime, "iosPlaybackRates"))) return false;
|
|
101
|
+
if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::AndroidUpdateOptions>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "android")))) return false;
|
|
102
|
+
if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "forwardJumpInterval")))) return false;
|
|
103
|
+
if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "backwardJumpInterval")))) return false;
|
|
104
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "progressUpdateEventInterval")))) return false;
|
|
105
|
+
if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::PlayerCapabilities>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "capabilities")))) return false;
|
|
106
|
+
if (!JSIConverter<std::optional<std::vector<double>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "iosPlaybackRates")))) return false;
|
|
99
107
|
return true;
|
|
100
108
|
}
|
|
101
109
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@5stones/react-native-audio-browser",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "react-native-audio-browser is a react native package built with Nitro",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
@@ -64,19 +64,17 @@
|
|
|
64
64
|
"ios:rebuild": "yarn workspace example-native ios:rebuild",
|
|
65
65
|
"lint": "oxlint --fix",
|
|
66
66
|
"release": "semantic-release",
|
|
67
|
-
"test": "
|
|
67
|
+
"test": "vitest run",
|
|
68
68
|
"types": "tsc --noEmit"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@react-native-community/cli": "15.0.0-alpha.2",
|
|
72
72
|
"@semantic-release/changelog": "^6.0.3",
|
|
73
73
|
"@semantic-release/git": "^10.0.1",
|
|
74
|
-
"@types/jest": "^29.5.12",
|
|
75
74
|
"@types/react": "19.1.1",
|
|
76
75
|
"conventional-changelog-conventionalcommits": "^9.1.0",
|
|
77
76
|
"del-cli": "^5.1.0",
|
|
78
|
-
"
|
|
79
|
-
"nitrogen": "^0.33.3",
|
|
77
|
+
"nitrogen": "0.35.0",
|
|
80
78
|
"oxfmt": "^0.27.0",
|
|
81
79
|
"oxlint": "^1.42.0",
|
|
82
80
|
"oxlint-tsgolint": "^0.11.2",
|
|
@@ -85,11 +83,12 @@
|
|
|
85
83
|
"react-native": "0.83.0",
|
|
86
84
|
"react-native-builder-bob": "^0.37.0",
|
|
87
85
|
"react-native-monorepo-config": "^0.3.1",
|
|
88
|
-
"react-native-nitro-modules": "0.
|
|
86
|
+
"react-native-nitro-modules": "0.35.0",
|
|
89
87
|
"semantic-release": "^24.2.9",
|
|
90
88
|
"shaka-player": "^4.15.4",
|
|
91
89
|
"typescript": "^5.8.3",
|
|
92
|
-
"typescript-eslint": "^8.46.0"
|
|
90
|
+
"typescript-eslint": "^8.46.0",
|
|
91
|
+
"vitest": "^4.0.18"
|
|
93
92
|
},
|
|
94
93
|
"peerDependencies": {
|
|
95
94
|
"react": "*",
|
package/src/features/browser.ts
CHANGED
|
@@ -195,6 +195,7 @@ function toNativeConfig(
|
|
|
195
195
|
config.search
|
|
196
196
|
),
|
|
197
197
|
singleTrack: config.singleTrack,
|
|
198
|
+
handleTrackLoad: config.handleTrackLoad,
|
|
198
199
|
androidControllerOfflineError: config.androidControllerOfflineError,
|
|
199
200
|
carPlayUpNextButton: config.carPlayUpNextButton,
|
|
200
201
|
carPlayNowPlayingButtons: config.carPlayNowPlayingButtons,
|
|
@@ -11,6 +11,7 @@ import type {
|
|
|
11
11
|
BrowserSourceCallback,
|
|
12
12
|
CarPlayNowPlayingButton,
|
|
13
13
|
FormatNavigationErrorCallback,
|
|
14
|
+
HandleTrackLoadCallback,
|
|
14
15
|
MediaRequestConfig,
|
|
15
16
|
SearchSourceCallback,
|
|
16
17
|
TransformableRequestConfig
|
|
@@ -57,6 +58,7 @@ export interface NativeBrowserConfiguration {
|
|
|
57
58
|
|
|
58
59
|
// Behavior
|
|
59
60
|
singleTrack?: boolean
|
|
61
|
+
handleTrackLoad?: HandleTrackLoadCallback
|
|
60
62
|
androidControllerOfflineError?: boolean
|
|
61
63
|
|
|
62
64
|
// CarPlay options
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HttpMethod } from './browser'
|
|
1
|
+
import type { CarPlaySiriListButtonPosition, HttpMethod } from './browser'
|
|
2
2
|
|
|
3
3
|
export type TrackStyle = 'list' | 'grid'
|
|
4
4
|
|
|
@@ -29,6 +29,17 @@ export interface ImageSource {
|
|
|
29
29
|
// children: Track
|
|
30
30
|
// }
|
|
31
31
|
|
|
32
|
+
export interface ImageRowItem {
|
|
33
|
+
/** Navigation path. Tapping this thumbnail navigates to this URL. */
|
|
34
|
+
url?: string
|
|
35
|
+
/** Artwork URL for the thumbnail image. */
|
|
36
|
+
artwork?: string
|
|
37
|
+
/** Output only — populated by the artwork transform pipeline. */
|
|
38
|
+
readonly artworkSource?: ImageSource
|
|
39
|
+
/** Title of this item. Used for identification and accessibility. */
|
|
40
|
+
title: string
|
|
41
|
+
}
|
|
42
|
+
|
|
32
43
|
export interface Track {
|
|
33
44
|
/**
|
|
34
45
|
* Navigation path. When present, this track is a container (tab, album, playlist, folder)
|
|
@@ -55,6 +66,13 @@ export interface Track {
|
|
|
55
66
|
* The artwork URL is also returned by native in the `artworkSource` property
|
|
56
67
|
* for use in an `<Image>` component, which will contain the transformed version
|
|
57
68
|
* if `artwork` configuration is set in `BrowserConfiguration` or a route.
|
|
69
|
+
*
|
|
70
|
+
* **iOS:** supports {@link https://developer.apple.com/sf-symbols/ | SF Symbols}
|
|
71
|
+
* with the `sf:` prefix and optional color params:
|
|
72
|
+
* `sf:heart.fill?bg=#FF0090&fg=#fff`. `bg` sets the background color
|
|
73
|
+
* (transparent if omitted), `fg` sets the symbol color (black if omitted).
|
|
74
|
+
* On CarPlay, SF Symbols without explicit colors automatically adapt to
|
|
75
|
+
* light/dark mode.
|
|
58
76
|
*/
|
|
59
77
|
artwork?: string
|
|
60
78
|
|
|
@@ -144,6 +162,24 @@ export interface Track {
|
|
|
144
162
|
* in iOS now playing interfaces.
|
|
145
163
|
*/
|
|
146
164
|
live?: boolean
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* When present, renders this track as a horizontal row of tappable artwork
|
|
168
|
+
* thumbnails instead of a standard list item.
|
|
169
|
+
*
|
|
170
|
+
* - Track.title → row header text
|
|
171
|
+
* - Track.url → navigated when header is tapped (optional)
|
|
172
|
+
* - Each ImageRowItem → one thumbnail in the horizontal row
|
|
173
|
+
*
|
|
174
|
+
* On CarPlay: maps to CPListImageRowItem. Limits visible images by display
|
|
175
|
+
* width (~4-5). Excess silently truncated.
|
|
176
|
+
*
|
|
177
|
+
* On Android Auto: ignored; the parent Track renders as a regular
|
|
178
|
+
* browsable item using its own artwork/title/url.
|
|
179
|
+
*
|
|
180
|
+
* On app side: consumable by React Native UI for horizontal thumbnail layouts.
|
|
181
|
+
*/
|
|
182
|
+
imageRow?: ImageRowItem[]
|
|
147
183
|
}
|
|
148
184
|
|
|
149
185
|
/**
|
|
@@ -171,4 +207,16 @@ export interface ResolvedTrack extends Track {
|
|
|
171
207
|
* Undefined for leaf tracks (individual songs without children).
|
|
172
208
|
*/
|
|
173
209
|
children?: Track[]
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Shows the "Ask Siri to Play Audio" assistant cell on the CarPlay list template
|
|
213
|
+
* for this content. Requires an Intents Extension to be configured in the app.
|
|
214
|
+
*
|
|
215
|
+
* - `'top'`: Shows at the top of the list
|
|
216
|
+
* - `'bottom'`: Shows at the bottom of the list
|
|
217
|
+
*
|
|
218
|
+
* @see {@link https://audiobrowser.dev/guide/carplay#siri-voice-search | CarPlay Siri Voice Search guide}
|
|
219
|
+
* @platform ios
|
|
220
|
+
*/
|
|
221
|
+
carPlaySiriListButton?: CarPlaySiriListButtonPosition
|
|
174
222
|
}
|
package/src/types/browser.ts
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
import type { NavigationError } from '../features/errors'
|
|
2
2
|
import type { ResolvedTrack, Track } from './browser-nodes.ts'
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Event fired when a track is about to be loaded via navigateTrack.
|
|
6
|
+
*/
|
|
7
|
+
export interface TrackLoadEvent {
|
|
8
|
+
/** The track that will be loaded */
|
|
9
|
+
track: Track
|
|
10
|
+
/** The resolved queue of tracks */
|
|
11
|
+
queue: Track[]
|
|
12
|
+
/** The index of the track in the queue */
|
|
13
|
+
startIndex: number
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Callback for handling track load events.
|
|
18
|
+
* When set on BrowserConfiguration, navigateTrack() will call this handler
|
|
19
|
+
* instead of auto-loading/playing the track. The native side awaits completion
|
|
20
|
+
* before proceeding (e.g., showing Now Playing in CarPlay).
|
|
21
|
+
*/
|
|
22
|
+
export type HandleTrackLoadCallback = (event: TrackLoadEvent) => Promise<void>
|
|
23
|
+
|
|
4
24
|
export type BrowserSourceCallbackParam = {
|
|
5
25
|
path: string
|
|
6
26
|
routeParams?: Record<string, string>
|
|
@@ -650,6 +670,15 @@ export type BrowserConfiguration = {
|
|
|
650
670
|
*/
|
|
651
671
|
singleTrack?: boolean
|
|
652
672
|
|
|
673
|
+
/**
|
|
674
|
+
* Custom handler for track load events.
|
|
675
|
+
* When set, navigateTrack() will call this handler instead of auto-loading/playing the track.
|
|
676
|
+
* Pass undefined to restore default behavior.
|
|
677
|
+
*
|
|
678
|
+
* @param event - The track load event containing the track, queue, and startIndex
|
|
679
|
+
*/
|
|
680
|
+
handleTrackLoad?: HandleTrackLoadCallback
|
|
681
|
+
|
|
653
682
|
/**
|
|
654
683
|
* Show an offline error message in external controllers (Android Auto, Wear OS, Automotive)
|
|
655
684
|
* when network connectivity is lost.
|
|
@@ -728,6 +757,13 @@ export type CarPlayNowPlayingButton =
|
|
|
728
757
|
| 'favorite'
|
|
729
758
|
| 'playback-rate'
|
|
730
759
|
|
|
760
|
+
/**
|
|
761
|
+
* Position of the "Ask Siri to Play Audio" assistant cell on a CarPlay list template.
|
|
762
|
+
*
|
|
763
|
+
* @platform ios
|
|
764
|
+
*/
|
|
765
|
+
export type CarPlaySiriListButtonPosition = 'top' | 'bottom'
|
|
766
|
+
|
|
731
767
|
/**
|
|
732
768
|
* Formatted navigation error for display in UI.
|
|
733
769
|
* Used by CarPlay/Android Auto and available via `useFormattedNavigationError()` for app UI.
|
|
@@ -40,7 +40,7 @@ import type {
|
|
|
40
40
|
AudioBrowser as AudioBrowserSpec,
|
|
41
41
|
IosOutput
|
|
42
42
|
} from '../specs/audio-browser.nitro'
|
|
43
|
-
import type { ResolvedTrack, Track } from '../types'
|
|
43
|
+
import type { ResolvedTrack, Track, TrackLoadEvent } from '../types'
|
|
44
44
|
import type { NativeBrowserConfiguration } from '../types/browser-native'
|
|
45
45
|
import { BrowserManager } from './browser/BrowserManager'
|
|
46
46
|
import { FavoriteManager } from './browser/FavoriteManager'
|
|
@@ -349,6 +349,26 @@ export class NativeAudioBrowser
|
|
|
349
349
|
void this.navigateTrackAsync(track, url)
|
|
350
350
|
}
|
|
351
351
|
|
|
352
|
+
/**
|
|
353
|
+
* Centralizes handleTrackLoad interception logic.
|
|
354
|
+
* If handleTrackLoad is set on configuration, calls it (intercepted). Otherwise runs defaultBehavior.
|
|
355
|
+
*
|
|
356
|
+
* @returns true if the handler intercepted, false if defaultBehavior ran
|
|
357
|
+
*/
|
|
358
|
+
private async handleLoad(
|
|
359
|
+
track: Track, queue: Track[], startIndex: number,
|
|
360
|
+
defaultBehavior: () => void
|
|
361
|
+
): Promise<boolean> {
|
|
362
|
+
const handler = this.configuration.handleTrackLoad
|
|
363
|
+
if (handler) {
|
|
364
|
+
const event: TrackLoadEvent = { track, queue, startIndex }
|
|
365
|
+
await handler(event)
|
|
366
|
+
return true
|
|
367
|
+
}
|
|
368
|
+
defaultBehavior()
|
|
369
|
+
return false
|
|
370
|
+
}
|
|
371
|
+
|
|
352
372
|
/**
|
|
353
373
|
* Attempts to skip to a track already in the current queue.
|
|
354
374
|
* Used as an optimization to avoid re-expanding the queue.
|
|
@@ -357,10 +377,10 @@ export class NativeAudioBrowser
|
|
|
357
377
|
* @param parentPath The parent path to check against queueSourcePath
|
|
358
378
|
* @returns true if successfully skipped to existing track, false otherwise
|
|
359
379
|
*/
|
|
360
|
-
private trySkipToExistingQueueTrack(
|
|
380
|
+
private async trySkipToExistingQueueTrack(
|
|
361
381
|
trackId: string,
|
|
362
382
|
parentPath: string
|
|
363
|
-
): boolean {
|
|
383
|
+
): Promise<boolean> {
|
|
364
384
|
if (parentPath !== this.browserManager.queueSourcePath) {
|
|
365
385
|
return false
|
|
366
386
|
}
|
|
@@ -372,8 +392,10 @@ export class NativeAudioBrowser
|
|
|
372
392
|
return false
|
|
373
393
|
}
|
|
374
394
|
|
|
375
|
-
this.
|
|
376
|
-
|
|
395
|
+
await this.handleLoad(queue[index]!, queue, index, () => {
|
|
396
|
+
this.skip(index)
|
|
397
|
+
this.play()
|
|
398
|
+
})
|
|
377
399
|
return true
|
|
378
400
|
}
|
|
379
401
|
|
|
@@ -394,7 +416,9 @@ export class NativeAudioBrowser
|
|
|
394
416
|
return false
|
|
395
417
|
}
|
|
396
418
|
|
|
397
|
-
this.
|
|
419
|
+
await this.handleLoad(track, result.tracks, result.startIndex, () => {
|
|
420
|
+
this.setQueue(result.tracks, result.startIndex)
|
|
421
|
+
})
|
|
398
422
|
return true
|
|
399
423
|
}
|
|
400
424
|
|
|
@@ -413,7 +437,7 @@ export class NativeAudioBrowser
|
|
|
413
437
|
const trackId = BrowserPathHelper.extractTrackId(url)
|
|
414
438
|
|
|
415
439
|
// Optimization: skip to track if already in current queue
|
|
416
|
-
if (trackId && this.trySkipToExistingQueueTrack(trackId, parentPath)) {
|
|
440
|
+
if (trackId && await this.trySkipToExistingQueueTrack(trackId, parentPath)) {
|
|
417
441
|
return
|
|
418
442
|
}
|
|
419
443
|
|
|
@@ -423,7 +447,7 @@ export class NativeAudioBrowser
|
|
|
423
447
|
}
|
|
424
448
|
|
|
425
449
|
// Fallback: load single track if expansion fails
|
|
426
|
-
this.load(track)
|
|
450
|
+
await this.handleLoad(track, [track], 0, () => this.load(track))
|
|
427
451
|
return
|
|
428
452
|
}
|
|
429
453
|
|
|
@@ -437,7 +461,7 @@ export class NativeAudioBrowser
|
|
|
437
461
|
|
|
438
462
|
// Handle playable track (has src but no URL)
|
|
439
463
|
if (track.src) {
|
|
440
|
-
this.load(track)
|
|
464
|
+
await this.handleLoad(track, [track], 0, () => this.load(track))
|
|
441
465
|
return
|
|
442
466
|
}
|
|
443
467
|
|