react-native-audio-browser 0.2.0-next.15 → 0.2.0-next.17

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 (38) hide show
  1. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +5 -1
  2. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +3 -0
  3. package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +4 -0
  4. package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +1 -0
  5. package/android/src/main/java/com/audiobrowser/model/IcyTitle.kt +24 -0
  6. package/android/src/main/java/com/audiobrowser/model/PlaybackMetadata.kt +10 -6
  7. package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +49 -93
  8. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +2 -0
  9. package/android/src/main/java/com/audiobrowser/player/PlayerListener.kt +1 -1
  10. package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +1 -0
  11. package/android/src/test/java/com/audiobrowser/TestFixtures.kt +3 -0
  12. package/android/src/test/java/com/audiobrowser/model/IcyTitleTest.kt +49 -0
  13. package/ios/Browser/BrowserManager.swift +1 -0
  14. package/ios/Browser/JsonModels.swift +11 -0
  15. package/ios/CarPlay/CarPlayListItemFactory.swift +1 -1
  16. package/ios/Extension/ResolvedTrack+Copying.swift +2 -0
  17. package/ios/Extension/String+IcyCharset.swift +21 -0
  18. package/ios/Extension/TimedMetadata+AVFoundation.swift +6 -4
  19. package/ios/Extension/Track+Copying.swift +2 -0
  20. package/ios/HybridAudioBrowser.swift +1 -1
  21. package/ios/Model/NitroTypeStubs.swift +2 -0
  22. package/ios/Tests/PlaybackStateStoreTests.swift +1 -1
  23. package/ios/Tests/ResolvedTrackCopyingTests.swift +2 -0
  24. package/ios/Tests/TimedMetadataAVFoundationTests.swift +42 -0
  25. package/lib/typescript/package.json +1 -0
  26. package/lib/typescript/src/types/browser-nodes.d.ts +14 -0
  27. package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
  28. package/nitrogen/generated/android/c++/JResolvedTrack.hpp +7 -3
  29. package/nitrogen/generated/android/c++/JTrack.hpp +7 -3
  30. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +6 -3
  31. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +6 -3
  32. package/nitrogen/generated/ios/swift/ResolvedTrack.swift +19 -1
  33. package/nitrogen/generated/ios/swift/Track.swift +19 -1
  34. package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +6 -2
  35. package/nitrogen/generated/shared/c++/Track.hpp +6 -2
  36. package/package.json +2 -2
  37. package/src/types/browser-nodes.ts +15 -0
  38. package/website/guide/track.md +1 -0
@@ -547,6 +547,21 @@ export interface Track {
547
547
  * calls. Declare it on every live track.
548
548
  */
549
549
  live?: boolean
550
+
551
+ /**
552
+ * Byte encoding of this track's ICY `StreamTitle` when it is not UTF-8, as
553
+ * an IANA label (`'windows-1251'`, `'windows-874'`, …). Some Shoutcast /
554
+ * Icecast stations send titles in a legacy code page; ICY declares no
555
+ * encoding, so the player's UTF-8 decode fails and falls back to Latin-1,
556
+ * showing mojibake. With this set, a title that came out Latin-1 shaped
557
+ * (every char at or below U+00FF, some at or above U+0080) is re-decoded
558
+ * through ISO-8859-1 with the given charset; this also repairs stations
559
+ * that UTF-8 encoded their legacy bytes. A title already in another script
560
+ * or pure ASCII is left alone. Applies to ICY only: ID3 and HLS timed
561
+ * metadata declare their own encoding and are never touched. A label the
562
+ * platform cannot decode with is ignored.
563
+ */
564
+ icyCharset?: string
550
565
  }
551
566
 
552
567
  /**
@@ -149,6 +149,7 @@ Optional fields that change how a Track renders on CarPlay / Android Auto. Each
149
149
  | `favorited` | filled/empty heart (needs the `favorite` capability) | Android Auto, notification |
150
150
  | `live` | a "live" indicator | iOS now-playing |
151
151
  | `albumPath` | make the now-playing album line tappable | CarPlay |
152
+ | `icyCharset` | decode ICY titles a station sends in a legacy code page | iOS, Android |
152
153
 
153
154
  A couple of constraints worth knowing:
154
155