github benjaminRoberts01375/Stingray v1.2.0

4 hours ago

Settings Page

  • Set the max bitrate
  • Toggle autoplay
  • Connection info (same as what's at the bottom of the home page)
    • Added Apple TV variant
  • Library info
    • Number of synced libraries
    • Content per library
    • Syncing status
  • Adjust playback speed
  • Users are now sorted alphabetically instead of randomly
  • Adjustable Playback Speed

    Themes

    • Themes have been added to Stingray
      • Notes App: A very white theme that uses a white background and grays
      • Frosty (Supporter): A more colorful light theme with splashes of color fading in and out with subtle movements
      • Beach: A gradient with the sky and the sand
      • Retro (Supporter): A synthwave inspired animated background with an animated floor and lots of pinks
      • Deep Sea (existing theme)
      • Space Vampires (Supporter): A Dracula inspired theme on a clear night with shooting stars
      • Void: A very dark theme that uses a black background and grays
    • Themes can be chosen for dark mode and light mode independently

    Profiles

    • New settings for handling profile switching
      • Ask on resume: When the app opens from the background, ask which profile to use
      • Ask on launch: Like most streaming services, ask when the app is re-launched
      • Manual: Current behavior - remember who last used Stingray
    • Per-user PIN support
    • Users from multiple Jellyfin servers are now supported
    • When adding a new user, the active user's connection info autofills
    • Adding a duplicate user is now prevented
    • Added Quick Connect support by [@max298](https://github.com/max298)

    Accessibility

    • Translation support has been added
    • Allow hiding thumbnail art
    • Allow hiding media background art
    • Allow replacing media logos with text variants

Player

  • Autoplay support
  • Streaming stats in the player
    • Bitrate
    • Playback resolution
    • Screen resolution
    • Frame rate
    • Codec
    • Player buffer duration
    • Media ID
    • Media Source ID
    • Video Stream IDw
    • Audio Stream ID
  • Extended maximum playback buffer (tvOS can and does impose its own limits)
  • Reworked much of the AVPlayer and AVPlayerItem handling
    • Share the same view model across all sub-views of the player
    • Fixed audio continuing to play after tracks have been switched
    • Fixed subtitle, audio, and video tracks changing when changing a different track type
    • Prevent old AVPlayers from getting stuck in async threads
    • Replace player instead of rebuilding it
  • Extend the maximum configurable bitrate to 100 megabits per second (maximum still streams at full quality)
  • Adjust playback speed

Syncing

  • Libraries now intentionally slowdown syncing to improve UI performance
  • Improve URL resolution
  • Improve JSON decoding verbosity
  • Modernize Jellyfin token format [@darkweak](#75)
  • Libraries with subfolders now present the full library (strips subfolder structure in favor of a flat structure)

General UI

  • Created custom DoubleButton and DoubleMenu types to wrap Button and Menu types for consistent styling
  • Created a custom ButtonStyle to improve consistency between a Button and Menu in the Settings page
  • Added the number of items in a library at the bottom of each library
  • Allow account switching when libraries fail to load
  • Improved time code formatting
    • 00:00:59 → 0:59
    • 00:05:22 → 5:22
    • 00:23:19 → 23:19
    • 01:42:21 → 1:42:21
  • Unify the gray color used for secondary body text
  • Fixed labels being incorrectly colored in light mode
  • Media cards now have an ultraThinMaterial applied

General Backend Changes

  • The active user is now stored in UserModel.activeUser
  • Fixed the wrong user being deleted when deleting a user
  • Force explicit access control
    • Ban the use of internal access control
  • Force themes to contain the word "Theme" in their class names
  • Implement a proper Logger type using the "Unified Logging System" (osLogger)
    • Ban usual printing, and recommend logging
  • Group user data into a single UserDefaults storage, unifying it with the Top Shelf
  • Settings storage
    • Most data is stored with the user, though some is stored globally and in memory. The SettingsModel unifies this by wrapping related values with computed values
    • Settings are saved when changed primarily via willSet observers

Repo Updates

  • Updated security email
  • Updated contributing guidelines
    • Added language for pull requests
    • Added language for how to submit translations
    • Added language for which branch to fork from and merge into
  • Updated issue template for Apple TV variant formatting

Supporting Stingray

  • Stingray can now be supported for $1.50, unlocking animated themes

Don't miss a new Stingray release

NewReleases is sending notifications on new releases.