Releases: toasterofbread/spmp
v0.3.2
This is a hotfix release which includes fixes to two major bugs. New features and other fixes added since v0.3.1 are not included.
The corresponding version of spmp-server for this release is still v0.3.1.
Bugs fixed
- Uploading stack trace to paste.ee fails
- Error when starting song radio (retroactively caused by a slight change in YouTube's API)
Full Changelog: v0.3.1...v0.3.2
v0.3.1
This release corresponds to v0.3.1 of spmp-server
Added app languages
- French added by @RomaricKc1 #249
- Turkish added by @mikropsoft #264
- Russian added by @nichind #274
Changes
- Move the youtubeapi package into a separate library ytm-kt #258
- Landscape player:
- Improve animation performance
- Apply compact mode and bottom bar inset mode before expansion to prevent sudden shift during animation
- Fix incorrect queue width with some window sizes
- When selecting landscape sidebar settings button, navigate to root settings page
- Disable kanji simplification on non-Japanese languages
- Add shortcut to toggle player expansion with tab
- Improve manual login steps, support brand account login with manual method
- Add hex input field to theme colour picker
- Load item data on Android URI open
- Re-implement lyrics display (improves font scaling/positioning issues)
- Add song/default sliders for player wave speed and opacity
- Apply extra queue side padding changes immediately
- Rewrite RadioInstance (improves radio playback reliability)
- Hide unsupported window transparency options on Windows
- Renew Android Discord status images implementation
- Disable media notification image crop on Android 13+ unless image offset is set
- Disable track press on settings sliders #254
- On playlist queue insertion, don't clear queue if playlist is definitely finite
- Improve reorderable lists
Bugs fixed
- Crash on downloading to custom location on Android
- NullPointerException and YoutubeChannelNotCreatedException after webview login
- Number key shortcuts active while editing text
- Crash on missing youtube string
- Song related content button plays song instead of opening page
- Crash on long-press menu access on desktop if layout_offset is not set
- Crash with no GUI log if an exception occurs before the window is created on desktop
- Crash when loading packaged font on Windows
- Crash on theme creation
- Theme delete button changes current theme index
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Desktop version, landscape UI, and documentation
Documentation on installation, compilation, and general usage is now available at https://spmp.toastbits.dev/docs/ (source code)
This release corresponds to v0.3.0 of spmp-server
Added app language
Main changes
- Add desktop version for Linux and Windows #170
- Requires Java to be installed on the system
- Other dependencies come packaged in the zip for Windows
- See documentation for system dependencies on Linux
- Add landscape UI, used for both Android and desktop
- Sidebar for app and local page navigation
- Redesigned/tweaked pages for improved landscape experience
- Add new icon graphic created by smlqrs
- Rearrange and add portrait player buttons:
- Move like/dislike button next to controls
- Move song details button to bottom corner
- Add start radio button next to controls
- Add queue open button to bottom center
- Add option to show shuffle and repeat buttons in player
- Add audio volume normalisation option #195
- Add option to enable silence skipping #196
- Add 'Open album' button to long-press menu
- Add option to disable top bar lyrics
- Reorganise settings, add import and export buttons #201
- Add menu for selecting download location each time
- Add button to multiselect info which selects all items in between currently selected items
- Redesign song theme overlay menu and:
- add slider to show song image as landscape player background
- add slider for player image shadow size
- Implement artist shuffle action #212
- Show liked songs playlist on account playlists page and add the following library pages #217
- Account library albums
- Account library artists
- Account liked songs
- Display song like button for local use when not signed in
Other changes
- Restore NewPipeExtractor as fallback by @JeelPatel231 #208
- Add bounce-on-press visual effect to some buttons
- Show indicator next to songs marked as explicit #192
- Name downloaded song files by song title #173
- Replace divider in long-press menu with a wave border
- Add cache/sync system for local song files
- Hardcoded lyrics tokenisation improvements:
- Replace some Hanzi with their Kanji variants
- Replace some incorrect tokenisations
- Move some multiselect actions to a separate floating dialog
- Use playlist accent colour for load fail error info display
- Add listen count text to player overlay menu
- Increase multiselect info display top row height, move divider into row and replace with wave border
- When clicking on an item in a local artist page, add all items to the queue along with it
- Add multiselect to local artist page
- Add back navigation queue for player overlay menu
- Add option to hide player seek bar gradient
- Add UI scale slider
- Use responsive buttons for queue shuffle and clear that shrink to icons if needed
- Display expanded home feed grid with the minimum amount of needed rows
- Improve library navigation
Bugs fixed
- Incorrect song feed and song related content page padding
- Incorrect handling of system language containing two parts #199
- Crash on startup when partial downloads are present
- Selecting the current item in the song queue restarts playback
- Crash on Discord status settings open
- Incorrect colouring of:
- Player overlay title text field
- Player overlay related content item text
- Long-press menu item preview and pin button
- Artist name in player disappears when text is too long
- Pinned item row pop-in animation occurs even when no items are pinned
- Crash on theme deletion in some cases #209
- Error occurs when loading some playlists #211
- Navigation bar button colour not updating #198
- Can't remove items from account playlist #179
- Multiselect batch items not available on some pages
- Player background colour freezes when the player state is reset
- Incorrect long-press menu colouring during open/close animation
- Manual login text field hidden by minimised player
- Incorrect top bar transparency in artist page when 'Display over main image on artist page' enabled
- YoutubeChannelNotCreatedException not handled during manual YouTube login
- Pinning a local playlist and deleting the local playlist causes a crash on subsequent startups #223
- Database migration not working #161
- Crash when starting download on Android 14
- Incorrect vertical spacing and missing background segment in artist page with single layout
- UI freeze on Android when starting downloads #207
- Player expands when opening a playlist from some pages
Full Changelog: v0.2.4...v0.3.0
v0.2.4
Full Changelog: v0.2.3...v0.2.4
Main changes
- Add home feed row size options #110
- Add landscape player layout (will be improved in future updates) #163
- Improve player layout on smaller screens
- Store lyrics to library file when downloading song #125
- Implement database migration
- Add option to change queue item swipe dismiss sensitivity #78
- Add option to increase padding on queue sides
Other changes
- Add option to not start radio on song press #187
- Show commit/tag information of build in settings
- Only store required login headers
- Don't cancel queue multiselection on shuffle button press
- Move current song to start of queue on long-press of shuffle button
- Prevent music video playback of album songs #136
- Add custom song status webhook option 87d2539
- Use Shape instead of Canvas for WaveBorder rendering (fixes rendering issues on some Android versions)
Bugs fixed
- NetworkOnMainThreadException when attempting to sign in to YouTube
- Crash when pinning local playlist #177
- Crash when starting radio of local playlist #178
- Total duration of local playlists not displaying
- DataParseException when logging into YT Music due to excessive header storage #176
- Recursive loop when saving item data under certain conditions #181 #184
- Incorrect English string for s_key_resume_on_wired_connect #186 (by @opusforlife2)
- Download notification progress bar not including completed/failed downloads
v0.2.3
Full Changelog: v0.2.2...v0.2.3
Main changes
- Add support for reproducible builds #162
- Fix losing state such as the current radio when closing activity #159
- Fix crash when using es-US language
- Add options to adjust lyrics sync delay
- Add artist radio shortcut button (may be incomplete)
- Add per-song 'disable lyrics' button
- Several fixes to incorrect item metadata loading
Other changes
- Handle system back action in long-press menu and multiselect info display
- Reduce padding below queue radio filters
- Implement queue radio position option selection
- Increase player font size
- Add padding to MainPageTopBar
- Add padding to playlist select menu
- Add 'select all' button to artist view more page multiselect
Bugs fixed
- Main multiselect actions (ex. for adding selected songs to queue) not displaying in all pages
- Manual login text field displaying incorrectly and not allowing input #164
- Notification not clearing when service stopped
- Artist titles sometimes display as "Videos"
- Artist view more page:
- Non-preloaded items not displaying metadata
- Items cannot be multiselected
- Too much top padding
- Not queueing all items on click
- Media service started before required #144
- Playlist not queueing all items on click
- Display "Add songs to YouTube history" below the account box
- WebView cookies not cleared properly
v0.2.2
Full Changelog: v0.2.1...v0.2.2
Main changes
- Add search suggestions
- Lower minimum version to Android 6 (Experimental, expect issues)
- Improve kanji readings generation
- Split combined readings ({無理: むり} -> {無: む, 理: り})
- Remove (safe) hiragana readings ({吐き出: はきだ} -> {吐: は, き: null, 出: だ})
- Skip downloading existing songs #153
- Add option to clear queue on downward player overscroll #146
- Replace Firebase (added in v0.2.1) with Supabase #155
Other changes
- Add logcat collection and Paste.ee upload button to ErrorReportActivity
- Remove unused secrets from Android workflow and update APK names
- Remove NewPipeExtractor
- Add retry button to song feed and search page load errors
- Clear external error on library page closed
- Swap long-press menu info button and side button positions
- Add Fastlane metadata
- Reimplement notification open intent
Bugs fixed
- Loss of radio state and brief UI flicker when restoring minimised app
- Song feed load errors not being displayed when cache exists
- Search results not displaying under search bar
- Vertical alignment of some large character in lyrics text
- Incorrect action_confirm string reference
- onCompleted not being invoked after startDownload called
- Incorrect settings/radio builder icon display state
- Incorrect ErrorInfoDisplay theming with dark backgrounds
- Search page doesn't allow retry after failure
v0.2.1
Note
If upgrading from v0.2.0, you may have to clear the app's data
Full Changelog: v0.2.0...v0.2.1
New Contributors
Main changes
- Song feed rows can now be hidden by title, or by long-pressing their header
- Change default video format endpoint to Youtubei (this drastically improves stream load times)
- Add option to change video format endpoint between Youtubei, Piped, and NewPipe
- Add local artists tab to library
- Add select all button to playlist page
- Add download indicator to media previews, with option to toggle display on song feed page
- Add options to pause/resume playback on audio device added/removed
- Add options to disable Discord status based on user online status
- Resume playback on playing item change
- Open library page on feed load failure
- Add warning for Discord RPC usage risks
Other changes
- Delay accent colour reset on song change by 1 second #141
- Display indicator while song duration loads
- Reduce radio indicator item preview height
- Add player overlay menu custom action options
- Index Discord status images using an external database, as reading directly from Discord was too slow
- Add navigation bar height multiplier setting #129
- Add option to toggle the 'previous' button in the minimised player
- Align radio builder icon
- Hide entire bar when FEED_SHOW_FILTER_BAR is disabled #148
- Implement playlist long-press menu playback actions
- Keyboard height padding is no longer applied to the player while an image overlay page is
- Add MUTE_PLAYER debug key
Bugs fixed
- Lyrics search button not displaying if current lyrics are synced
- Crash on theme save
- Crash when adding item to playlist on older Android versions #100
- Playlist item add not working from long-press menu
- Radio builder playlist title not displaying
- Crash on playlist reorder
- Crash on start due to NotImplementedError in MusicTwoRowItemRenderer.toMediaItem #140
- Accent colour not updating in some cases #143
- Theme delete button removes wrong theme
- Settings subpage back gesture takes priority over player menu #145
- Notification buttons don't appear on Android versions below 13 #151
- Non-functional notification like button
- Notification image offset doesn't apply
- Main lyrics display text doesn't wrap for non-Japanese text
- Top bar lyrics don't wrap for non-Japanese text #122
- Long-press menu info text has incorrect height during transition
- Incorrect NP gradient placement on overscroll
- Long-press menu info button not appearing in some cases
- Green box displayed when feed load fails (whoops)
- Crash on concurrent unlocalised string report
- Duplicate top bar in library profile page
v0.2.0
Full Changelog: v0.1.4...v0.2.0
New Contributors
- Polish translation added by @WaldiSt in #101
- Slight improvements to the bug report template by @opusforlife2 in #115
- Thanks to @Zaxx69, @PFARN, and others on the Discord server for their help with testing
Major changes
Partially redesigned home page
- Removed floating pill menu
- Moved settings, search, and library buttons to the top bar
- Moved radio builder button to the library page (it can also be accessed by long-pressing the library button)
- The search and library pages are now integrated more closely into the main page
Completely redesigned library page
- Three tabs are currently implemented (more are planned)
- The playlists page shows local playlists and account playlists separately
- The songs page displays locally stored songs with stats such as play count
- If logged in, the profile page shows your YouTube Music profile
- Completely rewrote backend code for loading and storing media #93
- Replaced Klaxon with Gson, dramatically improving load times for the song feed, radios, etc.
- The library folder, which contains downloaded media, can now be set to a custom location #126
- Local playlists are now stored as m3u files within the library folder #124
- Improved consistency and reliability of song feed cache and persistent queue
- KuGou is now the default lyrics source
New features
- Full Material You theming support #80
- Playlist continuation button for lists longer than 100 songs #112
- Pull-to-refresh to artist and playlist pages #88
- YouTube Music lyrics source #104
- Option to stop playback on app close #131
- Customisable media item filtering by keyword #77
- Added a system for displaying and reporting errors
- YouTube/Google brand account switcher #86
- Android 13 monochrome launcher icon #74
- Added a development section to the settings containing a list of external strings that haven't been localised, and several UI constraints
Bugs fixed
- Incorrect UI for search and player page/bar on some Android configurations #119 #123 #79
- Crash on first launch if system language is unsupported #111
- Crash when handling unknown strings in some cases #96
- Cannot login to YouTube Music if account channel is not created #91
- No media info on the lock screen #103
- NullPointerException on radio load while signed in #72
- Crash when handling unknown browse endpoint type #114
v0.1.4
This is a minor release which addresses an app-breaking bug. A full release will be published in the near future.
Increased NewPipeExtractor version from v0.22.1 to v0.22.7. This should fix issues with songs not loading.
v0.1.3
Full Changelog: v0.1.2...v0.1.3
Fix crash when using a language that the app hasn't been localised for (#70)
Add Kugou lyrics source (#63)
Fix non-Japanese lyrics loading