react-native-audio-browser 0.2.0-next.1 → 0.2.0-next.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/README.md +22 -18
  2. package/android/build.gradle +13 -10
  3. package/android/gradle.properties +2 -2
  4. package/android/src/main/AndroidManifest.xml +3 -1
  5. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +76 -21
  6. package/android/src/main/java/com/audiobrowser/AudioBrowserLifecycleModule.kt +38 -0
  7. package/android/src/main/java/com/audiobrowser/AudioBrowserPackage.kt +18 -2
  8. package/android/src/main/java/com/audiobrowser/ServiceBinding.kt +48 -0
  9. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +1 -2
  10. package/android/src/main/java/com/audiobrowser/browser/BrowserUrlResolution.kt +1 -2
  11. package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +6 -7
  12. package/android/src/main/java/com/audiobrowser/http/HttpClient.kt +20 -3
  13. package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +11 -11
  14. package/android/src/main/java/com/audiobrowser/player/CapabilityControls.kt +111 -58
  15. package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +9 -5
  16. package/android/src/main/java/com/audiobrowser/player/MediaSessionCommandManager.kt +218 -252
  17. package/android/src/main/java/com/audiobrowser/player/NowPlayingUpdater.kt +0 -1
  18. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +2 -4
  19. package/android/src/main/java/com/audiobrowser/player/Player.kt +30 -8
  20. package/android/src/main/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicy.kt +2 -1
  21. package/android/src/main/java/com/audiobrowser/player/TransformingDataSource.kt +2 -1
  22. package/android/src/main/java/com/audiobrowser/tls/AiaCertChaser.kt +67 -11
  23. package/android/src/main/java/com/audiobrowser/tls/AiaChasingExtendedTrustManager.kt +168 -0
  24. package/android/src/main/java/com/audiobrowser/tls/AiaChasingTrustManager.kt +58 -14
  25. package/android/src/main/java/com/audiobrowser/tls/AiaTls.kt +35 -7
  26. package/android/src/main/java/com/audiobrowser/tls/CachingCertificateFetcher.kt +278 -59
  27. package/android/src/main/java/com/audiobrowser/util/ArtworkVariant.kt +7 -9
  28. package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +8 -7
  29. package/android/src/test/java/com/audiobrowser/ServiceBindingTest.kt +87 -0
  30. package/android/src/test/java/com/audiobrowser/TestFixtures.kt +52 -1
  31. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerLayerResolutionTest.kt +6 -0
  32. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +167 -8
  33. package/android/src/test/java/com/audiobrowser/browser/JsonArtworkTest.kt +2 -1
  34. package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +2 -4
  35. package/android/src/test/java/com/audiobrowser/player/CapabilityControlsTest.kt +100 -56
  36. package/android/src/test/java/com/audiobrowser/player/MediaSessionSlotMappingTest.kt +45 -0
  37. package/android/src/test/java/com/audiobrowser/player/PlaybackErrorClassifierTest.kt +3 -4
  38. package/android/src/test/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicyTest.kt +3 -3
  39. package/android/src/test/java/com/audiobrowser/tls/AiaCertChaserTest.kt +197 -7
  40. package/android/src/test/java/com/audiobrowser/tls/AiaChasingTrustManagerTest.kt +325 -4
  41. package/android/src/test/java/com/audiobrowser/tls/CachingCertificateFetcherCallSiteTest.kt +322 -0
  42. package/android/src/test/java/com/audiobrowser/tls/CachingCertificateFetcherTest.kt +83 -0
  43. package/ios/Browser/BrowserManager.swift +2 -27
  44. package/ios/Browser/SearchDrillIn.swift +1 -1
  45. package/ios/CarPlay/RNABMediaAddHandler.swift +6 -6
  46. package/ios/CarPlay/RNABMediaAffinityHandler.swift +2 -2
  47. package/ios/CarPlay/RNABMediaIntentHandler.swift +16 -16
  48. package/ios/HybridAudioBrowser.swift +87 -56
  49. package/ios/Model/NitroTypeStubs.swift +18 -2
  50. package/ios/Model/RemoteCommand.swift +18 -0
  51. package/ios/Model/TrackPlayerError.swift +2 -2
  52. package/ios/Option/SessionCategories.swift +3 -2
  53. package/ios/Player/MediaIntentCriteria.swift +4 -4
  54. package/ios/Player/MediaLoader.swift +3 -1
  55. package/ios/Player/PlaybackCoordinator.swift +4 -1
  56. package/ios/Player/PlaybackErrorHandler.swift +4 -4
  57. package/ios/Player/QueueManager.swift +10 -3
  58. package/ios/Player/RetryManager.swift +79 -18
  59. package/ios/Player/ShuffleOrder.swift +10 -0
  60. package/ios/Player/SleepTimerManager.swift +43 -15
  61. package/ios/RemoteCommand/RemoteCommandCallbacks.swift +47 -0
  62. package/ios/RemoteCommand/RemoteCommandController.swift +9 -6
  63. package/ios/Tests/LRUCacheTests.swift +111 -0
  64. package/ios/Tests/LoadSeekCoordinatorTests.swift +3 -1
  65. package/ios/Tests/MediaIntentCriteriaTests.swift +2 -2
  66. package/ios/Tests/MediaLoaderTests.swift +10 -13
  67. package/ios/Tests/PlaybackCoordinatorTests.swift +10 -7
  68. package/ios/Tests/PlaybackErrorHandlerTests.swift +3 -1
  69. package/ios/Tests/PlayerTimeObserverTests.swift +37 -0
  70. package/ios/Tests/QueueManagerTests.swift +50 -4
  71. package/ios/Tests/RemoteCommandControllerTests.swift +156 -0
  72. package/ios/Tests/RemoteCommandTests.swift +67 -0
  73. package/ios/Tests/RetryManagerTests.swift +89 -0
  74. package/ios/Tests/SectionScopeTests.swift +2 -2
  75. package/ios/Tests/SleepTimerManagerTests.swift +22 -19
  76. package/ios/Tests/Support/ManualSleepTimerScheduler.swift +47 -0
  77. package/ios/Tests/Support/TestTypes.swift +1 -1
  78. package/ios/Tests/TabBarEntriesTests.swift +7 -7
  79. package/ios/TrackPlayer.swift +6 -1
  80. package/ios/TrackPlayerCallbacks.swift +5 -38
  81. package/ios/Util/LRUCache.swift +4 -1
  82. package/lib/commonjs/AudioBrowser.js +0 -11
  83. package/lib/commonjs/AudioBrowser.js.map +1 -1
  84. package/lib/commonjs/CLAUDE.md +52 -0
  85. package/lib/commonjs/features/browser.js +1 -1
  86. package/lib/commonjs/features/browser.js.map +1 -1
  87. package/lib/commonjs/features/carConnection.js +1 -1
  88. package/lib/commonjs/features/equalizer.js +1 -1
  89. package/lib/commonjs/features/errors.js +3 -3
  90. package/lib/commonjs/features/favorites.js +1 -1
  91. package/lib/commonjs/features/gate.js +16 -1
  92. package/lib/commonjs/features/gate.js.map +1 -1
  93. package/lib/commonjs/features/metadata.js +20 -3
  94. package/lib/commonjs/features/metadata.js.map +1 -1
  95. package/lib/commonjs/features/network.js +1 -1
  96. package/lib/commonjs/features/nowPlaying.js +1 -1
  97. package/lib/commonjs/features/output.js +1 -1
  98. package/lib/commonjs/features/playback/playWhenReady.js +1 -1
  99. package/lib/commonjs/features/playback/playing.js +1 -1
  100. package/lib/commonjs/features/playback/progress.js +1 -1
  101. package/lib/commonjs/features/playback/state.js +1 -1
  102. package/lib/commonjs/features/playback/trackPlaybackTime.js +0 -6
  103. package/lib/commonjs/features/playback/trackPlaybackTime.js.map +1 -1
  104. package/lib/commonjs/features/playback/volume.js +1 -1
  105. package/lib/commonjs/features/player/options.js +48 -34
  106. package/lib/commonjs/features/player/options.js.map +1 -1
  107. package/lib/commonjs/features/player/setup.js +15 -8
  108. package/lib/commonjs/features/player/setup.js.map +1 -1
  109. package/lib/commonjs/features/player/validateOptions.js +21 -0
  110. package/lib/commonjs/features/player/validateOptions.js.map +1 -0
  111. package/lib/commonjs/features/queue/activeTrack.js +1 -1
  112. package/lib/commonjs/features/queue/queue.js +2 -2
  113. package/lib/commonjs/features/queue/repeatMode.js +1 -1
  114. package/lib/commonjs/features/queue/shuffle.js +1 -1
  115. package/lib/commonjs/features/remoteControls.js +13 -92
  116. package/lib/commonjs/features/remoteControls.js.map +1 -1
  117. package/lib/commonjs/features/sleepTimer.js +13 -1
  118. package/lib/commonjs/features/sleepTimer.js.map +1 -1
  119. package/lib/commonjs/test-utils/reactNativeStub.js +65 -0
  120. package/lib/commonjs/test-utils/reactNativeStub.js.map +1 -0
  121. package/lib/commonjs/utils/LazyNativeEmitter.js +8 -5
  122. package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -1
  123. package/lib/commonjs/web/NativeAudioBrowser.js +1 -1
  124. package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
  125. package/lib/commonjs/web/browser/BrowserManager.js +1 -1
  126. package/lib/module/AudioBrowser.js +1 -1
  127. package/lib/module/AudioBrowser.js.map +1 -1
  128. package/lib/module/CLAUDE.md +52 -0
  129. package/lib/module/features/browser.js +1 -1
  130. package/lib/module/features/browser.js.map +1 -1
  131. package/lib/module/features/carConnection.js +1 -1
  132. package/lib/module/features/equalizer.js +1 -1
  133. package/lib/module/features/errors.js +3 -3
  134. package/lib/module/features/favorites.js +1 -1
  135. package/lib/module/features/gate.js +16 -1
  136. package/lib/module/features/gate.js.map +1 -1
  137. package/lib/module/features/metadata.js +20 -3
  138. package/lib/module/features/metadata.js.map +1 -1
  139. package/lib/module/features/network.js +1 -1
  140. package/lib/module/features/nowPlaying.js +1 -1
  141. package/lib/module/features/output.js +1 -1
  142. package/lib/module/features/playback/playWhenReady.js +1 -1
  143. package/lib/module/features/playback/playing.js +1 -1
  144. package/lib/module/features/playback/progress.js +1 -1
  145. package/lib/module/features/playback/state.js +1 -1
  146. package/lib/module/features/playback/trackPlaybackTime.js +0 -5
  147. package/lib/module/features/playback/trackPlaybackTime.js.map +1 -1
  148. package/lib/module/features/playback/volume.js +1 -1
  149. package/lib/module/features/player/options.js +47 -32
  150. package/lib/module/features/player/options.js.map +1 -1
  151. package/lib/module/features/player/setup.js +14 -7
  152. package/lib/module/features/player/setup.js.map +1 -1
  153. package/lib/module/features/player/validateOptions.js +17 -0
  154. package/lib/module/features/player/validateOptions.js.map +1 -0
  155. package/lib/module/features/queue/activeTrack.js +1 -1
  156. package/lib/module/features/queue/queue.js +2 -2
  157. package/lib/module/features/queue/repeatMode.js +1 -1
  158. package/lib/module/features/queue/shuffle.js +1 -1
  159. package/lib/module/features/remoteControls.js +13 -92
  160. package/lib/module/features/remoteControls.js.map +1 -1
  161. package/lib/module/features/sleepTimer.js +13 -1
  162. package/lib/module/features/sleepTimer.js.map +1 -1
  163. package/lib/module/test-utils/reactNativeStub.js +58 -0
  164. package/lib/module/test-utils/reactNativeStub.js.map +1 -0
  165. package/lib/module/utils/LazyNativeEmitter.js +8 -5
  166. package/lib/module/utils/LazyNativeEmitter.js.map +1 -1
  167. package/lib/module/web/NativeAudioBrowser.js +1 -1
  168. package/lib/module/web/NativeAudioBrowser.js.map +1 -1
  169. package/lib/module/web/browser/BrowserManager.js +1 -1
  170. package/lib/typescript/src/AudioBrowser.d.ts +0 -1
  171. package/lib/typescript/src/AudioBrowser.d.ts.map +1 -1
  172. package/lib/typescript/src/features/carConnection.d.ts +1 -1
  173. package/lib/typescript/src/features/equalizer.d.ts +1 -1
  174. package/lib/typescript/src/features/errors.d.ts +3 -3
  175. package/lib/typescript/src/features/favorites.d.ts +1 -1
  176. package/lib/typescript/src/features/gate.d.ts +18 -2
  177. package/lib/typescript/src/features/gate.d.ts.map +1 -1
  178. package/lib/typescript/src/features/metadata.d.ts +20 -3
  179. package/lib/typescript/src/features/metadata.d.ts.map +1 -1
  180. package/lib/typescript/src/features/network.d.ts +1 -1
  181. package/lib/typescript/src/features/nowPlaying.d.ts +1 -1
  182. package/lib/typescript/src/features/output.d.ts +1 -1
  183. package/lib/typescript/src/features/playback/playWhenReady.d.ts +1 -1
  184. package/lib/typescript/src/features/playback/playing.d.ts +1 -1
  185. package/lib/typescript/src/features/playback/progress.d.ts +1 -1
  186. package/lib/typescript/src/features/playback/state.d.ts +1 -1
  187. package/lib/typescript/src/features/playback/volume.d.ts +1 -1
  188. package/lib/typescript/src/features/player/options.d.ts +87 -37
  189. package/lib/typescript/src/features/player/options.d.ts.map +1 -1
  190. package/lib/typescript/src/features/player/setup.d.ts +14 -4
  191. package/lib/typescript/src/features/player/setup.d.ts.map +1 -1
  192. package/lib/typescript/src/features/player/validateOptions.d.ts +9 -0
  193. package/lib/typescript/src/features/player/validateOptions.d.ts.map +1 -0
  194. package/lib/typescript/src/features/queue/activeTrack.d.ts +1 -1
  195. package/lib/typescript/src/features/queue/queue.d.ts +2 -2
  196. package/lib/typescript/src/features/queue/repeatMode.d.ts +1 -1
  197. package/lib/typescript/src/features/queue/shuffle.d.ts +1 -1
  198. package/lib/typescript/src/features/remoteControls.d.ts +23 -22
  199. package/lib/typescript/src/features/remoteControls.d.ts.map +1 -1
  200. package/lib/typescript/src/features/sleepTimer.d.ts +1 -1
  201. package/lib/typescript/src/features/sleepTimer.d.ts.map +1 -1
  202. package/lib/typescript/src/test-utils/reactNativeStub.d.ts +36 -0
  203. package/lib/typescript/src/test-utils/reactNativeStub.d.ts.map +1 -0
  204. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts +8 -4
  205. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -1
  206. package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +1 -1
  207. package/nitrogen/generated/android/c++/JAndroidOptions.hpp +10 -10
  208. package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +5 -5
  209. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +11 -11
  210. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.hpp +1 -1
  211. package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +5 -5
  212. package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +5 -5
  213. package/nitrogen/generated/android/c++/JNitroAndroidUpdateOptions.hpp +10 -10
  214. package/nitrogen/generated/android/c++/JOptions.hpp +5 -5
  215. package/nitrogen/generated/android/c++/{JNotificationButton.hpp → JRemoteButton.hpp} +19 -19
  216. package/nitrogen/generated/android/c++/JRemoteButtonLayout.hpp +86 -0
  217. package/nitrogen/generated/android/c++/JVariant_NullType_RemoteButtonLayout.cpp +26 -0
  218. package/nitrogen/generated/android/c++/JVariant_NullType_RemoteButtonLayout.hpp +75 -0
  219. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidOptions.kt +3 -3
  220. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HybridAudioBrowserSpec.kt +1 -1
  221. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroAndroidUpdateOptions.kt +3 -3
  222. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{NotificationButton.kt → RemoteButton.kt} +3 -3
  223. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteButtonLayout.kt +44 -0
  224. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Variant_NullType_NotificationButtonLayout.kt → Variant_NullType_RemoteButtonLayout.kt} +9 -9
  225. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +36 -51
  226. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +6 -6
  227. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +8 -8
  228. package/nitrogen/generated/ios/swift/AndroidOptions.swift +12 -12
  229. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec.swift +1 -1
  230. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec_cxx.swift +2 -2
  231. package/nitrogen/generated/ios/swift/NitroAndroidUpdateOptions.swift +12 -12
  232. package/nitrogen/generated/ios/swift/{NotificationButton.swift → RemoteButton.swift} +6 -6
  233. package/nitrogen/generated/ios/swift/RemoteButtonLayout.swift +57 -0
  234. package/nitrogen/generated/ios/swift/{Variant_NullType_NotificationButtonLayout.swift → Variant_NullType_RemoteButtonLayout.swift} +3 -3
  235. package/nitrogen/generated/shared/c++/AndroidOptions.hpp +8 -8
  236. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.cpp +1 -1
  237. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.hpp +1 -1
  238. package/nitrogen/generated/shared/c++/NitroAndroidUpdateOptions.hpp +8 -8
  239. package/nitrogen/generated/shared/c++/{NotificationButton.hpp → RemoteButton.hpp} +19 -19
  240. package/nitrogen/generated/shared/c++/RemoteButtonLayout.hpp +94 -0
  241. package/package.json +12 -4
  242. package/src/AudioBrowser.ts +1 -1
  243. package/src/CLAUDE.md +52 -0
  244. package/src/features/battery.test.ts +79 -0
  245. package/src/features/browser.ts +1 -1
  246. package/src/features/carConnection.ts +1 -1
  247. package/src/features/equalizer.ts +1 -1
  248. package/src/features/errors.ts +3 -3
  249. package/src/features/favorites.ts +1 -1
  250. package/src/features/gate.ts +16 -1
  251. package/src/features/hook-wiring.test.ts +254 -0
  252. package/src/features/metadata.ts +20 -3
  253. package/src/features/network.ts +1 -1
  254. package/src/features/nowPlaying.ts +1 -1
  255. package/src/features/output.ts +1 -1
  256. package/src/features/playback/playWhenReady.ts +1 -1
  257. package/src/features/playback/playing.ts +1 -1
  258. package/src/features/playback/progress.test.ts +169 -0
  259. package/src/features/playback/progress.ts +1 -1
  260. package/src/features/playback/state.ts +1 -1
  261. package/src/features/playback/trackPlaybackTime.test.ts +16 -6
  262. package/src/features/playback/trackPlaybackTime.ts +0 -5
  263. package/src/features/playback/volume.ts +1 -1
  264. package/src/features/player/options.ts +99 -57
  265. package/src/features/player/setup.test.ts +12 -4
  266. package/src/features/player/setup.ts +19 -9
  267. package/src/features/player/validateOptions.ts +19 -0
  268. package/src/features/queue/activeTrack.ts +1 -1
  269. package/src/features/queue/queue.ts +2 -2
  270. package/src/features/queue/repeatMode.ts +1 -1
  271. package/src/features/queue/shuffle.ts +1 -1
  272. package/src/features/remoteControls.ts +13 -92
  273. package/src/features/sleepTimer.test.ts +172 -0
  274. package/src/features/sleepTimer.ts +9 -1
  275. package/src/nitro-stub-drift.test.ts +237 -0
  276. package/src/public-surface.test.ts +107 -0
  277. package/src/specs/audio-browser.nitro.ts +1 -1
  278. package/src/test-utils/reactNativeStub.ts +60 -0
  279. package/src/utils/LazyNativeEmitter.ts +9 -6
  280. package/src/utils/useDebug.test.ts +182 -0
  281. package/src/utils/useNativeUpdatedValue.test.ts +103 -0
  282. package/src/web/NativeAudioBrowser.ts +1 -1
  283. package/src/web/browser/BrowserManager.ts +1 -1
  284. package/ios/Model/MediaURL.swift +0 -67
  285. package/nitrogen/generated/android/c++/JNotificationButtonLayout.hpp +0 -94
  286. package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.cpp +0 -26
  287. package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.hpp +0 -75
  288. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButtonLayout.kt +0 -50
  289. package/nitrogen/generated/ios/swift/NotificationButtonLayout.swift +0 -92
  290. package/nitrogen/generated/shared/c++/NotificationButtonLayout.hpp +0 -102
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.setupPlayer = setupPlayer;
7
7
  var _native = require("../../native");
