react-native-audio-browser 0.2.0-next.6 → 0.2.0-next.8
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/android/build.gradle +7 -1
- package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +1 -2
- package/android/src/main/java/com/audiobrowser/browser/BrowserUrlResolution.kt +1 -2
- package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +6 -7
- package/android/src/main/java/com/audiobrowser/player/NowPlayingUpdater.kt +0 -1
- package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +2 -4
- package/android/src/main/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicy.kt +2 -1
- package/android/src/main/java/com/audiobrowser/util/ArtworkVariant.kt +7 -9
- package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +8 -7
- package/android/src/test/java/com/audiobrowser/TestFixtures.kt +0 -1
- package/android/src/test/java/com/audiobrowser/browser/JsonArtworkTest.kt +2 -1
- package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +2 -4
- package/android/src/test/java/com/audiobrowser/player/PlaybackErrorClassifierTest.kt +3 -4
- package/android/src/test/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicyTest.kt +3 -3
- package/ios/Browser/BrowserManager.swift +2 -2
- package/ios/Browser/SearchDrillIn.swift +1 -1
- package/ios/CarPlay/RNABMediaAddHandler.swift +6 -6
- package/ios/CarPlay/RNABMediaAffinityHandler.swift +2 -2
- package/ios/CarPlay/RNABMediaIntentHandler.swift +16 -16
- package/ios/HybridAudioBrowser.swift +8 -7
- package/ios/Model/RemoteCommand.swift +18 -0
- package/ios/Model/TrackPlayerError.swift +2 -2
- package/ios/Option/SessionCategories.swift +3 -2
- package/ios/Player/MediaIntentCriteria.swift +4 -4
- package/ios/Player/PlaybackErrorHandler.swift +2 -2
- package/ios/Player/RetryManager.swift +2 -1
- package/ios/RemoteCommand/RemoteCommandCallbacks.swift +47 -0
- package/ios/RemoteCommand/RemoteCommandController.swift +9 -6
- package/ios/Tests/LoadSeekCoordinatorTests.swift +3 -1
- package/ios/Tests/MediaIntentCriteriaTests.swift +2 -2
- package/ios/Tests/PlaybackCoordinatorTests.swift +1 -1
- package/ios/Tests/RemoteCommandControllerTests.swift +156 -0
- package/ios/Tests/RemoteCommandTests.swift +67 -0
- package/ios/Tests/SectionScopeTests.swift +2 -2
- package/ios/Tests/TabBarEntriesTests.swift +7 -7
- package/ios/TrackPlayer.swift +1 -1
- package/ios/TrackPlayerCallbacks.swift +5 -38
- package/lib/commonjs/AudioBrowser.js +0 -11
- package/lib/commonjs/AudioBrowser.js.map +1 -1
- package/lib/commonjs/features/carConnection.js +1 -1
- package/lib/commonjs/features/equalizer.js +1 -1
- package/lib/commonjs/features/errors.js +3 -3
- package/lib/commonjs/features/favorites.js +1 -1
- package/lib/commonjs/features/gate.js +1 -1
- package/lib/commonjs/features/metadata.js +3 -3
- package/lib/commonjs/features/network.js +1 -1
- package/lib/commonjs/features/nowPlaying.js +1 -1
- package/lib/commonjs/features/output.js +1 -1
- package/lib/commonjs/features/playback/playWhenReady.js +1 -1
- package/lib/commonjs/features/playback/playing.js +1 -1
- package/lib/commonjs/features/playback/progress.js +1 -1
- package/lib/commonjs/features/playback/state.js +1 -1
- package/lib/commonjs/features/playback/trackPlaybackTime.js +0 -6
- package/lib/commonjs/features/playback/trackPlaybackTime.js.map +1 -1
- package/lib/commonjs/features/playback/volume.js +1 -1
- package/lib/commonjs/features/player/options.js +3 -19
- package/lib/commonjs/features/player/options.js.map +1 -1
- package/lib/commonjs/features/player/setup.js +2 -2
- package/lib/commonjs/features/player/setup.js.map +1 -1
- package/lib/commonjs/features/player/validateOptions.js +24 -0
- package/lib/commonjs/features/player/validateOptions.js.map +1 -0
- package/lib/commonjs/features/queue/activeTrack.js +1 -1
- package/lib/commonjs/features/queue/queue.js +2 -2
- package/lib/commonjs/features/queue/repeatMode.js +1 -1
- package/lib/commonjs/features/queue/shuffle.js +1 -1
- package/lib/commonjs/features/remoteControls.js +13 -92
- package/lib/commonjs/features/remoteControls.js.map +1 -1
- package/lib/commonjs/features/sleepTimer.js +1 -1
- package/lib/commonjs/utils/LazyNativeEmitter.js +8 -5
- package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -1
- package/lib/module/AudioBrowser.js +4 -1
- package/lib/module/AudioBrowser.js.map +1 -1
- package/lib/module/features/carConnection.js +1 -1
- package/lib/module/features/equalizer.js +1 -1
- package/lib/module/features/errors.js +3 -3
- package/lib/module/features/favorites.js +1 -1
- package/lib/module/features/gate.js +1 -1
- package/lib/module/features/metadata.js +3 -3
- package/lib/module/features/network.js +1 -1
- package/lib/module/features/nowPlaying.js +1 -1
- package/lib/module/features/output.js +1 -1
- package/lib/module/features/playback/playWhenReady.js +1 -1
- package/lib/module/features/playback/playing.js +1 -1
- package/lib/module/features/playback/progress.js +1 -1
- package/lib/module/features/playback/state.js +1 -1
- package/lib/module/features/playback/trackPlaybackTime.js +0 -5
- package/lib/module/features/playback/trackPlaybackTime.js.map +1 -1
- package/lib/module/features/playback/volume.js +1 -1
- package/lib/module/features/player/options.js +2 -17
- package/lib/module/features/player/options.js.map +1 -1
- package/lib/module/features/player/setup.js +1 -1
- package/lib/module/features/player/setup.js.map +1 -1
- package/lib/module/features/player/validateOptions.js +20 -0
- package/lib/module/features/player/validateOptions.js.map +1 -0
- package/lib/module/features/queue/activeTrack.js +1 -1
- package/lib/module/features/queue/queue.js +2 -2
- package/lib/module/features/queue/repeatMode.js +1 -1
- package/lib/module/features/queue/shuffle.js +1 -1
- package/lib/module/features/remoteControls.js +13 -92
- package/lib/module/features/remoteControls.js.map +1 -1
- package/lib/module/features/sleepTimer.js +1 -1
- package/lib/module/utils/LazyNativeEmitter.js +8 -5
- package/lib/module/utils/LazyNativeEmitter.js.map +1 -1
- package/lib/typescript/src/AudioBrowser.d.ts +0 -1
- package/lib/typescript/src/AudioBrowser.d.ts.map +1 -1
- package/lib/typescript/src/features/carConnection.d.ts +1 -1
- package/lib/typescript/src/features/equalizer.d.ts +1 -1
- package/lib/typescript/src/features/errors.d.ts +3 -3
- package/lib/typescript/src/features/favorites.d.ts +1 -1
- package/lib/typescript/src/features/gate.d.ts +3 -2
- package/lib/typescript/src/features/gate.d.ts.map +1 -1
- package/lib/typescript/src/features/metadata.d.ts +3 -3
- package/lib/typescript/src/features/network.d.ts +1 -1
- package/lib/typescript/src/features/nowPlaying.d.ts +1 -1
- package/lib/typescript/src/features/output.d.ts +1 -1
- package/lib/typescript/src/features/playback/playWhenReady.d.ts +1 -1
- package/lib/typescript/src/features/playback/playing.d.ts +1 -1
- package/lib/typescript/src/features/playback/progress.d.ts +1 -1
- package/lib/typescript/src/features/playback/state.d.ts +1 -1
- package/lib/typescript/src/features/playback/volume.d.ts +1 -1
- package/lib/typescript/src/features/player/options.d.ts +1 -1
- package/lib/typescript/src/features/player/options.d.ts.map +1 -1
- package/lib/typescript/src/features/player/validateOptions.d.ts +2 -0
- package/lib/typescript/src/features/player/validateOptions.d.ts.map +1 -0
- package/lib/typescript/src/features/queue/activeTrack.d.ts +1 -1
- package/lib/typescript/src/features/queue/queue.d.ts +2 -2
- package/lib/typescript/src/features/queue/repeatMode.d.ts +1 -1
- package/lib/typescript/src/features/queue/shuffle.d.ts +1 -1
- package/lib/typescript/src/features/remoteControls.d.ts +23 -22
- package/lib/typescript/src/features/remoteControls.d.ts.map +1 -1
- package/lib/typescript/src/features/sleepTimer.d.ts +1 -1
- package/lib/typescript/src/utils/LazyNativeEmitter.d.ts +8 -4
- package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -1
- package/package.json +3 -1
- package/src/AudioBrowser.ts +4 -1
- package/src/features/carConnection.ts +1 -1
- package/src/features/equalizer.ts +1 -1
- package/src/features/errors.ts +3 -3
- package/src/features/favorites.ts +1 -1
- package/src/features/gate.ts +1 -1
- package/src/features/metadata.ts +3 -3
- package/src/features/network.ts +1 -1
- package/src/features/nowPlaying.ts +1 -1
- package/src/features/output.ts +1 -1
- package/src/features/playback/playWhenReady.ts +1 -1
- package/src/features/playback/playing.ts +1 -1
- package/src/features/playback/progress.ts +1 -1
- package/src/features/playback/state.ts +1 -1
- package/src/features/playback/trackPlaybackTime.test.ts +20 -6
- package/src/features/playback/trackPlaybackTime.ts +0 -5
- package/src/features/playback/volume.ts +1 -1
- package/src/features/player/options.ts +2 -20
- package/src/features/player/setup.ts +1 -1
- package/src/features/player/validateOptions.ts +22 -0
- package/src/features/queue/activeTrack.ts +1 -1
- package/src/features/queue/queue.ts +2 -2
- package/src/features/queue/repeatMode.ts +1 -1
- package/src/features/queue/shuffle.ts +1 -1
- package/src/features/remoteControls.ts +13 -92
- package/src/features/sleepTimer.ts +1 -1
- package/src/public-surface.test.ts +116 -0
- package/src/utils/LazyNativeEmitter.ts +9 -6
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.__emitTickForTests = __emitTickForTests;
|
|
7
6
|
exports.trackPlaybackTime = trackPlaybackTime;
|
|
8
7
|
var _native = require("../../native");
|
|
9
8
|
var _activeTrack = require("../queue/activeTrack");
|
|
@@ -84,9 +83,4 @@ function trackPlaybackTime(callback, period) {
|
|
|
84
83
|
if (handles.size === 0) _native.nativeBrowser.setPlaybackIntervalEnabled(false);
|
|
85
84
|
};
|
|
86
85
|
}
|
|
87
|
-
|
|
88
|
-
/** @internal test hook — drives the fan-out without a native tick. */
|
|
89
|
-
function __emitTickForTests(ticks = 1) {
|
|
90
|
-
for (let i = 0; i < ticks; i++) onTick();
|
|
91
|
-
}
|
|
92
86
|
//# sourceMappingURL=trackPlaybackTime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","_activeTrack","handles","Set","installed","currentTrack","onTick","handle","totalSeconds","sinceLast","lastFireSeconds","period","callback","total","track","install","nativeBrowser","onPlaybackInterval","onActiveTrackChanged","addListener","event","trackPlaybackTime","Error","add","size","setPlaybackIntervalEnabled","delete"
|
|
1
|
+
{"version":3,"names":["_native","require","_activeTrack","handles","Set","installed","currentTrack","onTick","handle","totalSeconds","sinceLast","lastFireSeconds","period","callback","total","track","install","nativeBrowser","onPlaybackInterval","onActiveTrackChanged","addListener","event","trackPlaybackTime","Error","add","size","setPlaybackIntervalEnabled","delete"],"sourceRoot":"../../../../src","sources":["features/playback/trackPlaybackTime.ts"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA;;AAkBA;;AAEA,MAAME,OAAO,GAAG,IAAIC,GAAG,CAAS,CAAC;AACjC,IAAIC,SAAS,GAAG,KAAK;AACrB,IAAIC,YAA+B;;AAEnC;AACA;AACA;AACA,SAASC,MAAMA,CAAA,EAAG;EAChB,KAAK,MAAMC,MAAM,IAAIL,OAAO,EAAE;IAC5BK,MAAM,CAACC,YAAY,IAAI,CAAC;IACxB,MAAMC,SAAS,GAAGF,MAAM,CAACC,YAAY,GAAGD,MAAM,CAACG,eAAe;IAC9D,IAAID,SAAS,IAAIF,MAAM,CAACI,MAAM,EAAE;MAC9BJ,MAAM,CAACG,eAAe,GAAGH,MAAM,CAACC,YAAY;MAC5CD,MAAM,CAACK,QAAQ,CAAC;QACdC,KAAK,EAAEN,MAAM,CAACC,YAAY;QAC1BC,SAAS;QACTK,KAAK,EAAET;MACT,CAAC,CAAC;IACJ;EACF;AACF;AAEA,SAASU,OAAOA,CAAA,EAAG;EACjB,IAAIX,SAAS,EAAE;EACfA,SAAS,GAAG,IAAI;EAChBY,qBAAa,CAACC,kBAAkB,GAAGX,MAAM;EACzCY,iCAAoB,CAACC,WAAW,CAAEC,KAAK,IAAK;IAC1Cf,YAAY,GAAGe,KAAK,CAACN,KAAK;EAC5B,CAAC,CAAC;AACJ;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,iBAAiBA,CAC/BT,QAA4C,EAC5CD,MAAc,EACF;EACZ,IAAI,EAAEA,MAAM,IAAI,CAAC,CAAC,EAAE;IAClB,MAAM,IAAIW,KAAK,CAAC,wCAAwC,CAAC;EAC3D;EACAP,OAAO,CAAC,CAAC;EACT,MAAMR,MAAc,GAAG;IACrBI,MAAM;IACNH,YAAY,EAAE,CAAC;IACfE,eAAe,EAAE,CAAC;IAClBE;EACF,CAAC;EACDV,OAAO,CAACqB,GAAG,CAAChB,MAAM,CAAC;EACnB,IAAIL,OAAO,CAACsB,IAAI,KAAK,CAAC,EAAER,qBAAa,CAACS,0BAA0B,CAAC,IAAI,CAAC;EACtE,OAAO,MAAM;IACX,IAAI,CAACvB,OAAO,CAACwB,MAAM,CAACnB,MAAM,CAAC,EAAE;IAC7B,IAAIL,OAAO,CAACsB,IAAI,KAAK,CAAC,EAAER,qBAAa,CAACS,0BAA0B,CAAC,KAAK,CAAC;EACzE,CAAC;AACH","ignoreList":[]}
|
|
@@ -52,7 +52,7 @@ function setSystemVolume(level) {
|
|
|
52
52
|
/**
|
|
53
53
|
* Subscribes to system volume changes.
|
|
54
54
|
* @param callback - Called when the system volume changes
|
|
55
|
-
* @returns
|
|
55
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
56
56
|
*/
|
|
57
57
|
const onSystemVolumeChanged = exports.onSystemVolumeChanged = _NativeUpdatedValue.NativeUpdatedValue.emitterize(cb => _native.nativeBrowser.onSystemVolumeChanged = cb);
|
|
58
58
|
|
|
@@ -7,8 +7,8 @@ exports.getOptions = getOptions;
|
|
|
7
7
|
exports.onOptionsChanged = void 0;
|
|
8
8
|
exports.updateOptions = updateOptions;
|
|
9
9
|
exports.useOptions = useOptions;
|
|
10
|
-
exports.validateIOSUpdateOptions = validateIOSUpdateOptions;
|
|
11
10
|
var _native = require("../../native");
|
|
11
|
+
var _validateOptions = require("./validateOptions");
|
|
12
12
|
var _NativeUpdatedValue = require("../../utils/NativeUpdatedValue");
|
|
13
13
|
var _useNativeUpdatedValue = require("../../utils/useNativeUpdatedValue");
|
|
14
14
|
// MARK: - Types
|
|
@@ -172,22 +172,6 @@ var _useNativeUpdatedValue = require("../../utils/useNativeUpdatedValue");
|
|
|
172
172
|
|
|
173
173
|
// MARK: - Functions
|
|
174
174
|
|
|
175
|
-
const MAX_CARPLAY_NOW_PLAYING_BUTTONS = 5;
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Warns when more CarPlay now-playing buttons are configured than CarPlay renders.
|
|
179
|
-
* Shared by {@link updateOptions} and `setupPlayer` (both can carry `ios` options).
|
|
180
|
-
*
|
|
181
|
-
* @internal Validation helper, not public API — `stripInternal` removes it from
|
|
182
|
-
* the published types and typedoc hides it from the docs.
|
|
183
|
-
*/
|
|
184
|
-
function validateIOSUpdateOptions(ios) {
|
|
185
|
-
const buttons = ios?.carPlayNowPlayingButtons;
|
|
186
|
-
if (buttons && buttons.length > MAX_CARPLAY_NOW_PLAYING_BUTTONS) {
|
|
187
|
-
console.warn(`[react-native-audio-browser] ${buttons.length} CarPlay now-playing ` + `buttons configured; CarPlay shows at most ${MAX_CARPLAY_NOW_PLAYING_BUTTONS}.`);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
175
|
/**
|
|
192
176
|
* Updates the configuration for the components.
|
|
193
177
|
* Pass only the properties you want to change - all properties are optional.
|
|
@@ -204,7 +188,7 @@ function validateIOSUpdateOptions(ios) {
|
|
|
204
188
|
* ```
|
|
205
189
|
*/
|
|
206
190
|
function updateOptions(options) {
|
|
207
|
-
validateIOSUpdateOptions(options.ios);
|
|
191
|
+
(0, _validateOptions.validateIOSUpdateOptions)(options.ios);
|
|
208
192
|
_native.nativeBrowser.updateOptions(options);
|
|
209
193
|
}
|
|
210
194
|
|
|
@@ -232,7 +216,7 @@ function getOptions() {
|
|
|
232
216
|
/**
|
|
233
217
|
* Subscribes to player options changes.
|
|
234
218
|
* @param callback - Called when the player options change
|
|
235
|
-
* @returns
|
|
219
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
236
220
|
*/
|
|
237
221
|
const onOptionsChanged = exports.onOptionsChanged = _NativeUpdatedValue.NativeUpdatedValue.emitterize(cb => _native.nativeBrowser.onOptionsChanged = cb);
|
|
238
222
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","
|
|
1
|
+
{"version":3,"names":["_native","require","_validateOptions","_NativeUpdatedValue","_useNativeUpdatedValue","updateOptions","options","validateIOSUpdateOptions","ios","nativeBrowser","getOptions","onOptionsChanged","exports","NativeUpdatedValue","emitterize","cb","useOptions","useNativeUpdatedValue"],"sourceRoot":"../../../../src","sources":["features/player/options.ts"],"mappings":";;;;;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAH,OAAA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgGA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4CA;AACA;AACA;AACA;;AA4EA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;;AA6BA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAuDA;AACA;AACA;AACA;;AAwCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,aAAaA,CAACC,OAAsB,EAAQ;EAC1D,IAAAC,yCAAwB,EAACD,OAAO,CAACE,GAAG,CAAC;EACrCC,qBAAa,CAACJ,aAAa,CAACC,OAAO,CAAC;AACtC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,UAAUA,CAAA,EAAY;EACpC,OAAOD,qBAAa,CAACC,UAAU,CAAC,CAAC;AACnC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGE,sCAAkB,CAACC,UAAU,CAC1DC,EAAE,IAAMN,qBAAa,CAACE,gBAAgB,GAAGI,EAC5C,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACO,SAASC,UAAUA,CAAA,EAAY;EACpC,OAAO,IAAAC,4CAAqB,EAACP,UAAU,EAAEC,gBAAgB,CAAC;AAC5D","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.setupPlayer = setupPlayer;
|
|
7
7
|
var _native = require("../../native");
|
|
8
|
-
var
|
|
8
|
+
var _validateOptions = require("./validateOptions");
|
|
9
9
|
// MARK: - Types
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -372,7 +372,7 @@ async function setupPlayer(options = {}) {
|
|
|
372
372
|
carPlayUpNextButton,
|
|
373
373
|
carPlayNowPlayingButtons
|
|
374
374
|
});
|
|
375
|
-
(0,
|
|
375
|
+
(0, _validateOptions.validateIOSUpdateOptions)(iosUpdate);
|
|
376
376
|
const updates = definedFields({
|
|
377
377
|
capabilities,
|
|
378
378
|
forwardJumpInterval,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","
|
|
1
|
+
{"version":3,"names":["_native","require","_validateOptions","resolveNowPlaying","value","autoUpdateNowPlayingMetadata","nowPlayingMetadataFormatter","wrapNowPlayingFormatter","undefined","formatter","params","definedFields","obj","out","key","nonEmpty","Object","keys","length","setupPlayer","options","nowPlaying","capabilities","forwardJumpInterval","backwardJumpInterval","progressUpdateEventInterval","android","ios","nativeSetup","appKilledPlaybackBehavior","skipSilence","remoteButtonLayout","androidSetup","playbackRates","carPlayUpNextButton","carPlayNowPlayingButtons","iosSetup","iosUpdate","validateIOSUpdateOptions","updates","nativeBrowser"],"sourceRoot":"../../../../src","sources":["features/player/setup.ts"],"mappings":";;;;;;AAYA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAbA;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAsBA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;;AA2GA;;AA4CA;AACA;AACA;AACA;AACA;;AAgCA;;AAEA;AACA;AACA;AACA;;AAMA;AACA;AA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","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.validateIOSUpdateOptions = validateIOSUpdateOptions;
|
|
7
|
+
const MAX_CARPLAY_NOW_PLAYING_BUTTONS = 5;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Warns when more CarPlay now-playing buttons are configured than CarPlay renders.
|
|
11
|
+
* Shared by `updateOptions` and `setupPlayer` (both can carry `ios` options).
|
|
12
|
+
*
|
|
13
|
+
* Lives outside `options.ts` because `features/player/index.ts` re-exports that
|
|
14
|
+
* module wholesale: anything exported there joins the package's runtime surface,
|
|
15
|
+
* `@internal` or not. This file is imported directly by the two callers and by
|
|
16
|
+
* nothing in the barrel.
|
|
17
|
+
*/
|
|
18
|
+
function validateIOSUpdateOptions(ios) {
|
|
19
|
+
const buttons = ios?.carPlayNowPlayingButtons;
|
|
20
|
+
if (buttons && buttons.length > MAX_CARPLAY_NOW_PLAYING_BUTTONS) {
|
|
21
|
+
console.warn(`[react-native-audio-browser] ${buttons.length} CarPlay now-playing ` + `buttons configured; CarPlay shows at most ${MAX_CARPLAY_NOW_PLAYING_BUTTONS}.`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=validateOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MAX_CARPLAY_NOW_PLAYING_BUTTONS","validateIOSUpdateOptions","ios","buttons","carPlayNowPlayingButtons","length","console","warn"],"sourceRoot":"../../../../src","sources":["features/player/validateOptions.ts"],"mappings":";;;;;;AAEA,MAAMA,+BAA+B,GAAG,CAAC;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,wBAAwBA,CAACC,GAAsB,EAAQ;EACrE,MAAMC,OAAO,GAAGD,GAAG,EAAEE,wBAAwB;EAC7C,IAAID,OAAO,IAAIA,OAAO,CAACE,MAAM,GAAGL,+BAA+B,EAAE;IAC/DM,OAAO,CAACC,IAAI,CACV,gCAAgCJ,OAAO,CAACE,MAAM,uBAAuB,GACnE,6CAA6CL,+BAA+B,GAChF,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -36,7 +36,7 @@ function getActiveTrackIndex() {
|
|
|
36
36
|
/**
|
|
37
37
|
* Subscribes to active track change events.
|
|
38
38
|
* @param callback - Called when the active track changes
|
|
39
|
-
* @returns
|
|
39
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
40
40
|
*/
|
|
41
41
|
const onActiveTrackChanged = exports.onActiveTrackChanged = _NativeUpdatedValue.NativeUpdatedValue.emitterize(cb => _native.nativeBrowser.onPlaybackActiveTrackChanged = cb);
|
|
42
42
|
|
|
@@ -160,7 +160,7 @@ function getQueue() {
|
|
|
160
160
|
/**
|
|
161
161
|
* Subscribes to playback queue ended events.
|
|
162
162
|
* @param callback - Called when playback has paused due to reaching the end of the queue
|
|
163
|
-
* @returns
|
|
163
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
164
164
|
*/
|
|
165
165
|
const onQueueEnded = exports.onQueueEnded = _NativeUpdatedValue.NativeUpdatedValue.emitterize(cb => _native.nativeBrowser.onPlaybackQueueEnded = cb);
|
|
166
166
|
|
|
@@ -168,7 +168,7 @@ const onQueueEnded = exports.onQueueEnded = _NativeUpdatedValue.NativeUpdatedVal
|
|
|
168
168
|
* Subscribes to queue change events.
|
|
169
169
|
* Called when tracks are added, removed, reordered, or when track metadata changes.
|
|
170
170
|
* @param callback - Called with the updated queue
|
|
171
|
-
* @returns
|
|
171
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
172
172
|
*/
|
|
173
173
|
const onQueueChanged = exports.onQueueChanged = _NativeUpdatedValue.NativeUpdatedValue.emitterize(cb => _native.nativeBrowser.onPlaybackQueueChanged = cb);
|
|
174
174
|
|
|
@@ -42,7 +42,7 @@ function setRepeatMode(repeatMode) {
|
|
|
42
42
|
/**
|
|
43
43
|
* Subscribes to repeat mode changes.
|
|
44
44
|
* @param callback - Called when repeat mode changes
|
|
45
|
-
* @returns
|
|
45
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
46
46
|
*/
|
|
47
47
|
const onRepeatModeChanged = exports.onRepeatModeChanged = _NativeUpdatedValue.NativeUpdatedValue.emitterize(cb => _native.nativeBrowser.onPlaybackRepeatModeChanged = cb);
|
|
48
48
|
|
|
@@ -41,7 +41,7 @@ function toggleShuffle() {
|
|
|
41
41
|
/**
|
|
42
42
|
* Subscribes to shuffle mode changes.
|
|
43
43
|
* @param callback - Called when shuffle mode changes
|
|
44
|
-
* @returns
|
|
44
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
45
45
|
*/
|
|
46
46
|
const onShuffleChanged = exports.onShuffleChanged = _NativeUpdatedValue.NativeUpdatedValue.emitterize(cb => _native.nativeBrowser.onPlaybackShuffleModeChanged = cb);
|
|
47
47
|
|
|
@@ -40,90 +40,11 @@ var _LazyNativeEmitter = require("../utils/LazyNativeEmitter");
|
|
|
40
40
|
* Remote skip event (Android only).
|
|
41
41
|
*/
|
|
42
42
|
|
|
43
|
-
// MARK: - Default Handlers
|
|
44
|
-
|
|
45
|
-
// Install remote control handlers with default behavior immediately when module loads
|
|
46
|
-
// Custom handlers can override the defaults using handleRemote* functions
|
|
47
|
-
|
|
48
|
-
// Basic playback controls
|
|
49
|
-
// AudioBrowser.onRemotePlay(() => {
|
|
50
|
-
// const customHandler = customHandlers.get('play')
|
|
51
|
-
// if (customHandler) {
|
|
52
|
-
// customHandler()
|
|
53
|
-
// } else {
|
|
54
|
-
// play()
|
|
55
|
-
// }
|
|
56
|
-
// })
|
|
57
|
-
|
|
58
|
-
// AudioBrowser.onRemotePause(() => {
|
|
59
|
-
// const customHandler = customHandlers.get('pause')
|
|
60
|
-
// if (customHandler) {
|
|
61
|
-
// customHandler()
|
|
62
|
-
// } else {
|
|
63
|
-
// pause()
|
|
64
|
-
// }
|
|
65
|
-
// })
|
|
66
|
-
|
|
67
|
-
// AudioBrowser.onRemoteNext(() => {
|
|
68
|
-
// const customHandler = customHandlers.get('next')
|
|
69
|
-
// if (customHandler) {
|
|
70
|
-
// customHandler()
|
|
71
|
-
// } else {
|
|
72
|
-
// skipToNext()
|
|
73
|
-
// }
|
|
74
|
-
// })
|
|
75
|
-
|
|
76
|
-
// AudioBrowser.onRemotePrevious(() => {
|
|
77
|
-
// const customHandler = customHandlers.get('previous')
|
|
78
|
-
// if (customHandler) {
|
|
79
|
-
// customHandler()
|
|
80
|
-
// } else {
|
|
81
|
-
// skipToPrevious()
|
|
82
|
-
// }
|
|
83
|
-
// })
|
|
84
|
-
|
|
85
|
-
// AudioBrowser.onRemoteStop(() => {
|
|
86
|
-
// const customHandler = customHandlers.get('stop')
|
|
87
|
-
// if (customHandler) {
|
|
88
|
-
// customHandler()
|
|
89
|
-
// } else {
|
|
90
|
-
// stop()
|
|
91
|
-
// }
|
|
92
|
-
// })
|
|
93
|
-
|
|
94
|
-
// // Seek controls
|
|
95
|
-
// AudioBrowser.onRemoteSeek((event: any) => {
|
|
96
|
-
// const customHandler = customHandlers.get('seek')
|
|
97
|
-
// if (customHandler) {
|
|
98
|
-
// customHandler(event)
|
|
99
|
-
// } else {
|
|
100
|
-
// seekTo(event.position)
|
|
101
|
-
// }
|
|
102
|
-
// })
|
|
103
|
-
|
|
104
|
-
// AudioBrowser.onRemoteJumpForward((event: any) => {
|
|
105
|
-
// const customHandler = customHandlers.get('jumpForward')
|
|
106
|
-
// if (customHandler) {
|
|
107
|
-
// customHandler(event)
|
|
108
|
-
// } else {
|
|
109
|
-
// seekBy(event.interval)
|
|
110
|
-
// }
|
|
111
|
-
// })
|
|
112
|
-
|
|
113
|
-
// AudioBrowser.onRemoteJumpBackward((event: any) => {
|
|
114
|
-
// const customHandler = customHandlers.get('jumpBackward')
|
|
115
|
-
// if (customHandler) {
|
|
116
|
-
// customHandler(event)
|
|
117
|
-
// } else {
|
|
118
|
-
// seekBy(-event.interval)
|
|
119
|
-
// }
|
|
120
|
-
// })
|
|
121
|
-
|
|
122
43
|
// MARK: - Handler Override Functions
|
|
123
44
|
//
|
|
124
45
|
// Use these functions when you want to OVERRIDE the default remote control behavior.
|
|
125
46
|
// These will replace the default handlers with your custom logic.
|
|
126
|
-
// If you just want to listen to events for debugging/logging, use the onRemote*
|
|
47
|
+
// If you just want to listen to events for debugging/logging, use the onRemote* emitters below.
|
|
127
48
|
|
|
128
49
|
/**
|
|
129
50
|
* Sets a custom handler for remote play events, overriding the default behavior.
|
|
@@ -191,7 +112,7 @@ function handleRemoteJumpBackward(callback) {
|
|
|
191
112
|
|
|
192
113
|
// MARK: - Event Callbacks (for listening/debugging only)
|
|
193
114
|
//
|
|
194
|
-
// Use these
|
|
115
|
+
// Use these emitters when you want to LISTEN to remote control events without overriding
|
|
195
116
|
// the default behavior. These are perfect for logging, analytics, or debugging.
|
|
196
117
|
// Multiple listeners can be registered for the same event.
|
|
197
118
|
// To override the default behavior, use the handleRemote* functions above.
|
|
@@ -199,77 +120,77 @@ function handleRemoteJumpBackward(callback) {
|
|
|
199
120
|
/**
|
|
200
121
|
* Subscribes to remote jump backward events.
|
|
201
122
|
* @param callback - Called when the user presses the jump backward button
|
|
202
|
-
* @returns
|
|
123
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
203
124
|
*/
|
|
204
125
|
const onRemoteJumpBackward = exports.onRemoteJumpBackward = _LazyNativeEmitter.LazyNativeEmitter.emitterize(cb => _native.nativeBrowser.onRemoteJumpBackward = cb);
|
|
205
126
|
|
|
206
127
|
/**
|
|
207
128
|
* Subscribes to remote jump forward events.
|
|
208
129
|
* @param callback - Called when the user presses the jump forward button
|
|
209
|
-
* @returns
|
|
130
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
210
131
|
*/
|
|
211
132
|
const onRemoteJumpForward = exports.onRemoteJumpForward = _LazyNativeEmitter.LazyNativeEmitter.emitterize(cb => _native.nativeBrowser.onRemoteJumpForward = cb);
|
|
212
133
|
|
|
213
134
|
/**
|
|
214
135
|
* Subscribes to remote next events.
|
|
215
136
|
* @param callback - Called when the user presses the next track button
|
|
216
|
-
* @returns
|
|
137
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
217
138
|
*/
|
|
218
139
|
const onRemoteNext = exports.onRemoteNext = _LazyNativeEmitter.LazyNativeEmitter.emitterize(cb => _native.nativeBrowser.onRemoteNext = cb);
|
|
219
140
|
|
|
220
141
|
/**
|
|
221
142
|
* Subscribes to remote pause events.
|
|
222
143
|
* @param callback - Called when the user presses the pause button
|
|
223
|
-
* @returns
|
|
144
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
224
145
|
*/
|
|
225
146
|
const onRemotePause = exports.onRemotePause = _LazyNativeEmitter.LazyNativeEmitter.emitterize(cb => _native.nativeBrowser.onRemotePause = cb);
|
|
226
147
|
|
|
227
148
|
/**
|
|
228
149
|
* Subscribes to remote play events.
|
|
229
150
|
* @param callback - Called when the user presses the play button
|
|
230
|
-
* @returns
|
|
151
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
231
152
|
*/
|
|
232
153
|
const onRemotePlay = exports.onRemotePlay = _LazyNativeEmitter.LazyNativeEmitter.emitterize(cb => _native.nativeBrowser.onRemotePlay = cb);
|
|
233
154
|
|
|
234
155
|
/**
|
|
235
156
|
* Subscribes to remote play ID events (Android only).
|
|
236
157
|
* @param callback - Called when the user selects a track from an external device
|
|
237
|
-
* @returns
|
|
158
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
238
159
|
*/
|
|
239
160
|
const onRemotePlayId = exports.onRemotePlayId = _LazyNativeEmitter.LazyNativeEmitter.emitterize(cb => _native.nativeBrowser.onRemotePlayId = cb);
|
|
240
161
|
|
|
241
162
|
/**
|
|
242
163
|
* Subscribes to remote play search events (Android only).
|
|
243
164
|
* @param callback - Called when the user searches for a track (usually voice search)
|
|
244
|
-
* @returns
|
|
165
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
245
166
|
*/
|
|
246
167
|
const onRemotePlaySearch = exports.onRemotePlaySearch = _LazyNativeEmitter.LazyNativeEmitter.emitterize(cb => _native.nativeBrowser.onRemotePlaySearch = cb);
|
|
247
168
|
|
|
248
169
|
/**
|
|
249
170
|
* Subscribes to remote previous events.
|
|
250
171
|
* @param callback - Called when the user presses the previous track button
|
|
251
|
-
* @returns
|
|
172
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
252
173
|
*/
|
|
253
174
|
const onRemotePrevious = exports.onRemotePrevious = _LazyNativeEmitter.LazyNativeEmitter.emitterize(cb => _native.nativeBrowser.onRemotePrevious = cb);
|
|
254
175
|
|
|
255
176
|
/**
|
|
256
177
|
* Subscribes to remote seek events.
|
|
257
178
|
* @param callback - Called when the user changes the position of the timeline
|
|
258
|
-
* @returns
|
|
179
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
259
180
|
*/
|
|
260
181
|
const onRemoteSeek = exports.onRemoteSeek = _LazyNativeEmitter.LazyNativeEmitter.emitterize(cb => _native.nativeBrowser.onRemoteSeek = cb);
|
|
261
182
|
|
|
262
183
|
/**
|
|
263
184
|
* Subscribes to remote skip events (Android only).
|
|
264
185
|
* @param callback - Called when the user presses the skip button
|
|
265
|
-
* @returns
|
|
186
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
266
187
|
*/
|
|
267
188
|
const onRemoteSkip = exports.onRemoteSkip = _LazyNativeEmitter.LazyNativeEmitter.emitterize(cb => _native.nativeBrowser.onRemoteSkip = cb);
|
|
268
189
|
|
|
269
190
|
/**
|
|
270
191
|
* Subscribes to remote stop events.
|
|
271
192
|
* @param callback - Called when the user presses the stop button
|
|
272
|
-
* @returns
|
|
193
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
273
194
|
*/
|
|
274
195
|
const onRemoteStop = exports.onRemoteStop = _LazyNativeEmitter.LazyNativeEmitter.emitterize(cb => _native.nativeBrowser.onRemoteStop = cb);
|
|
275
196
|
//# sourceMappingURL=remoteControls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","_LazyNativeEmitter","handleRemotePlay","callback","nativeBrowser","handleRemotePause","handleRemoteNext","handleRemotePrevious","handleRemoteStop","handleRemoteSeek","handleRemoteJumpForward","handleRemoteJumpBackward","onRemoteJumpBackward","exports","LazyNativeEmitter","emitterize","cb","onRemoteJumpForward","onRemoteNext","onRemotePause","onRemotePlay","onRemotePlayId","onRemotePlaySearch","onRemotePrevious","onRemoteSeek","onRemoteSkip","onRemoteStop"],"sourceRoot":"../../../src","sources":["features/remoteControls.ts"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAEA;;AAEA;AACA;AACA;;AAMA;AACA;AACA;;AAMA;AACA;AACA;;AAQA;AACA;AACA;;AAMA;AACA;AACA;;AAMA;AACA;AACA;;AAMA
|
|
1
|
+
{"version":3,"names":["_native","require","_LazyNativeEmitter","handleRemotePlay","callback","nativeBrowser","handleRemotePause","handleRemoteNext","handleRemotePrevious","handleRemoteStop","handleRemoteSeek","handleRemoteJumpForward","handleRemoteJumpBackward","onRemoteJumpBackward","exports","LazyNativeEmitter","emitterize","cb","onRemoteJumpForward","onRemoteNext","onRemotePause","onRemotePlay","onRemotePlayId","onRemotePlaySearch","onRemotePrevious","onRemoteSeek","onRemoteSkip","onRemoteStop"],"sourceRoot":"../../../src","sources":["features/remoteControls.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -72,7 +72,7 @@ function clearSleepTimer() {
|
|
|
72
72
|
/**
|
|
73
73
|
* Subscribes to sleep timer changes.
|
|
74
74
|
* @param callback - Called when the sleep timer state changes
|
|
75
|
-
* @returns
|
|
75
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
76
76
|
*/
|
|
77
77
|
const onSleepTimerChanged = exports.onSleepTimerChanged = _NativeUpdatedValue.NativeUpdatedValue.emitterize(cb => _native.nativeBrowser.onSleepTimerChanged = cb);
|
|
78
78
|
|
|
@@ -16,9 +16,11 @@ exports.LazyNativeEmitter = void 0;
|
|
|
16
16
|
*
|
|
17
17
|
* @example
|
|
18
18
|
* ```typescript
|
|
19
|
-
* export const onRemotePlay =
|
|
19
|
+
* export const onRemotePlay = LazyNativeEmitter.emitterize<void>(
|
|
20
20
|
* (cb) => (nativeBrowser.onRemotePlay = cb)
|
|
21
21
|
* )
|
|
22
|
+
*
|
|
23
|
+
* const unsubscribe = onRemotePlay.addListener(() => console.log('play'))
|
|
22
24
|
* ```
|
|
23
25
|
*/
|
|
24
26
|
class LazyNativeEmitter {
|
|
@@ -42,13 +44,14 @@ class LazyNativeEmitter {
|
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
/**
|
|
45
|
-
* Creates a lazy emitter
|
|
47
|
+
* Creates a lazy emitter for a native callback.
|
|
48
|
+
*
|
|
46
49
|
* @param setter - Function that sets the native callback property
|
|
47
|
-
* @returns
|
|
50
|
+
* @returns The emitter instance — subscribe with `addListener`, which returns
|
|
51
|
+
* an unsubscribe function
|
|
48
52
|
*/
|
|
49
53
|
static emitterize(setter) {
|
|
50
|
-
|
|
51
|
-
return callback => emitter.addListener(callback);
|
|
54
|
+
return new LazyNativeEmitter(setter);
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
exports.LazyNativeEmitter = LazyNativeEmitter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LazyNativeEmitter","constructor","setter","getListeners","listeners","Set","data","listener","addListener","callback","add","delete","emitterize","
|
|
1
|
+
{"version":3,"names":["LazyNativeEmitter","constructor","setter","getListeners","listeners","Set","data","listener","addListener","callback","add","delete","emitterize","exports"],"sourceRoot":"../../../src","sources":["utils/LazyNativeEmitter.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,iBAAiB,CAAI;EAIhCC,WAAWA,CAACC,MAA6C,EAAE;IACzD,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;EAEQC,YAAYA,CAAA,EAAqB;IACvC,IAAI,IAAI,CAACC,SAAS,EAAE,OAAO,IAAI,CAACA,SAAS;IACzC,MAAMA,SAAS,GAAI,IAAI,CAACA,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAE;IAC9C,IAAI,CAACH,MAAM,CAAEI,IAAO,IAAK;MACvB,KAAK,MAAMC,QAAQ,IAAIH,SAAS,EAAE;QAChCG,QAAQ,CAACD,IAAI,CAAC;MAChB;IACF,CAAC,CAAC;IACF,OAAOF,SAAS;EAClB;EAEAI,WAAWA,CAACC,QAAqB,EAAc;IAC7C,MAAML,SAAS,GAAG,IAAI,CAACD,YAAY,CAAC,CAAC;IACrCC,SAAS,CAACM,GAAG,CAACD,QAAQ,CAAC;IACvB,OAAO,MAAML,SAAS,CAACO,MAAM,CAACF,QAAQ,CAAC;EACzC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOG,UAAUA,CACfV,MAA6C,EACvB;IACtB,OAAO,IAAIF,iBAAiB,CAACE,MAAM,CAAC;EACtC;AACF;AAACW,OAAA,CAAAb,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
// `./native` is deliberately NOT re-exported. It holds the raw Nitro hybrid
|
|
4
|
+
// object, whose `on*` properties are single callback slots that the emitters in
|
|
5
|
+
// `./features` own — a consumer assigning one silently unsubscribes every hook
|
|
6
|
+
// in the library. Feature modules import it directly; nothing else should.
|
|
3
7
|
export * from './features';
|
|
4
|
-
export * from './native';
|
|
5
8
|
export * from './types';
|
|
6
9
|
export * from './utils/useDebug';
|
|
7
10
|
//# sourceMappingURL=AudioBrowser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["AudioBrowser.ts"],"mappings":";;AAAA,cAAc,YAAY;AAC1B,cAAc,
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["AudioBrowser.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,kBAAkB","ignoreList":[]}
|
|
@@ -21,7 +21,7 @@ export function isCarConnected() {
|
|
|
21
21
|
* Subscribes to car connection changes (CarPlay on iOS, Android Auto /
|
|
22
22
|
* Android Automotive on Android). Never fires on web.
|
|
23
23
|
* @param callback - Called with the new connection state
|
|
24
|
-
* @returns
|
|
24
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
25
25
|
*/
|
|
26
26
|
export const onCarConnectedChanged = NativeUpdatedValue.emitterize(cb => nativeBrowser.onCarConnectedChanged = cb);
|
|
27
27
|
|
|
@@ -44,7 +44,7 @@ export function setEqualizerLevels(levels) {
|
|
|
44
44
|
/**
|
|
45
45
|
* Subscribes to equalizer settings changes (Android only).
|
|
46
46
|
* @param callback - Called when equalizer settings change
|
|
47
|
-
* @returns
|
|
47
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
48
48
|
*/
|
|
49
49
|
export const onEqualizerChanged = NativeUpdatedValue.emitterize(cb => nativeBrowser.onEqualizerChanged = cb);
|
|
50
50
|
|
|
@@ -74,7 +74,7 @@ export function getPlaybackError() {
|
|
|
74
74
|
/**
|
|
75
75
|
* Subscribes to playback error events.
|
|
76
76
|
* @param callback - Called when a playback error occurs
|
|
77
|
-
* @returns
|
|
77
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
78
78
|
*/
|
|
79
79
|
export const onPlaybackError = NativeUpdatedValue.emitterize(cb => nativeBrowser.onPlaybackError = cb);
|
|
80
80
|
|
|
@@ -102,7 +102,7 @@ export function getNavigationError() {
|
|
|
102
102
|
/**
|
|
103
103
|
* Subscribes to navigation error events.
|
|
104
104
|
* @param callback - Called when a navigation error occurs
|
|
105
|
-
* @returns
|
|
105
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
106
106
|
*/
|
|
107
107
|
export const onNavigationError = NativeUpdatedValue.emitterize(cb => nativeBrowser.onNavigationError = cb);
|
|
108
108
|
|
|
@@ -130,7 +130,7 @@ export function getFormattedNavigationError() {
|
|
|
130
130
|
/**
|
|
131
131
|
* Subscribes to formatted navigation error changes.
|
|
132
132
|
* @param callback - Called when the formatted navigation error changes
|
|
133
|
-
* @returns
|
|
133
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
134
134
|
*/
|
|
135
135
|
export const onFormattedNavigationError = NativeUpdatedValue.emitterize(cb => nativeBrowser.onFormattedNavigationError = cb);
|
|
136
136
|
|
|
@@ -77,7 +77,7 @@ export function setFavorites(favorites) {
|
|
|
77
77
|
* The native side has already updated the track's favorite state and UI.
|
|
78
78
|
*
|
|
79
79
|
* @param callback - Called with the track and its new favorite state
|
|
80
|
-
* @returns
|
|
80
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
81
81
|
*
|
|
82
82
|
* @example
|
|
83
83
|
* ```ts
|
|
@@ -138,7 +138,7 @@ export function clearGate() {
|
|
|
138
138
|
|
|
139
139
|
/**
|
|
140
140
|
* Subscribes to gate events (fired when a request is gated).
|
|
141
|
-
* @returns
|
|
141
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
142
142
|
*/
|
|
143
143
|
export const onGate = LazyNativeEmitter.emitterize(cb => nativeBrowser.onGate = cb);
|
|
144
144
|
//# sourceMappingURL=gate.js.map
|
|
@@ -31,21 +31,21 @@ import { NativeUpdatedValue } from '../utils/NativeUpdatedValue';
|
|
|
31
31
|
/**
|
|
32
32
|
* Subscribes to chapter metadata events.
|
|
33
33
|
* @param callback - Called when chapter metadata is received
|
|
34
|
-
* @returns
|
|
34
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
35
35
|
*/
|
|
36
36
|
export const onChapterMetadata = NativeUpdatedValue.emitterize(cb => nativeBrowser.onChapterMetadata = cb);
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
39
|
* Subscribes to track metadata events.
|
|
40
40
|
* @param callback - Called when static track metadata is received
|
|
41
|
-
* @returns
|
|
41
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
42
42
|
*/
|
|
43
43
|
export const onTrackMetadata = NativeUpdatedValue.emitterize(cb => nativeBrowser.onTrackMetadata = cb);
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
46
|
* Subscribes to timed metadata events (ICY/ID3 from live streams).
|
|
47
47
|
* @param callback - Called when stream metadata is received (title, artist from ICY/ID3 tags)
|
|
48
|
-
* @returns
|
|
48
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
49
49
|
*/
|
|
50
50
|
export const onTimedMetadata = NativeUpdatedValue.emitterize(cb => nativeBrowser.onTimedMetadata = cb);
|
|
51
51
|
//# sourceMappingURL=metadata.js.map
|
|
@@ -19,7 +19,7 @@ export function getOnline() {
|
|
|
19
19
|
/**
|
|
20
20
|
* Subscribes to network connectivity changes.
|
|
21
21
|
* @param callback - Called when network state changes
|
|
22
|
-
* @returns
|
|
22
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
23
23
|
*/
|
|
24
24
|
export const onOnlineChanged = NativeUpdatedValue.emitterize(cb => nativeBrowser.onOnlineChanged = cb);
|
|
25
25
|
|
|
@@ -72,7 +72,7 @@ export function clearNowPlayingFlash() {
|
|
|
72
72
|
* Subscribes to now playing metadata change events.
|
|
73
73
|
* Fires when updateNowPlaying is called or when the track changes.
|
|
74
74
|
* @param callback - Called when now playing metadata changes
|
|
75
|
-
* @returns
|
|
75
|
+
* @returns An emitter — subscribe with `addListener(callback)`, which returns a cleanup function
|
|
76
76
|
*/
|
|
77
77
|
export const onNowPlayingChanged = NativeUpdatedValue.emitterize(cb => nativeBrowser.onNowPlayingChanged = cb);
|
|
78
78
|
|