react-native-audio-browser 0.2.0-next.13 → 0.2.0-next.14
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/src/main/java/com/audiobrowser/AudioBrowser.kt +3 -0
- package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +44 -0
- package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +0 -2
- package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +1 -1
- package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +21 -22
- package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +8 -5
- package/android/src/main/res/values/strings.xml +37 -2
- package/android/src/test/java/com/audiobrowser/TestFixtures.kt +1 -2
- package/android/src/test/java/com/audiobrowser/browser/BrowserManagerLayerResolutionTest.kt +9 -0
- package/android/src/test/java/com/audiobrowser/util/MediaExtrasBuilderTest.kt +2 -1
- package/ios/Browser/JsonModels.swift +0 -5
- package/ios/Extension/Section+Copying.swift +1 -3
- package/ios/HybridAudioBrowser.swift +2 -1
- package/ios/Model/NitroTypeStubs.swift +0 -1
- package/ios/Tests/ResolvedTrackCopyingTests.swift +2 -2
- package/lib/commonjs/features/browser-config.js +1 -0
- package/lib/commonjs/features/browser-config.js.map +1 -1
- package/lib/module/features/browser-config.js +1 -0
- package/lib/module/features/browser-config.js.map +1 -1
- package/lib/typescript/src/features/browser-config.d.ts.map +1 -1
- package/lib/typescript/src/types/browser-native.d.ts +2 -1
- package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
- package/lib/typescript/src/types/browser-nodes.d.ts +14 -9
- package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
- package/lib/typescript/src/types/browser.d.ts +36 -0
- package/lib/typescript/src/types/browser.d.ts.map +1 -1
- package/nitrogen/generated/android/AudioBrowserOnLoad.cpp +2 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__string__.hpp +102 -0
- package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +1 -0
- package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +14 -1
- package/nitrogen/generated/android/c++/JSection.hpp +1 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__string__.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +7 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Section.kt +2 -5
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.cpp +9 -0
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +50 -0
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__string__.swift +54 -0
- package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +48 -1
- package/nitrogen/generated/ios/swift/Section.swift +1 -19
- package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +6 -2
- package/nitrogen/generated/shared/c++/Section.hpp +1 -5
- package/package.json +1 -1
- package/src/features/browser-config.ts +1 -0
- package/src/types/browser-native.ts +5 -1
- package/src/types/browser-nodes.ts +14 -9
- package/src/types/browser.ts +38 -0
- package/website/guide/android-auto.md +1 -1
- package/website/guide/browser.md +19 -19
|
@@ -203,6 +203,7 @@ class AudioBrowser : HybridAudioBrowserSpec(), ServiceConnection {
|
|
|
203
203
|
singleTrack = null,
|
|
204
204
|
handleTrackLoad = null,
|
|
205
205
|
androidControllerOfflineError = null,
|
|
206
|
+
viewMoreTitle = null,
|
|
206
207
|
carPlayLoadingTitle = null,
|
|
207
208
|
resolveAlbumPath = null,
|
|
208
209
|
formatNavigationError = null,
|
|
@@ -369,6 +370,7 @@ class AudioBrowser : HybridAudioBrowserSpec(), ServiceConnection {
|
|
|
369
370
|
routes = _configuration.routes,
|
|
370
371
|
singleTrack = _configuration.singleTrack ?: false,
|
|
371
372
|
androidControllerOfflineError = _configuration.androidControllerOfflineError ?: true,
|
|
373
|
+
viewMoreTitle = _configuration.viewMoreTitle,
|
|
372
374
|
)
|
|
373
375
|
}
|
|
374
376
|
|
|
@@ -1571,6 +1573,7 @@ private fun NativeBrowserConfiguration.strippingJSCallbacks() =
|
|
|
1571
1573
|
requestResolver = null,
|
|
1572
1574
|
browseResolver = null,
|
|
1573
1575
|
handleTrackLoad = null,
|
|
1576
|
+
viewMoreTitle = null,
|
|
1574
1577
|
resolveAlbumPath = null,
|
|
1575
1578
|
formatNavigationError = null,
|
|
1576
1579
|
request = request?.strippingJSCallbacks(),
|
|
@@ -24,6 +24,7 @@ import com.margelo.nitro.audiobrowser.Section
|
|
|
24
24
|
import com.margelo.nitro.audiobrowser.StyleDisplay
|
|
25
25
|
import com.margelo.nitro.audiobrowser.Track
|
|
26
26
|
import com.margelo.nitro.audiobrowser.TransformableRequestConfig
|
|
27
|
+
import com.margelo.nitro.core.Promise
|
|
27
28
|
import kotlinx.coroutines.Dispatchers
|
|
28
29
|
import kotlinx.coroutines.async
|
|
29
30
|
import kotlinx.coroutines.awaitAll
|
|
@@ -133,6 +134,12 @@ class BrowserManager {
|
|
|
133
134
|
private var resolvedRequestLayer: TransformableRequestConfig? = null
|
|
134
135
|
private var resolvedBrowseLayer: TransformableRequestConfig? = null
|
|
135
136
|
|
|
137
|
+
// The "view more" row title, cached on the same generation as the layers above — see
|
|
138
|
+
// viewMoreTitle(). Kept separate from them because it is resolved lazily (only a browse that
|
|
139
|
+
// actually appends a row asks for it), not eagerly alongside every request.
|
|
140
|
+
private var resolvedViewMoreTitleGeneration = -1
|
|
141
|
+
private var resolvedViewMoreTitle = DEFAULT_VIEW_MORE_TITLE
|
|
142
|
+
|
|
136
143
|
/** Test-only accessors for the resolver-layer cache state (see ensureLayersResolved). */
|
|
137
144
|
internal val layerGenerationForTest: Int
|
|
138
145
|
get() = layerGeneration
|
|
@@ -1129,6 +1136,14 @@ class BrowserManager {
|
|
|
1129
1136
|
|
|
1130
1137
|
/** Internal path used for search */
|
|
1131
1138
|
internal const val SEARCH_ROUTE_PATH = "__search__"
|
|
1139
|
+
|
|
1140
|
+
/**
|
|
1141
|
+
* Title of the appended "view more" row when the consumer sets no
|
|
1142
|
+
* [BrowserConfig.viewMoreTitle]. English in code, like [defaultFormattedError]'s error copy — a
|
|
1143
|
+
* default that renders beats a section whose `path` is unreachable, and it still resolves when
|
|
1144
|
+
* the JS runtime is gone.
|
|
1145
|
+
*/
|
|
1146
|
+
internal const val DEFAULT_VIEW_MORE_TITLE = "View more"
|
|
1132
1147
|
}
|
|
1133
1148
|
|
|
1134
1149
|
/**
|
|
@@ -1304,6 +1319,33 @@ class BrowserManager {
|
|
|
1304
1319
|
return resolvedRequestLayer
|
|
1305
1320
|
}
|
|
1306
1321
|
|
|
1322
|
+
/**
|
|
1323
|
+
* The title for the "view more" row appended to a pathed section on a surface whose header cannot
|
|
1324
|
+
* be tapped (Android Auto).
|
|
1325
|
+
*
|
|
1326
|
+
* Resolved from [BrowserConfig.viewMoreTitle] once per content generation — the same generation
|
|
1327
|
+
* the resolver layers use, so `invalidateAllContent()` re-reads it and an app that switched
|
|
1328
|
+
* language mid-drive gets the new copy without reconfiguring. Falls back to
|
|
1329
|
+
* [DEFAULT_VIEW_MORE_TITLE] when unset, blank, or throwing: a row with the default copy still
|
|
1330
|
+
* reaches the section's page, an untitled one does not.
|
|
1331
|
+
*/
|
|
1332
|
+
internal suspend fun viewMoreTitle(): String {
|
|
1333
|
+
val generation = layerGeneration
|
|
1334
|
+
if (resolvedViewMoreTitleGeneration == generation) return resolvedViewMoreTitle
|
|
1335
|
+
val title =
|
|
1336
|
+
try {
|
|
1337
|
+
config.viewMoreTitle?.invoke()?.await()?.takeIf { it.isNotBlank() }
|
|
1338
|
+
} catch (e: Exception) {
|
|
1339
|
+
Timber.e(e, "viewMoreTitle callback failed; falling back to the default")
|
|
1340
|
+
null
|
|
1341
|
+
} ?: DEFAULT_VIEW_MORE_TITLE
|
|
1342
|
+
// A newer generation started while awaiting — use this result, but don't cache it as current.
|
|
1343
|
+
if (generation != layerGeneration) return title
|
|
1344
|
+
resolvedViewMoreTitle = title
|
|
1345
|
+
resolvedViewMoreTitleGeneration = generation
|
|
1346
|
+
return title
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1307
1349
|
/**
|
|
1308
1350
|
* Builds the HTTP request for an API-backed path by layering request (shared) → kind
|
|
1309
1351
|
* (browse/search) → route configs. Each layer's transform receives the previous layer's output; a
|
|
@@ -1502,6 +1544,8 @@ data class BrowserConfig(
|
|
|
1502
1544
|
// Behavior
|
|
1503
1545
|
val singleTrack: Boolean = false,
|
|
1504
1546
|
val androidControllerOfflineError: Boolean = true,
|
|
1547
|
+
// Titles the "view more" row appended to a pathed section. See BrowserManager.viewMoreTitle.
|
|
1548
|
+
val viewMoreTitle: (() -> Promise<String>)? = null,
|
|
1505
1549
|
) {
|
|
1506
1550
|
/** Returns true if search functionality is configured (either callback or config). */
|
|
1507
1551
|
val hasSearch: Boolean
|
|
@@ -40,7 +40,6 @@ data class JsonTrackRequest(
|
|
|
40
40
|
@Serializable
|
|
41
41
|
data class JsonSection(
|
|
42
42
|
val title: String? = null,
|
|
43
|
-
val subtitle: String? = null,
|
|
44
43
|
val style: JsonElement? = null,
|
|
45
44
|
val path: String? = null,
|
|
46
45
|
val children: List<JsonTrack>,
|
|
@@ -150,7 +149,6 @@ private fun String?.toCarPlaySiriListButtonPosition(): CarPlaySiriListButtonPosi
|
|
|
150
149
|
fun JsonSection.toNitro(): Section {
|
|
151
150
|
return Section(
|
|
152
151
|
title = title,
|
|
153
|
-
subtitle = subtitle,
|
|
154
152
|
style = style.toSectionStyle(),
|
|
155
153
|
path = path,
|
|
156
154
|
children = children.map { it.toNitro() }.toTypedArray(),
|
|
@@ -59,7 +59,7 @@ object SectionScope {
|
|
|
59
59
|
* search results — ADR 0010).
|
|
60
60
|
*/
|
|
61
61
|
fun untitledSection(children: Array<Track>): Section =
|
|
62
|
-
Section(title = null,
|
|
62
|
+
Section(title = null, style = null, path = null, children = children)
|
|
63
63
|
|
|
64
64
|
/**
|
|
65
65
|
* The canonical sectioned shape: `sections` wins when present; plain `children` is authoring sugar
|
|
@@ -32,7 +32,6 @@ import com.margelo.nitro.audiobrowser.PlayerCapabilities
|
|
|
32
32
|
import com.margelo.nitro.audiobrowser.RemoteButtonLayout
|
|
33
33
|
import com.margelo.nitro.audiobrowser.SearchParams
|
|
34
34
|
import com.margelo.nitro.audiobrowser.Section
|
|
35
|
-
import com.margelo.nitro.audiobrowser.StyleDisplay
|
|
36
35
|
import com.margelo.nitro.audiobrowser.Track
|
|
37
36
|
import kotlinx.coroutines.CancellationException
|
|
38
37
|
import kotlinx.coroutines.CoroutineScope
|
|
@@ -419,33 +418,33 @@ class MediaSessionCallback(private val player: Player) :
|
|
|
419
418
|
/**
|
|
420
419
|
* Flattens a page's sections to MediaItems for browse delivery — the Media3 boundary where
|
|
421
420
|
* sections die (ADR 0010): the MediaBrowser protocol has no section node, so each child is
|
|
422
|
-
* stamped with its owning section's title/style hints. A
|
|
423
|
-
*
|
|
424
|
-
*
|
|
421
|
+
* stamped with its owning section's title/style hints. A section with a `path` gains a browsable
|
|
422
|
+
* "view more" row under the same header — at every `display`, because no Android Auto header is
|
|
423
|
+
* tappable at any of them, so the row is the section's only "view all" affordance here. Http(s)
|
|
424
|
+
* artwork routes through the content:// provider so Android Auto can load it via the
|
|
425
|
+
* ArtworkContentProvider.
|
|
425
426
|
*/
|
|
426
|
-
private fun toMediaItems(sections: List<Section>): List<MediaItem> {
|
|
427
|
+
private suspend fun toMediaItems(sections: List<Section>): List<MediaItem> {
|
|
427
428
|
val registry = player.browseArtworkRegistry
|
|
428
429
|
val authority = com.audiobrowser.util.ArtworkUris.authorityFor(player.context.packageName)
|
|
429
430
|
return sections.flatMap { section ->
|
|
430
431
|
// Android Auto has no disabled affordance, so an unavailable track hides
|
|
431
432
|
// — never a normal-looking dead row (Track.disabled's rendering ladder).
|
|
432
|
-
val
|
|
433
|
-
val items =
|
|
434
|
-
|
|
435
|
-
val isTileSection = section.style?.display == StyleDisplay.GRID
|
|
436
|
-
// No "view all" under an empty section — CarPlay skips empty sections
|
|
433
|
+
val children = section.children.filter { it.disabled != true }
|
|
434
|
+
val items = children.map { TrackFactory.toBrowseMediaItem(it, registry, authority, section) }
|
|
435
|
+
// No "view more" under an empty section — CarPlay skips empty sections
|
|
437
436
|
// outright, and a lone navigation tile under a header is a dead end.
|
|
438
|
-
if (
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
437
|
+
if (section.path == null || children.isEmpty()) return@flatMap items
|
|
438
|
+
// The browser is already up at every call site, so awaiting it here is a field read, and
|
|
439
|
+
// viewMoreTitle is memoized per content generation — both are free after the first row.
|
|
440
|
+
val title = player.awaitBrowser().browserManager.viewMoreTitle()
|
|
441
|
+
items +
|
|
442
|
+
TrackFactory.toBrowseMediaItem(
|
|
443
|
+
TrackFactory.navigationTrack(section, title),
|
|
444
|
+
registry,
|
|
445
|
+
authority,
|
|
446
|
+
section,
|
|
447
|
+
)
|
|
449
448
|
}
|
|
450
449
|
}
|
|
451
450
|
|
|
@@ -453,7 +452,7 @@ class MediaSessionCallback(private val player: Player) :
|
|
|
453
452
|
* Flat lists (tabs, search results) convert as one untitled list section — which contributes no
|
|
454
453
|
* group or style hints — so exactly one Track→MediaItem path exists at the Media3 boundary.
|
|
455
454
|
*/
|
|
456
|
-
private fun toFlatMediaItems(tracks: List<Track>): List<MediaItem> =
|
|
455
|
+
private suspend fun toFlatMediaItems(tracks: List<Track>): List<MediaItem> =
|
|
457
456
|
toMediaItems(listOf(untitledSection(tracks.toTypedArray())))
|
|
458
457
|
|
|
459
458
|
override fun onGetItem(
|
|
@@ -25,13 +25,16 @@ object TrackFactory {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
|
-
* A synthetic browsable Track for a section's "view
|
|
29
|
-
*
|
|
28
|
+
* A synthetic browsable Track for a section's "view more" row — the section has a path but no
|
|
29
|
+
* Track to hang it on (ADR 0010). It carries the section's declared item block as its own,
|
|
30
30
|
* `display` included: the section's declaration about this content's layout is the only declared
|
|
31
31
|
* promise the "view all" page can ever have (there is no consumer-authored handle to declare one
|
|
32
32
|
* on), and without it Android Auto would always render that page as a list.
|
|
33
|
+
*
|
|
34
|
+
* [title] is the consumer's `viewMoreTitle`, one string for every section — not the section's own
|
|
35
|
+
* title, which the group header above the row already shows.
|
|
33
36
|
*/
|
|
34
|
-
fun navigationTrack(section: Section): Track =
|
|
37
|
+
fun navigationTrack(section: Section, title: String): Track =
|
|
35
38
|
Track(
|
|
36
39
|
id = null,
|
|
37
40
|
path = section.path,
|
|
@@ -39,8 +42,8 @@ object TrackFactory {
|
|
|
39
42
|
artwork = null,
|
|
40
43
|
artworkSource = null,
|
|
41
44
|
request = null,
|
|
42
|
-
title =
|
|
43
|
-
subtitle =
|
|
45
|
+
title = title,
|
|
46
|
+
subtitle = null,
|
|
44
47
|
artist = null,
|
|
45
48
|
albumPath = null,
|
|
46
49
|
album = null,
|
|
@@ -1,10 +1,45 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
Default copy for the two error tiles the library invents in the Android Auto
|
|
4
|
+
browse list. These rows have no consumer-authored Track behind them, so there
|
|
5
|
+
is nothing in the browse tree to read a title from; English here because a
|
|
6
|
+
default that renders beats a blank row.
|
|
7
|
+
|
|
8
|
+
Resources rather than a browser-config option — the route the library's
|
|
9
|
+
cross-platform copy takes (`formatNavigationError`, `carPlayLoadingTitle`,
|
|
10
|
+
`viewMoreTitle`) — because these two are not cross-platform. They exist only
|
|
11
|
+
because Media3 drops the message from `LibraryResult.ofError` on the legacy
|
|
12
|
+
browse bridge, so a row is the sole signal available; CarPlay has no
|
|
13
|
+
counterpart, stating failures in the list's centered empty view instead
|
|
14
|
+
(CarPlayController.showMessage). Android-only copy in the Android-idiomatic
|
|
15
|
+
place: an app re-skins either by declaring the same name in its own
|
|
16
|
+
strings.xml, and a `values-<locale>/` file can add translations later without
|
|
17
|
+
touching the API.
|
|
18
|
+
-->
|
|
2
19
|
<resources>
|
|
3
|
-
<!--
|
|
20
|
+
<!--
|
|
21
|
+
The offline tile: shown in place of a page's contents when the device is
|
|
22
|
+
offline and the consumer left `androidControllerOfflineError` on. Distinct
|
|
23
|
+
from the browse-error tile below — this one is used only when the network
|
|
24
|
+
monitor says we are actually offline, so it may name the cause. The
|
|
25
|
+
subtitle is the tile's second line.
|
|
26
|
+
-->
|
|
4
27
|
<string name="audio_browser_offline_error">No internet connection</string>
|
|
5
28
|
<string name="audio_browser_offline_error_subtitle">Check your connection and try again</string>
|
|
6
29
|
|
|
7
|
-
<!--
|
|
30
|
+
<!--
|
|
31
|
+
The browse-error tile: shown when a browse fails while ONLINE — a server
|
|
32
|
+
error, a bad status, a timeout waiting for the JS browser. Deliberately
|
|
33
|
+
vague, and deliberately not "no internet connection": the genuinely-offline
|
|
34
|
+
case is caught earlier and gets the tile above, so anything reaching this
|
|
35
|
+
one has a working connection and would be misdiagnosed by that wording.
|
|
36
|
+
|
|
37
|
+
A tile rather than an error dialog because Media3 drops the message from
|
|
38
|
+
`LibraryResult.ofError` on the legacy browse bridge, which would leave a
|
|
39
|
+
bare "No items" screen. Verified on a head unit (2026-06): the Android Auto
|
|
40
|
+
browse list never renders error text by any other route, so tiles are the
|
|
41
|
+
only in-browse signal the library controls.
|
|
42
|
+
-->
|
|
8
43
|
<string name="audio_browser_browse_error">Something went wrong</string>
|
|
9
44
|
<string name="audio_browser_browse_error_subtitle">Please try again later</string>
|
|
10
45
|
</resources>
|
|
@@ -61,10 +61,9 @@ object TestFixtures {
|
|
|
61
61
|
fun section(
|
|
62
62
|
children: Array<Track> = emptyArray(),
|
|
63
63
|
title: String? = null,
|
|
64
|
-
subtitle: String? = null,
|
|
65
64
|
style: SectionStyle? = null,
|
|
66
65
|
path: String? = null,
|
|
67
|
-
) = Section(title = title,
|
|
66
|
+
) = Section(title = title, style = style, path = path, children = children)
|
|
68
67
|
|
|
69
68
|
fun transformableConfig(
|
|
70
69
|
baseUrl: String? = null,
|
|
@@ -144,4 +144,13 @@ class BrowserManagerLayerResolutionTest {
|
|
|
144
144
|
assertSame(request, browserManager.resolvedRequestLayerForTest)
|
|
145
145
|
assertNull(browserManager.resolvedBrowseLayerForTest)
|
|
146
146
|
}
|
|
147
|
+
|
|
148
|
+
@Test
|
|
149
|
+
fun `viewMoreTitle falls back to the in-code default when unconfigured`() = runTest {
|
|
150
|
+
// The only viewMoreTitle path a JVM test can reach — a configured callback returns a Nitro
|
|
151
|
+
// Promise, see the resolver-thunk gap noted above.
|
|
152
|
+
browserManager.config = BrowserConfig()
|
|
153
|
+
|
|
154
|
+
assertEquals(BrowserManager.DEFAULT_VIEW_MORE_TITLE, browserManager.viewMoreTitle())
|
|
155
|
+
}
|
|
147
156
|
}
|
|
@@ -130,8 +130,9 @@ class MediaExtrasBuilderTest {
|
|
|
130
130
|
path = "/popular",
|
|
131
131
|
style = sectionStyle(display = StyleDisplay.GRID, artworkRendering = null, gridWrap = false),
|
|
132
132
|
)
|
|
133
|
-
val navigation = TrackFactory.navigationTrack(section)
|
|
133
|
+
val navigation = TrackFactory.navigationTrack(section, "View more")
|
|
134
134
|
assertEquals(StyleDisplay.GRID, navigation.style?.display)
|
|
135
|
+
assertEquals("View more", navigation.title)
|
|
135
136
|
|
|
136
137
|
val extras = MediaExtrasBuilder.build(navigation)
|
|
137
138
|
assertEquals(
|
|
@@ -235,20 +235,17 @@ extension JsonStyle {
|
|
|
235
235
|
/// ignored dead weight.
|
|
236
236
|
struct JsonSection: Codable {
|
|
237
237
|
let title: String?
|
|
238
|
-
let subtitle: String?
|
|
239
238
|
let style: JsonStyle?
|
|
240
239
|
let path: String?
|
|
241
240
|
let children: [JsonTrack]
|
|
242
241
|
|
|
243
242
|
init(
|
|
244
243
|
title: String? = nil,
|
|
245
|
-
subtitle: String? = nil,
|
|
246
244
|
style: JsonStyle? = nil,
|
|
247
245
|
path: String? = nil,
|
|
248
246
|
children: [JsonTrack],
|
|
249
247
|
) {
|
|
250
248
|
self.title = title
|
|
251
|
-
self.subtitle = subtitle
|
|
252
249
|
self.style = style
|
|
253
250
|
self.path = path
|
|
254
251
|
self.children = children
|
|
@@ -464,7 +461,6 @@ struct JsonTrack: Codable {
|
|
|
464
461
|
func toNitro() -> Section {
|
|
465
462
|
Section(
|
|
466
463
|
title: title,
|
|
467
|
-
subtitle: subtitle,
|
|
468
464
|
style: style?.toSectionStyle(),
|
|
469
465
|
path: path,
|
|
470
466
|
children: children.map { $0.toNitro() },
|
|
@@ -550,7 +546,6 @@ struct JsonTrack: Codable {
|
|
|
550
546
|
func toNitro() -> Section {
|
|
551
547
|
Section(
|
|
552
548
|
title: title,
|
|
553
|
-
subtitle: subtitle,
|
|
554
549
|
style: style?.toSectionStyle(),
|
|
555
550
|
path: path,
|
|
556
551
|
children: children.map { $0.toNitro() },
|
|
@@ -9,14 +9,12 @@ extension Section {
|
|
|
9
9
|
/// `children` is single-optional since it is non-optional on Section.
|
|
10
10
|
func copying(
|
|
11
11
|
title: String?? = nil,
|
|
12
|
-
subtitle: String?? = nil,
|
|
13
12
|
style: SectionStyle?? = nil,
|
|
14
13
|
path: String?? = nil,
|
|
15
14
|
children: [Track]? = nil,
|
|
16
15
|
) -> Section {
|
|
17
16
|
Section(
|
|
18
17
|
title: title ?? self.title,
|
|
19
|
-
subtitle: subtitle ?? self.subtitle,
|
|
20
18
|
style: style ?? self.style,
|
|
21
19
|
path: path ?? self.path,
|
|
22
20
|
children: children ?? self.children,
|
|
@@ -26,6 +24,6 @@ extension Section {
|
|
|
26
24
|
/// One untitled section — the canonical wrap of a flat track list
|
|
27
25
|
/// (`children` authoring sugar, search results — ADR 0010).
|
|
28
26
|
static func untitled(_ children: [Track]) -> Section {
|
|
29
|
-
Section(title: nil,
|
|
27
|
+
Section(title: nil, style: nil, path: nil, children: children)
|
|
30
28
|
}
|
|
31
29
|
}
|
|
@@ -186,7 +186,8 @@ public class HybridAudioBrowser: HybridAudioBrowserSpec, @unchecked Sendable {
|
|
|
186
186
|
public var configuration: NativeBrowserConfiguration = .init(
|
|
187
187
|
path: nil, request: nil, requestResolver: nil, browse: nil, browseResolver: nil, media: nil, artwork: nil, nowPlayingArtwork: nil, routes: nil,
|
|
188
188
|
singleTrack: nil, handleTrackLoad: nil,
|
|
189
|
-
androidControllerOfflineError: nil,
|
|
189
|
+
androidControllerOfflineError: nil, viewMoreTitle: nil, carPlayLoadingTitle: nil, resolveAlbumPath: nil,
|
|
190
|
+
formatNavigationError: nil,
|
|
190
191
|
) {
|
|
191
192
|
didSet {
|
|
192
193
|
// Copied here, on the setter's thread: the Task below outlives this call,
|
|
@@ -32,7 +32,7 @@ private func makeFullResolvedTrack() -> ResolvedTrack {
|
|
|
32
32
|
ResolvedTrack(
|
|
33
33
|
path: "/original",
|
|
34
34
|
style: SectionStyle(gridWrap: false, display: .grid, artworkRendering: .stencil),
|
|
35
|
-
sections: [Section(title: "Group A",
|
|
35
|
+
sections: [Section(title: "Group A", style: nil, path: nil, children: [])],
|
|
36
36
|
children: [Track(id: "t1", path: "/t1")],
|
|
37
37
|
carPlaySiriListButton: .top,
|
|
38
38
|
id: "original-id",
|
|
@@ -162,7 +162,7 @@ private func makeFullResolvedTrack() -> ResolvedTrack {
|
|
|
162
162
|
@Test func copyingOverridesSections() {
|
|
163
163
|
let original = makeResolvedTrack()
|
|
164
164
|
let sections = [
|
|
165
|
-
Section(title: "A",
|
|
165
|
+
Section(title: "A", style: nil, path: nil, children: [Track(id: "c1", src: "c1")]),
|
|
166
166
|
]
|
|
167
167
|
let copy = original.copying(sections: sections)
|
|
168
168
|
#expect(copy.sections == sections)
|
|
@@ -222,6 +222,7 @@ function toNativeConfig(config) {
|
|
|
222
222
|
singleTrack: config.singleTrack,
|
|
223
223
|
handleTrackLoad: config.handleTrackLoad,
|
|
224
224
|
androidControllerOfflineError: config.androidControllerOfflineError,
|
|
225
|
+
viewMoreTitle: config.viewMoreTitle,
|
|
225
226
|
carPlayLoadingTitle: config.carPlayLoadingTitle,
|
|
226
227
|
resolveAlbumPath: config.resolveAlbumPath,
|
|
227
228
|
formatNavigationError: config.formatNavigationError
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isCallback","source","isObjectValue","value","isTransformableRequestConfig","isRouteConfig","artwork","splitLayer","layer","resolve","resolver","Promise","config","flattenBrowseSource","browseCallback","browseConfig","browseStatic","searchSourceToRouteEntry","path","SEARCH_ROUTE_PATH","searchCallback","searchConfig","wrapTracksAsResolvedTrack","tracks","TABS_ROUTE_PATH","title","children","tabsSourceToRouteEntry","Array","isArray","wrappedCallback","flattenRouteEntry","browse","media","DEFAULT_ROUTE_PATH","exports","flattenRoutes","routes","tabs","search","entries","Object","push","length","undefined","MAX_TABS","validateBrowserConfiguration","warn","message","console","startsWith","page","toNativeConfig","request","requestResolver","browseResolver","nowPlayingArtwork","singleTrack","handleTrackLoad","androidControllerOfflineError","carPlayLoadingTitle","resolveAlbumPath","formatNavigationError"],"sourceRoot":"../../../src","sources":["features/browser-config.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["isCallback","source","isObjectValue","value","isTransformableRequestConfig","isRouteConfig","artwork","splitLayer","layer","resolve","resolver","Promise","config","flattenBrowseSource","browseCallback","browseConfig","browseStatic","searchSourceToRouteEntry","path","SEARCH_ROUTE_PATH","searchCallback","searchConfig","wrapTracksAsResolvedTrack","tracks","TABS_ROUTE_PATH","title","children","tabsSourceToRouteEntry","Array","isArray","wrappedCallback","flattenRouteEntry","browse","media","DEFAULT_ROUTE_PATH","exports","flattenRoutes","routes","tabs","search","entries","Object","push","length","undefined","MAX_TABS","validateBrowserConfiguration","warn","message","console","startsWith","page","toNativeConfig","request","requestResolver","browseResolver","nowPlayingArtwork","singleTrack","handleTrackLoad","androidControllerOfflineError","viewMoreTitle","carPlayLoadingTitle","resolveAlbumPath","formatNavigationError"],"sourceRoot":"../../../src","sources":["features/browser-config.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -216,6 +216,7 @@ export function toNativeConfig(config) {
|
|
|
216
216
|
singleTrack: config.singleTrack,
|
|
217
217
|
handleTrackLoad: config.handleTrackLoad,
|
|
218
218
|
androidControllerOfflineError: config.androidControllerOfflineError,
|
|
219
|
+
viewMoreTitle: config.viewMoreTitle,
|
|
219
220
|
carPlayLoadingTitle: config.carPlayLoadingTitle,
|
|
220
221
|
resolveAlbumPath: config.resolveAlbumPath,
|
|
221
222
|
formatNavigationError: config.formatNavigationError
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isCallback","source","isObjectValue","value","isTransformableRequestConfig","isRouteConfig","artwork","splitLayer","layer","resolve","resolver","Promise","config","flattenBrowseSource","browseCallback","browseConfig","browseStatic","searchSourceToRouteEntry","path","SEARCH_ROUTE_PATH","searchCallback","searchConfig","wrapTracksAsResolvedTrack","tracks","TABS_ROUTE_PATH","title","children","tabsSourceToRouteEntry","Array","isArray","wrappedCallback","flattenRouteEntry","browse","media","DEFAULT_ROUTE_PATH","flattenRoutes","routes","tabs","search","entries","Object","push","length","undefined","MAX_TABS","validateBrowserConfiguration","warn","message","console","startsWith","page","toNativeConfig","request","requestResolver","browseResolver","nowPlayingArtwork","singleTrack","handleTrackLoad","androidControllerOfflineError","carPlayLoadingTitle","resolveAlbumPath","formatNavigationError"],"sourceRoot":"../../../src","sources":["features/browser-config.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["isCallback","source","isObjectValue","value","isTransformableRequestConfig","isRouteConfig","artwork","splitLayer","layer","resolve","resolver","Promise","config","flattenBrowseSource","browseCallback","browseConfig","browseStatic","searchSourceToRouteEntry","path","SEARCH_ROUTE_PATH","searchCallback","searchConfig","wrapTracksAsResolvedTrack","tracks","TABS_ROUTE_PATH","title","children","tabsSourceToRouteEntry","Array","isArray","wrappedCallback","flattenRouteEntry","browse","media","DEFAULT_ROUTE_PATH","flattenRoutes","routes","tabs","search","entries","Object","push","length","undefined","MAX_TABS","validateBrowserConfiguration","warn","message","console","startsWith","page","toNativeConfig","request","requestResolver","browseResolver","nowPlayingArtwork","singleTrack","handleTrackLoad","androidControllerOfflineError","viewMoreTitle","carPlayLoadingTitle","resolveAlbumPath","formatNavigationError"],"sourceRoot":"../../../src","sources":["features/browser-config.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-config.d.ts","sourceRoot":"","sources":["../../../../src/features/browser-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAWrB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,yBAAyB,CAAA;AA2KhC,eAAO,MAAM,iBAAiB,eAAe,CAAA;AAqC7C;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,oBAAoB,GAC3B,IAAI,CAuCN;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,0BAA0B,
|
|
1
|
+
{"version":3,"file":"browser-config.d.ts","sourceRoot":"","sources":["../../../../src/features/browser-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAWrB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,yBAAyB,CAAA;AA2KhC,eAAO,MAAM,iBAAiB,eAAe,CAAA;AAqC7C;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,oBAAoB,GAC3B,IAAI,CAuCN;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,0BAA0B,CAqB5B"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* into separate optional properties to reduce generated code complexity.
|
|
6
6
|
* Users should use BrowserConfiguration, not these types directly.
|
|
7
7
|
*/
|
|
8
|
-
import type { ArtworkRequestConfig, BrowserSourceCallback, ResolveAlbumPathCallback, FormatNavigationErrorCallback, HandleTrackLoadCallback, MediaRequestConfig, SearchSourceCallback, TransformableRequestConfig } from './browser';
|
|
8
|
+
import type { ArtworkRequestConfig, BrowserSourceCallback, ResolveAlbumPathCallback, FormatNavigationErrorCallback, HandleTrackLoadCallback, MediaRequestConfig, SearchSourceCallback, TransformableRequestConfig, ViewMoreTitleCallback } from './browser';
|
|
9
9
|
import type { ResolvedTrack } from './browser-nodes';
|
|
10
10
|
type NativeRequestConfigResolver = () => Promise<TransformableRequestConfig>;
|
|
11
11
|
/**
|
|
@@ -38,6 +38,7 @@ export interface NativeBrowserConfiguration {
|
|
|
38
38
|
singleTrack?: boolean;
|
|
39
39
|
handleTrackLoad?: HandleTrackLoadCallback;
|
|
40
40
|
androidControllerOfflineError?: boolean;
|
|
41
|
+
viewMoreTitle?: ViewMoreTitleCallback;
|
|
41
42
|
carPlayLoadingTitle?: string;
|
|
42
43
|
resolveAlbumPath?: ResolveAlbumPathCallback;
|
|
43
44
|
formatNavigationError?: FormatNavigationErrorCallback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-native.d.ts","sourceRoot":"","sources":["../../../../src/types/browser-native.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,6BAA6B,EAC7B,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"browser-native.d.ts","sourceRoot":"","sources":["../../../../src/types/browser-native.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,6BAA6B,EAC7B,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,WAAW,CAAA;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAMpD,KAAK,2BAA2B,GAAG,MAAM,OAAO,CAAC,0BAA0B,CAAC,CAAA;AAE5E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IAEZ,cAAc,CAAC,EAAE,qBAAqB,CAAA;IACtC,YAAY,CAAC,EAAE,0BAA0B,CAAA;IACzC,YAAY,CAAC,EAAE,aAAa,CAAA;IAE5B,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,YAAY,CAAC,EAAE,0BAA0B,CAAA;IAEzC,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAA;IAKb,OAAO,CAAC,EAAE,0BAA0B,CAAA;IACpC,eAAe,CAAC,EAAE,2BAA2B,CAAA;IAG7C,MAAM,CAAC,EAAE,0BAA0B,CAAA;IACnC,cAAc,CAAC,EAAE,2BAA2B,CAAA;IAC5C,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,OAAO,CAAC,EAAE,oBAAoB,CAAA;IAC9B,iBAAiB,CAAC,EAAE,oBAAoB,CAAA;IAQxC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAG3B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,uBAAuB,CAAA;IACzC,6BAA6B,CAAC,EAAE,OAAO,CAAA;IAGvC,aAAa,CAAC,EAAE,qBAAqB,CAAA;IAGrC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,gBAAgB,CAAC,EAAE,wBAAwB,CAAA;IAC3C,qBAAqB,CAAC,EAAE,6BAA6B,CAAA;CACtD"}
|
|
@@ -270,11 +270,6 @@ export type TrackArtwork = string | ArtworkVariants;
|
|
|
270
270
|
export interface Section {
|
|
271
271
|
/** Header text. Absent = headerless group. */
|
|
272
272
|
title?: string;
|
|
273
|
-
/**
|
|
274
|
-
* Secondary line for the section's navigation surface — e.g. the label
|
|
275
|
-
* of the "view all" link a tile section gets on Android Auto.
|
|
276
|
-
*/
|
|
277
|
-
subtitle?: string;
|
|
278
273
|
/**
|
|
279
274
|
* Presentation, separated from content. Each surface renders the
|
|
280
275
|
* declared layout's nearest supported form; on CarPlay
|
|
@@ -285,10 +280,20 @@ export interface Section {
|
|
|
285
280
|
*/
|
|
286
281
|
style?: SectionStyle;
|
|
287
282
|
/**
|
|
288
|
-
* Navigation target for the section
|
|
289
|
-
*
|
|
290
|
-
*
|
|
291
|
-
*
|
|
283
|
+
* Navigation target for the section's "view all" affordance — the
|
|
284
|
+
* fuller page this section is a teaser for. Absent = a self-contained
|
|
285
|
+
* section: the header is a plain label, not a link.
|
|
286
|
+
*
|
|
287
|
+
* The surface picks the form (ADR 0010), and each carries the copy
|
|
288
|
+
* itself — a `path` never adds words to the section:
|
|
289
|
+
*
|
|
290
|
+
* - **CarPlay** — a tile section's row draws a disclosure chevron and
|
|
291
|
+
* the whole row navigates. A list section renders no affordance:
|
|
292
|
+
* CarPlay has no "see all" idiom for one, and an invented row would
|
|
293
|
+
* spend an item from the template's cap.
|
|
294
|
+
* - **Android Auto** — no header is tappable at any display, so the
|
|
295
|
+
* section gets an appended browsable row, titled by the global
|
|
296
|
+
* `viewMoreTitle` browser option ("View more" by default).
|
|
292
297
|
*/
|
|
293
298
|
path?: string;
|
|
294
299
|
/** The section's tracks. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-nodes.d.ts","sourceRoot":"","sources":["../../../../src/types/browser-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE1E;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAA;AAE1C;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,CAAA;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,mBAAmB,CAAA;AAEzD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAA;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAA;AAE/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;IAEtB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAEnC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IAEvB;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAA;IACX,2CAA2C;IAC3C,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAA;CACb;AAOD,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,eAAe,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd
|
|
1
|
+
{"version":3,"file":"browser-nodes.d.ts","sourceRoot":"","sources":["../../../../src/types/browser-nodes.ts"],"names":[],"mappings":"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"}
|