8
- var _options = require("./options");
8
+ var _validateOptions = require("./validateOptions");
9
9
  // MARK: - Types
10
10
 
11
11
  /**
@@ -223,7 +223,7 @@ var _options = require("./options");
223
223
 
224
224
  /**
225
225
  * Android setup options: the engine-construction fields plus the Android runtime options
226
- * ({@link AndroidUpdateOptions} — `notificationButtons`, `skipSilence`, …), all expressible at
226
+ * ({@link AndroidUpdateOptions} — `remoteButtonLayout`, `skipSilence`, …), all expressible at
227
227
  * launch. The consumer never has to know which is which; `setupPlayer` routes each field to
228
228
  * where it's applied.
229
229
  */
@@ -290,7 +290,7 @@ function wrapNowPlayingFormatter(formatter) {
290
290
 
291
291
  /**
292
292
  * The object's entries whose values aren't `undefined`. `null` stays: it's meaningful on some
293
- * fields (`progressUpdateEventInterval: null` disables progress events, `notificationButtons:
293
+ * fields (`progressUpdateEventInterval: null` disables progress events, `remoteButtonLayout:
294
294
  * null` empties the layout), so only `undefined` means "not provided".
295
295
  */
296
296
  function definedFields(obj) {
@@ -311,7 +311,7 @@ function nonEmpty(key, value) {
311
311
  /**
312
312
  * Initializes the player with the specified options — the full launch description in one
313
313
  * declarative, atomic call. Runtime options (`capabilities`, jump intervals,
314
- * `notificationButtons`, …) and the initial `playWhenReady` / `repeatMode` are applied
314
+ * `remoteButtonLayout`, …) and the initial `playWhenReady` / `repeatMode` are applied
315
315
  * natively as part of setup itself, so there is no setup-then-command ordering for consumers
316
316
  * to know about, and no window where the player exists without its options.
317
317
  *
@@ -328,7 +328,14 @@ function nonEmpty(key, value) {
328
328
  * playWhenReady: true,
329
329
  * repeatMode: 'queue',
330
330
  * capabilities: { favorite: true },
331
- * android: { audioContentType: 'music', notificationButtons: { overflow: ['favorite'] } },
331
+ * android: {
332
+ * audioContentType: 'music',
333
+ * remoteButtonLayout: {
334
+ * back: 'jump-backward',
335
+ * forward: 'jump-forward',
336
+ * overflow: ['favorite']
337
+ * }
338
+ * },
332
339
  * ios: { category: 'playback' }
333
340
  * })
334
341
  * ```
@@ -351,7 +358,7 @@ async function setupPlayer(options = {}) {
351
358
  const {
352
359
  appKilledPlaybackBehavior,
353
360
  skipSilence,
354
- notificationButtons,
361
+ remoteButtonLayout,
355
362
  ...androidSetup
356
363
  } = android;
357
364
  const {
@@ -365,7 +372,7 @@ async function setupPlayer(options = {}) {
365
372
  carPlayUpNextButton,
366
373
  carPlayNowPlayingButtons
367
374
  });
368
- (0, _options.validateIOSUpdateOptions)(iosUpdate);
375
+ (0, _validateOptions.validateIOSUpdateOptions)(iosUpdate);
369
376
  const updates = definedFields({
370
377
  capabilities,
371
378
  forwardJumpInterval,
@@ -374,7 +381,7 @@ async function setupPlayer(options = {}) {
374
381
  ...nonEmpty('android', definedFields({
375
382
  appKilledPlaybackBehavior,
376
383
  skipSilence,
377
- notificationButtons
384
+ remoteButtonLayout
378
385
  })),
379
386
  ...nonEmpty('ios', iosUpdate)
380
387
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_native","require","_options","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","notificationButtons","androidSetup","playbackRates","carPlayUpNextButton","carPlayNowPlayingButtons","iosSetup","iosUpdate","validateIOSUpdateOptions","updates","nativeBrowser"],"sourceRoot":"../../../../src","sources":["features/player/setup.ts"],"mappings":";;;;;;AAYA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,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;AAC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","ignoreList":[]}
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;;AAyBA;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,21 @@
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
+ * Kept out of `options.ts`, which the barrel re-exports — see
13
+ * public-surface.test.ts.
14
+ */
15
+ function validateIOSUpdateOptions(ios) {
16
+ const buttons = ios?.carPlayNowPlayingButtons;
17
+ if (buttons && buttons.length > MAX_CARPLAY_NOW_PLAYING_BUTTONS) {
18
+ console.warn(`[react-native-audio-browser] ${buttons.length} CarPlay now-playing ` + `buttons configured; CarPlay shows at most ${MAX_CARPLAY_NOW_PLAYING_BUTTONS}.`);
19
+ }
20
+ }
21
+ //# 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;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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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* functions below.
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 functions when you want to LISTEN to remote control events without overriding
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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 Cleanup function to unsubscribe
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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO,SAASE,gBAAgBA,CAACC,QAAkC,EAAE;EACnEC,qBAAa,CAACF,gBAAgB,GAAGC,QAAQ;AAC3C;;AAEA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAACF,QAAkC,EAAE;EACpEC,qBAAa,CAACC,iBAAiB,GAAGF,QAAQ;AAC5C;;AAEA;AACA;AACA;AACA;AACO,SAASG,gBAAgBA,CAACH,QAAkC,EAAE;EACnEC,qBAAa,CAACE,gBAAgB,GAAGH,QAAQ;AAC3C;;AAEA;AACA;AACA;AACA;AACO,SAASI,oBAAoBA,CAACJ,QAAkC,EAAE;EACvEC,qBAAa,CAACG,oBAAoB,GAAGJ,QAAQ;AAC/C;;AAEA;AACA;AACA;AACA;AACO,SAASK,gBAAgBA,CAACL,QAAkC,EAAE;EACnEC,qBAAa,CAACI,gBAAgB,GAAGL,QAAQ;AAC3C;;AAEA;AACA;AACA;AACA;AACO,SAASM,gBAAgBA,CAC9BN,QAAwD,EACxD;EACAC,qBAAa,CAACK,gBAAgB,GAAGN,QAAQ;AAC3C;;AAEA;AACA;AACA;AACA;AACO,SAASO,uBAAuBA,CACrCP,QAA+D,EAC/D;EACAC,qBAAa,CAACM,uBAAuB,GAAGP,QAAQ;AAClD;;AAEA;AACA;AACA;AACA;AACO,SAASQ,wBAAwBA,CACtCR,QAAgE,EAChE;EACAC,qBAAa,CAACO,wBAAwB,GAAGR,QAAQ;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMS,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAC/BE,oCAAiB,CAACC,UAAU,CACzBC,EAAE,IAAMZ,qBAAa,CAACQ,oBAAoB,GAAGI,EAChD,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACO,MAAMC,mBAAmB,GAAAJ,OAAA,CAAAI,mBAAA,GAC9BH,oCAAiB,CAACC,UAAU,CACzBC,EAAE,IAAMZ,qBAAa,CAACa,mBAAmB,GAAGD,EAC/C,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACO,MAAME,YAAY,GAAAL,OAAA,CAAAK,YAAA,GAAGJ,oCAAiB,CAACC,UAAU,CACrDC,EAAE,IAAMZ,qBAAa,CAACc,YAAY,GAAGF,EACxC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMG,aAAa,GAAAN,OAAA,CAAAM,aAAA,GAAGL,oCAAiB,CAACC,UAAU,CACtDC,EAAE,IAAMZ,qBAAa,CAACe,aAAa,GAAGH,EACzC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMI,YAAY,GAAAP,OAAA,CAAAO,YAAA,GAAGN,oCAAiB,CAACC,UAAU,CACrDC,EAAE,IAAMZ,qBAAa,CAACgB,YAAY,GAAGJ,EACxC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMK,cAAc,GAAAR,OAAA,CAAAQ,cAAA,GAAGP,oCAAiB,CAACC,UAAU,CACvDC,EAAE,IAAMZ,qBAAa,CAACiB,cAAc,GAAGL,EAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMM,kBAAkB,GAAAT,OAAA,CAAAS,kBAAA,GAC7BR,oCAAiB,CAACC,UAAU,CACzBC,EAAE,IAAMZ,qBAAa,CAACkB,kBAAkB,GAAGN,EAC9C,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACO,MAAMO,gBAAgB,GAAAV,OAAA,CAAAU,gBAAA,GAAGT,oCAAiB,CAACC,UAAU,CACzDC,EAAE,IAAMZ,qBAAa,CAACmB,gBAAgB,GAAGP,EAC5C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMQ,YAAY,GAAAX,OAAA,CAAAW,YAAA,GAAGV,oCAAiB,CAACC,UAAU,CACrDC,EAAE,IAAMZ,qBAAa,CAACoB,YAAY,GAAGR,EACxC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMS,YAAY,GAAAZ,OAAA,CAAAY,YAAA,GAAGX,oCAAiB,CAACC,UAAU,CACrDC,EAAE,IAAMZ,qBAAa,CAACqB,YAAY,GAAGT,EACxC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMU,YAAY,GAAAb,OAAA,CAAAa,YAAA,GAAGZ,oCAAiB,CAACC,UAAU,CACrDC,EAAE,IAAMZ,qBAAa,CAACsB,YAAY,GAAGV,EACxC,CAAC","ignoreList":[]}
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 Cleanup function to unsubscribe
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
 
@@ -87,6 +87,13 @@ const onSleepTimerChanged = exports.onSleepTimerChanged = _NativeUpdatedValue.Na
87
87
  function useSleepTimerActive() {
88
88
  const [isActive, setIsActive] = (0, _react.useState)(() => getSleepTimer() !== null);
89
89
  (0, _react.useEffect)(() => {
90
+ // Re-sync before subscribing: a change between the initial read above and this effect would
91
+ // otherwise be missed for good. `undefined` means nothing has fired yet, whereas `null` is a
92
+ // real value — the timer being cleared — so it has to re-sync too.
93
+ const {
94
+ lastValue
95
+ } = onSleepTimerChanged;
96
+ if (lastValue !== undefined) setIsActive(lastValue !== null);
90
97
  return onSleepTimerChanged.addListener(timer => {
91
98
  setIsActive(timer !== null);
92
99
  });
@@ -113,6 +120,11 @@ function useSleepTimer(params) {
113
120
  });
114
121
  const time = state && 'time' in state ? state.time : undefined;
115
122
  (0, _react.useEffect)(() => {
123
+ // Re-sync before subscribing — see useSleepTimerActive.
124
+ const {
125
+ lastValue
126
+ } = onSleepTimerChanged;
127
+ if (lastValue !== undefined) setState(addSecondsLeft(lastValue));
116
128
  return onSleepTimerChanged.addListener(event => {
117
129
  setState(addSecondsLeft(event));
118
130
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_native","_NativeUpdatedValue","getSleepTimer","nativeBrowser","setSleepTimer","seconds","options","fadeDuration","setSleepTimerToEndOfTrack","clearSleepTimer","onSleepTimerChanged","exports","NativeUpdatedValue","emitterize","cb","useSleepTimerActive","isActive","setIsActive","useState","useEffect","addListener","timer","useSleepTimer","params","updateInterval","inactive","state","setState","timerState","addSecondsLeft","time","undefined","event","update","sleepTimer","result","secondsLeft","clear","initialTimeoutId","setTimeout","intervalId","setInterval","clearTimeout","clearInterval","Math","max","round","Date","now"],"sourceRoot":"../../../src","sources":["features/sleepTimer.ts"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAEA;;AAEA;AACA;AACA;;AAMA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;;AAKA;;AAEA;AACA;AACA;AACO,SAASG,aAAaA,CAAA,EAAe;EAC1C,OAAOC,qBAAa,CAACD,aAAa,CAAC,CAAC;AACtC;;AAEA;AACA;AACA;;AAaA;AACA;AACA;AACA;AACA;AACO,SAASE,aAAaA,CAC3BC,OAAe,EACfC,OAA2B,EACrB;EACNH,qBAAa,CAACC,aAAa,CAACC,OAAO,EAAEC,OAAO,EAAEC,YAAY,CAAC;AAC7D;;AAEA;AACA;AACA;AACO,SAASC,yBAAyBA,CAAA,EAAS;EAChDL,qBAAa,CAACK,yBAAyB,CAAC,CAAC;AAC3C;;AAEA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAAA,EAAY;EACzC,OAAON,qBAAa,CAACM,eAAe,CAAC,CAAC;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAGE,sCAAkB,CAACC,UAAU,CAC7DC,EAAE,IAAMX,qBAAa,CAACO,mBAAmB,GAAGI,EAC/C,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAAA,EAAY;EAC7C,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMhB,aAAa,CAAC,CAAC,KAAK,IAAI,CAAC;EAExE,IAAAiB,gBAAS,EAAC,MAAM;IACd,OAAOT,mBAAmB,CAACU,WAAW,CAAEC,KAAK,IAAK;MAChDJ,WAAW,CAACI,KAAK,KAAK,IAAI,CAAC;IAC7B,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOL,QAAQ;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,aAAaA,CAACC,MAG7B,EAA+B;EAC9B,MAAMC,cAAc,GAAGD,MAAM,EAAEC,cAAc,IAAI,IAAI;EACrD,MAAMC,QAAQ,GAAGF,MAAM,EAAEE,QAAQ,IAAI,KAAK;EAE1C,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAT,eAAQ,EAA8B,MAAM;IACpE,MAAMU,UAAU,GAAG1B,aAAa,CAAC,CAAC;IAClC,OAAO2B,cAAc,CAACD,UAAU,CAAC;EACnC,CAAC,CAAC;EAEF,MAAME,IAAI,GAAGJ,KAAK,IAAI,MAAM,IAAIA,KAAK,GAAGA,KAAK,CAACI,IAAI,GAAGC,SAAS;EAE9D,IAAAZ,gBAAS,EAAC,MAAM;IACd,OAAOT,mBAAmB,CAACU,WAAW,CAAEY,KAAK,IAAK;MAChDL,QAAQ,CAACE,cAAc,CAACG,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAb,gBAAS,EAAC,MAAM;IACd,IAAIM,QAAQ,IAAIK,IAAI,KAAKC,SAAS,EAAE;IAEpC,MAAME,MAAM,GAAGA,CAAA,KAAM;MACnBN,QAAQ,CAAEO,UAAU,IAAK;QACvB,MAAMC,MAAM,GAAGN,cAAc,CAC3BK,UAAU,GACN,MAAM,IAAIA,UAAU,GAClB;UAAEJ,IAAI,EAAEI,UAAU,CAACJ;QAAK,CAAC,GACzBI,UAAU,GACZ,IACN,CAAC;QACD,IAAIC,MAAM,IAAI,aAAa,IAAIA,MAAM,IAAIA,MAAM,CAACC,WAAW,KAAK,CAAC,EAAE;UACjEC,KAAK,CAAC,CAAC;QACT;QACA,OAAOF,MAAM;MACf,CAAC,CAAC;IACJ,CAAC;;IAED;IACA;IACA,MAAMG,gBAAgB,GAAGC,UAAU,CACjC,MAAM;MACJN,MAAM,CAAC,CAAC;MACRO,UAAU,GAAGC,WAAW,CAACR,MAAM,EAAET,cAAc,CAAC;IAClD,CAAC,EACDA,cAAc,GAAIM,IAAI,GAAGN,cAC3B,CAAC;IACD,IAAIgB,UAAsD;IAC1D,MAAMH,KAAK,GAAGA,CAAA,KAAM;MAClBK,YAAY,CAACJ,gBAAgB,CAAC;MAC9B,IAAIE,UAAU,EAAEG,aAAa,CAACH,UAAU,CAAC;IAC3C,CAAC;IACDP,MAAM,CAAC,CAAC;IACR,OAAOI,KAAK;EACd,CAAC,EAAE,CAACZ,QAAQ,EAAEK,IAAI,EAAEN,cAAc,CAAC,CAAC;EAEpC,OAAOE,KAAK;AACd;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAKA,SAASG,cAAcA,CAACH,KAAiB,EAA+B;EACtE,IAAI,CAACA,KAAK,EAAE,OAAOK,SAAS;EAC5B,IAAI,MAAM,IAAIL,KAAK,EAAE;IACnB,OAAO;MACL,GAAGA,KAAK;MACRU,WAAW,EAAEQ,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAAC,CAACpB,KAAK,CAACI,IAAI,GAAGiB,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IACvE,CAAC;EACH;EACA,OAAOtB,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_native","_NativeUpdatedValue","getSleepTimer","nativeBrowser","setSleepTimer","seconds","options","fadeDuration","setSleepTimerToEndOfTrack","clearSleepTimer","onSleepTimerChanged","exports","NativeUpdatedValue","emitterize","cb","useSleepTimerActive","isActive","setIsActive","useState","useEffect","lastValue","undefined","addListener","timer","useSleepTimer","params","updateInterval","inactive","state","setState","timerState","addSecondsLeft","time","event","update","sleepTimer","result","secondsLeft","clear","initialTimeoutId","setTimeout","intervalId","setInterval","clearTimeout","clearInterval","Math","max","round","Date","now"],"sourceRoot":"../../../src","sources":["features/sleepTimer.ts"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAEA;;AAEA;AACA;AACA;;AAMA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;;AAKA;;AAEA;AACA;AACA;AACO,SAASG,aAAaA,CAAA,EAAe;EAC1C,OAAOC,qBAAa,CAACD,aAAa,CAAC,CAAC;AACtC;;AAEA;AACA;AACA;;AAaA;AACA;AACA;AACA;AACA;AACO,SAASE,aAAaA,CAC3BC,OAAe,EACfC,OAA2B,EACrB;EACNH,qBAAa,CAACC,aAAa,CAACC,OAAO,EAAEC,OAAO,EAAEC,YAAY,CAAC;AAC7D;;AAEA;AACA;AACA;AACO,SAASC,yBAAyBA,CAAA,EAAS;EAChDL,qBAAa,CAACK,yBAAyB,CAAC,CAAC;AAC3C;;AAEA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAAA,EAAY;EACzC,OAAON,qBAAa,CAACM,eAAe,CAAC,CAAC;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAGE,sCAAkB,CAACC,UAAU,CAC7DC,EAAE,IAAMX,qBAAa,CAACO,mBAAmB,GAAGI,EAC/C,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAAA,EAAY;EAC7C,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMhB,aAAa,CAAC,CAAC,KAAK,IAAI,CAAC;EAExE,IAAAiB,gBAAS,EAAC,MAAM;IACd;IACA;IACA;IACA,MAAM;MAAEC;IAAU,CAAC,GAAGV,mBAAmB;IACzC,IAAIU,SAAS,KAAKC,SAAS,EAAEJ,WAAW,CAACG,SAAS,KAAK,IAAI,CAAC;IAC5D,OAAOV,mBAAmB,CAACY,WAAW,CAAEC,KAAK,IAAK;MAChDN,WAAW,CAACM,KAAK,KAAK,IAAI,CAAC;IAC7B,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOP,QAAQ;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASQ,aAAaA,CAACC,MAG7B,EAA+B;EAC9B,MAAMC,cAAc,GAAGD,MAAM,EAAEC,cAAc,IAAI,IAAI;EACrD,MAAMC,QAAQ,GAAGF,MAAM,EAAEE,QAAQ,IAAI,KAAK;EAE1C,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAX,eAAQ,EAA8B,MAAM;IACpE,MAAMY,UAAU,GAAG5B,aAAa,CAAC,CAAC;IAClC,OAAO6B,cAAc,CAACD,UAAU,CAAC;EACnC,CAAC,CAAC;EAEF,MAAME,IAAI,GAAGJ,KAAK,IAAI,MAAM,IAAIA,KAAK,GAAGA,KAAK,CAACI,IAAI,GAAGX,SAAS;EAE9D,IAAAF,gBAAS,EAAC,MAAM;IACd;IACA,MAAM;MAAEC;IAAU,CAAC,GAAGV,mBAAmB;IACzC,IAAIU,SAAS,KAAKC,SAAS,EAAEQ,QAAQ,CAACE,cAAc,CAACX,SAAS,CAAC,CAAC;IAChE,OAAOV,mBAAmB,CAACY,WAAW,CAAEW,KAAK,IAAK;MAChDJ,QAAQ,CAACE,cAAc,CAACE,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAd,gBAAS,EAAC,MAAM;IACd,IAAIQ,QAAQ,IAAIK,IAAI,KAAKX,SAAS,EAAE;IAEpC,MAAMa,MAAM,GAAGA,CAAA,KAAM;MACnBL,QAAQ,CAAEM,UAAU,IAAK;QACvB,MAAMC,MAAM,GAAGL,cAAc,CAC3BI,UAAU,GACN,MAAM,IAAIA,UAAU,GAClB;UAAEH,IAAI,EAAEG,UAAU,CAACH;QAAK,CAAC,GACzBG,UAAU,GACZ,IACN,CAAC;QACD,IAAIC,MAAM,IAAI,aAAa,IAAIA,MAAM,IAAIA,MAAM,CAACC,WAAW,KAAK,CAAC,EAAE;UACjEC,KAAK,CAAC,CAAC;QACT;QACA,OAAOF,MAAM;MACf,CAAC,CAAC;IACJ,CAAC;;IAED;IACA;IACA,MAAMG,gBAAgB,GAAGC,UAAU,CACjC,MAAM;MACJN,MAAM,CAAC,CAAC;MACRO,UAAU,GAAGC,WAAW,CAACR,MAAM,EAAER,cAAc,CAAC;IAClD,CAAC,EACDA,cAAc,GAAIM,IAAI,GAAGN,cAC3B,CAAC;IACD,IAAIe,UAAsD;IAC1D,MAAMH,KAAK,GAAGA,CAAA,KAAM;MAClBK,YAAY,CAACJ,gBAAgB,CAAC;MAC9B,IAAIE,UAAU,EAAEG,aAAa,CAACH,UAAU,CAAC;IAC3C,CAAC;IACDP,MAAM,CAAC,CAAC;IACR,OAAOI,KAAK;EACd,CAAC,EAAE,CAACX,QAAQ,EAAEK,IAAI,EAAEN,cAAc,CAAC,CAAC;EAEpC,OAAOE,KAAK;AACd;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAKA,SAASG,cAAcA,CAACH,KAAiB,EAA+B;EACtE,IAAI,CAACA,KAAK,EAAE,OAAOP,SAAS;EAC5B,IAAI,MAAM,IAAIO,KAAK,EAAE;IACnB,OAAO;MACL,GAAGA,KAAK;MACRS,WAAW,EAAEQ,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAAC,CAACnB,KAAK,CAACI,IAAI,GAAGgB,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IACvE,CAAC;EACH;EACA,OAAOrB,KAAK;AACd","ignoreList":[]}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Image = exports.AppState = void 0;
7
+ exports.appStateListenerCount = appStateListenerCount;
8
+ exports.resetAppState = resetAppState;
9
+ exports.setAppState = setAppState;
10
+ /**
11
+ * Stands in for `react-native` under vitest, via the alias in `vitest.config.ts`.
12
+ *
13
+ * Not a convenience: `react-native/index.js` is Flow-typed (`import typeof ...`)
14
+ * and Rollup cannot parse it, so any test that reaches a module importing from
15
+ * `'react-native'` fails to load at all. Jest consumers get this from
16
+ * `@react-native/jest-preset`; vitest has no equivalent.
17
+ *
18
+ * Keep it to the surface the library actually touches. Two symbols so far —
19
+ * `AppState` (usePolledProgress) and `Image.resolveAssetSource`. Anything a test
20
+ * needs to drive should get an explicit control here rather than a cast at the
21
+ * call site.
22
+ *
23
+ * @internal — never imported by production code, only aliased in by the runner.
24
+ */
25
+
26
+ const changeListeners = new Set();
27
+ const AppState = exports.AppState = {
28
+ currentState: 'active',
29
+ // `type` is widened to string so the guard stays live: real AppState also
30
+ // emits 'memoryWarning' and 'focus', and silently treating one of those as a
31
+ // 'change' subscription would be a confusing way to find out this stub is thin.
32
+ addEventListener(type, listener) {
33
+ if (type !== 'change') throw new Error(`AppState stub: unhandled "${type}"`);
34
+ changeListeners.add(listener);
35
+ return {
36
+ remove: () => changeListeners.delete(listener)
37
+ };
38
+ }
39
+ };
40
+
41
+ /** Move the app to the foreground or background and notify subscribers. */
42
+ function setAppState(status) {
43
+ AppState.currentState = status;
44
+ // Deleting from a Set mid-iteration is safe, so a listener that removes itself
45
+ // during the callback needs no defensive copy.
46
+ for (const listener of changeListeners) listener(status);
47
+ }
48
+
49
+ /**
50
+ * Drop every subscription and return to the foreground. Call between tests —
51
+ * the stub is a module singleton, so state outlives an individual test.
52
+ */
53
+ function resetAppState() {
54
+ changeListeners.clear();
55
+ AppState.currentState = 'active';
56
+ }
57
+
58
+ /** Number of live `change` subscriptions, for asserting cleanup. */
59
+ function appStateListenerCount() {
60
+ return changeListeners.size;
61
+ }
62
+ const Image = exports.Image = {
63
+ resolveAssetSource: source => source
64
+ };
65
+ //# sourceMappingURL=reactNativeStub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["changeListeners","Set","AppState","exports","currentState","addEventListener","type","listener","Error","add","remove","delete","setAppState","status","resetAppState","clear","appStateListenerCount","size","Image","resolveAssetSource","source"],"sourceRoot":"../../../src","sources":["test-utils/reactNativeStub.ts"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMA,eAAe,GAAG,IAAIC,GAAG,CAAiB,CAAC;AAE1C,MAAMC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACtBE,YAAY,EAAE,QAA0B;EAExC;EACA;EACA;EACAC,gBAAgBA,CAACC,IAAY,EAAEC,QAAwB,EAAE;IACvD,IAAID,IAAI,KAAK,QAAQ,EAAE,MAAM,IAAIE,KAAK,CAAC,6BAA6BF,IAAI,GAAG,CAAC;IAC5EN,eAAe,CAACS,GAAG,CAACF,QAAQ,CAAC;IAC7B,OAAO;MAAEG,MAAM,EAAEA,CAAA,KAAMV,eAAe,CAACW,MAAM,CAACJ,QAAQ;IAAE,CAAC;EAC3D;AACF,CAAC;;AAED;AACO,SAASK,WAAWA,CAACC,MAAsB,EAAQ;EACxDX,QAAQ,CAACE,YAAY,GAAGS,MAAM;EAC9B;EACA;EACA,KAAK,MAAMN,QAAQ,IAAIP,eAAe,EAAEO,QAAQ,CAACM,MAAM,CAAC;AAC1D;;AAEA;AACA;AACA;AACA;AACO,SAASC,aAAaA,CAAA,EAAS;EACpCd,eAAe,CAACe,KAAK,CAAC,CAAC;EACvBb,QAAQ,CAACE,YAAY,GAAG,QAAQ;AAClC;;AAEA;AACO,SAASY,qBAAqBA,CAAA,EAAW;EAC9C,OAAOhB,eAAe,CAACiB,IAAI;AAC7B;AAEO,MAAMC,KAAK,GAAAf,OAAA,CAAAe,KAAA,GAAG;EACnBC,kBAAkB,EAAGC,MAAe,IAAKA;AAC3C,CAAC","ignoreList":[]}
@@ -16,9 +16,11 @@ exports.LazyNativeEmitter = void 0;
16
16
  *
17
17
  * @example
18
18
  * ```typescript
19
- * export const onRemotePlay = LazyEmitter.emitterize<void>(
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 subscription function for a native callback.
47
+ * Creates a lazy emitter for a native callback.
48
+ *
46
49
  * @param setter - Function that sets the native callback property
47
- * @returns A subscription function that returns an unsubscribe function
50
+ * @returns The emitter instance — subscribe with `addListener`, which returns
51
+ * an unsubscribe function
48
52
  */
49
53
  static emitterize(setter) {
50
- const emitter = new LazyNativeEmitter(setter);
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","emitter","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;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;EACE,OAAOG,UAAUA,CACfV,MAA6C,EACN;IACvC,MAAMW,OAAO,GAAG,IAAIb,iBAAiB,CAACE,MAAM,CAAC;IAC7C,OAAQO,QAAqB,IAAKI,OAAO,CAACL,WAAW,CAACC,QAAQ,CAAC;EACjE;AACF;AAACK,OAAA,CAAAd,iBAAA,GAAAA,iBAAA","ignoreList":[]}
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":[]}
@@ -380,7 +380,7 @@ class NativeAudioBrowser extends _TrackPlayer.QueuePlayer {
380
380
  this.play();
381
381
  });
382
382
  }
383
- async onSearch(query) {
383
+ async search(query) {
384
384
  // Wrap query string in SearchParams (matches Android's search(query: String) overload)
385
385
  return this.searchManager.search({
386
386
  query,