Merge branch 'master' into dev
This commit is contained in:
commit
3ff681b870
8 changed files with 30 additions and 12 deletions
10
CHANGELOG.md
10
CHANGELOG.md
|
@ -16,6 +16,16 @@
|
||||||
- Excessive CPU no longer spent showing music loading process
|
- Excessive CPU no longer spent showing music loading process
|
||||||
- Fixed playback sheet flickering on warm start
|
- Fixed playback sheet flickering on warm start
|
||||||
|
|
||||||
|
## 3.6.1
|
||||||
|
|
||||||
|
#### What's Fixed
|
||||||
|
- Fixed possible crash from poor service initalization
|
||||||
|
- Fixed issue where it was impossible to edit playlists
|
||||||
|
- Fixed issue where playlist would revert to older version when re-edited
|
||||||
|
|
||||||
|
#### Dev/Meta
|
||||||
|
- Fixed service memory leaks
|
||||||
|
|
||||||
## 3.6.0
|
## 3.6.0
|
||||||
|
|
||||||
#### What's New
|
#### What's New
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
<h1 align="center"><b>Auxio</b></h1>
|
<h1 align="center"><b>Auxio</b></h1>
|
||||||
<h4 align="center">A simple, rational music player for android.</h4>
|
<h4 align="center">A simple, rational music player for android.</h4>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/oxygencobalt/Auxio/releases/tag/v3.6.0">
|
<a href="https://github.com/oxygencobalt/Auxio/releases/tag/v3.6.1">
|
||||||
<img alt="Latest Version" src="https://img.shields.io/static/v1?label=tag&message=v3.6.0&color=64B5F6&style=flat">
|
<img alt="Latest Version" src="https://img.shields.io/static/v1?label=tag&message=v3.6.1&color=64B5F6&style=flat">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/oxygencobalt/Auxio/releases/">
|
<a href="https://github.com/oxygencobalt/Auxio/releases/">
|
||||||
<img alt="Releases" src="https://img.shields.io/github/downloads/OxygenCobalt/Auxio/total.svg?color=4B95DE&style=flat">
|
<img alt="Releases" src="https://img.shields.io/github/downloads/OxygenCobalt/Auxio/total.svg?color=4B95DE&style=flat">
|
||||||
|
|
|
@ -21,8 +21,8 @@ android {
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId namespace
|
applicationId namespace
|
||||||
versionName "3.6.0"
|
versionName "3.6.1"
|
||||||
versionCode 50
|
versionCode 51
|
||||||
|
|
||||||
minSdk 24
|
minSdk 24
|
||||||
targetSdk 35
|
targetSdk 35
|
||||||
|
|
|
@ -51,8 +51,8 @@ class AuxioService :
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
playbackFragment = playbackFragmentFactory.create(this, this)
|
playbackFragment = playbackFragmentFactory.create(this, this)
|
||||||
sessionToken = playbackFragment.attach()
|
|
||||||
musicFragment = musicFragmentFactory.create(this, this, this)
|
musicFragment = musicFragmentFactory.create(this, this, this)
|
||||||
|
sessionToken = playbackFragment.attach()
|
||||||
musicFragment.attach()
|
musicFragment.attach()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ import org.oxycblt.auxio.detail.list.EditHeader
|
||||||
import org.oxycblt.auxio.detail.list.SortHeader
|
import org.oxycblt.auxio.detail.list.SortHeader
|
||||||
import org.oxycblt.auxio.list.BasicHeader
|
import org.oxycblt.auxio.list.BasicHeader
|
||||||
import org.oxycblt.auxio.list.Divider
|
import org.oxycblt.auxio.list.Divider
|
||||||
|
import org.oxycblt.auxio.list.Header
|
||||||
import org.oxycblt.auxio.list.Item
|
import org.oxycblt.auxio.list.Item
|
||||||
import org.oxycblt.auxio.list.ListSettings
|
import org.oxycblt.auxio.list.ListSettings
|
||||||
import org.oxycblt.auxio.list.adapter.UpdateInstructions
|
import org.oxycblt.auxio.list.adapter.UpdateInstructions
|
||||||
|
@ -431,6 +432,7 @@ constructor(
|
||||||
// TODO: The user could probably press some kind of button if they were fast enough.
|
// TODO: The user could probably press some kind of button if they were fast enough.
|
||||||
// Think of a better way to handle this state.
|
// Think of a better way to handle this state.
|
||||||
_editedPlaylist.value = null
|
_editedPlaylist.value = null
|
||||||
|
refreshPlaylist(playlist.uid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -523,12 +525,13 @@ constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun <T : MusicParent> refreshDetail(
|
private inline fun <T : MusicParent> refreshDetail(
|
||||||
detail: Detail<T>?,
|
detail: Detail<T>?,
|
||||||
parent: MutableStateFlow<T?>,
|
parent: MutableStateFlow<T?>,
|
||||||
list: MutableStateFlow<List<Item>>,
|
list: MutableStateFlow<List<Item>>,
|
||||||
instructions: MutableEvent<UpdateInstructions>,
|
instructions: MutableEvent<UpdateInstructions>,
|
||||||
replace: Int?
|
replace: Int?,
|
||||||
|
songHeader: (Int) -> Header = { SortHeader(it) }
|
||||||
) {
|
) {
|
||||||
if (detail == null) {
|
if (detail == null) {
|
||||||
parent.value = null
|
parent.value = null
|
||||||
|
@ -541,7 +544,7 @@ constructor(
|
||||||
when (section) {
|
when (section) {
|
||||||
is DetailSection.PlainSection<*> -> {
|
is DetailSection.PlainSection<*> -> {
|
||||||
val header =
|
val header =
|
||||||
if (section is DetailSection.Songs) SortHeader(section.stringRes)
|
if (section is DetailSection.Songs) songHeader(section.stringRes)
|
||||||
else BasicHeader(section.stringRes)
|
else BasicHeader(section.stringRes)
|
||||||
if (newList.isNotEmpty()) {
|
if (newList.isNotEmpty()) {
|
||||||
newList.add(Divider(header))
|
newList.add(Divider(header))
|
||||||
|
@ -589,7 +592,9 @@ constructor(
|
||||||
if (edited == null) {
|
if (edited == null) {
|
||||||
val playlist = detailGenerator.playlist(uid)
|
val playlist = detailGenerator.playlist(uid)
|
||||||
refreshDetail(
|
refreshDetail(
|
||||||
playlist, _currentPlaylist, _playlistSongList, _playlistSongInstructions, null)
|
playlist, _currentPlaylist, _playlistSongList, _playlistSongInstructions, null) {
|
||||||
|
EditHeader(it)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
val list = mutableListOf<Item>()
|
val list = mutableListOf<Item>()
|
||||||
|
|
|
@ -113,9 +113,9 @@ private constructor(
|
||||||
*/
|
*/
|
||||||
fun release() {
|
fun release() {
|
||||||
bitmapProvider.release()
|
bitmapProvider.release()
|
||||||
|
playbackManager.removeListener(this)
|
||||||
playbackSettings.unregisterListener(this)
|
playbackSettings.unregisterListener(this)
|
||||||
imageSettings.unregisterListener(this)
|
imageSettings.unregisterListener(this)
|
||||||
playbackManager.removeListener(this)
|
|
||||||
mediaSession.apply {
|
mediaSession.apply {
|
||||||
isActive = false
|
isActive = false
|
||||||
release()
|
release()
|
||||||
|
|
|
@ -107,11 +107,11 @@ private constructor(
|
||||||
|
|
||||||
fun release() {
|
fun release() {
|
||||||
waitJob.cancel()
|
waitJob.cancel()
|
||||||
|
playbackManager.removeListener(this)
|
||||||
|
systemReceiver.release()
|
||||||
widgetComponent.release()
|
widgetComponent.release()
|
||||||
context.unregisterReceiver(systemReceiver)
|
|
||||||
sessionHolder.release()
|
sessionHolder.release()
|
||||||
exoHolder.release()
|
exoHolder.release()
|
||||||
playbackManager.removeListener(this)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onSessionEnded() {
|
override fun onSessionEnded() {
|
||||||
|
|
3
fastlane/metadata/android/en-US/changelogs/51.txt
Normal file
3
fastlane/metadata/android/en-US/changelogs/51.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Auxio 3.6.0 improves support for android auto and fixes several small regressions.
|
||||||
|
This release fixes critical issues identified in the previous version.
|
||||||
|
For more information, see https://github.com/OxygenCobalt/Auxio/releases/tag/v3.6.0.
|
Loading…
Reference in a new issue