mirror of
https://gitlab.com/ultrasonic/ultrasonic.git
synced 2025-04-18 18:17:43 +03:00
Merge remote-tracking branch 'origin/master' into mergeBack
This commit is contained in:
commit
691bfbe594
15
fastlane/metadata/android/en-US/changelogs/124.txt
Normal file
15
fastlane/metadata/android/en-US/changelogs/124.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Features:
|
||||||
|
- Search is accessible through a new icon on the main screen
|
||||||
|
- Modernize Back Handling
|
||||||
|
- Reenable R8 Code minification
|
||||||
|
- Add a "Play Random Songs" shortcut
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
- Readd the "Star" button to the Now Playing screen
|
||||||
|
- Fix a rare crash when shuffling playlists with duplicate entries
|
||||||
|
- Fix a crash when choosing "Play next" on an empty playlist.
|
||||||
|
- Tracks buttons flash a scrollbar sometimes in Android 13
|
||||||
|
- Fix EndlessScrolling in genre listing
|
||||||
|
- Couldn't delete a track when shuffle was active
|
||||||
|
- Upgrade material to 1.9.0
|
||||||
|
|
15
fastlane/metadata/android/en-US/changelogs/125.txt
Normal file
15
fastlane/metadata/android/en-US/changelogs/125.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Features:
|
||||||
|
- Search is accessible through a new icon on the main screen
|
||||||
|
- Modernize Back Handling
|
||||||
|
- Reenable R8 Code minification
|
||||||
|
- Add a "Play Random Songs" shortcut
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
- Avoid triggering a bug in Supysonic
|
||||||
|
- Readd the "Star" button to the Now Playing screen
|
||||||
|
- Fix a rare crash when shuffling playlists with duplicate entries
|
||||||
|
- Fix a crash when choosing "Play next" on an empty playlist.
|
||||||
|
- Tracks buttons flash a scrollbar sometimes in Android 13
|
||||||
|
- Fix EndlessScrolling in genre listing
|
||||||
|
- Couldn't delete a track when shuffle was active
|
||||||
|
|
15
fastlane/metadata/android/en-US/changelogs/126.txt
Normal file
15
fastlane/metadata/android/en-US/changelogs/126.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Features:
|
||||||
|
- Search is accessible through a new icon on the main screen
|
||||||
|
- Modernize Back Handling
|
||||||
|
- Reenable R8 Code minification
|
||||||
|
- Add a "Play Random Songs" shortcut
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
- Fix a few crashes
|
||||||
|
- Avoid triggering a bug in Supysonic
|
||||||
|
- Readd the "Star" button to the Now Playing screen
|
||||||
|
- Fix a rare crash when shuffling playlists with duplicate entries
|
||||||
|
- Fix a crash when choosing "Play next" on an empty playlist.
|
||||||
|
- Tracks buttons flash a scrollbar sometimes in Android 13
|
||||||
|
- Fix EndlessScrolling in genre listing
|
||||||
|
- Couldn't delete a track when shuffle was active
|
@ -9,8 +9,8 @@ android {
|
|||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "org.moire.ultrasonic"
|
applicationId "org.moire.ultrasonic"
|
||||||
versionCode 123
|
versionCode 126
|
||||||
versionName "4.6.0"
|
versionName "4.6.3"
|
||||||
|
|
||||||
minSdkVersion versions.minSdk
|
minSdkVersion versions.minSdk
|
||||||
targetSdkVersion versions.targetSdk
|
targetSdkVersion versions.targetSdk
|
||||||
|
@ -248,7 +248,10 @@ class MediaPlayerManager(
|
|||||||
mediaControllerFuture = MediaController.Builder(
|
mediaControllerFuture = MediaController.Builder(
|
||||||
context,
|
context,
|
||||||
sessionToken
|
sessionToken
|
||||||
).buildAsync()
|
)
|
||||||
|
// Specify mainThread explicitely
|
||||||
|
.setApplicationLooper(Looper.getMainLooper())
|
||||||
|
.buildAsync()
|
||||||
|
|
||||||
mediaControllerFuture?.addListener({
|
mediaControllerFuture?.addListener({
|
||||||
controller = mediaControllerFuture?.get()
|
controller = mediaControllerFuture?.get()
|
||||||
|
@ -12,6 +12,11 @@ import org.moire.ultrasonic.domain.Track
|
|||||||
|
|
||||||
class RxBus {
|
class RxBus {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IMPORTANT: methods like .delay() or .throttle() will implicitly change the thread to the
|
||||||
|
* RxComputationScheduler. Always use the function call with the additional arguments of the
|
||||||
|
* desired scheduler
|
||||||
|
**/
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
fun mainThread(): Scheduler = AndroidSchedulers.mainThread()
|
fun mainThread(): Scheduler = AndroidSchedulers.mainThread()
|
||||||
@ -52,7 +57,8 @@ class RxBus {
|
|||||||
playerStatePublisher
|
playerStatePublisher
|
||||||
.replay(1)
|
.replay(1)
|
||||||
.autoConnect(0)
|
.autoConnect(0)
|
||||||
.throttleLatest(300, TimeUnit.MILLISECONDS)
|
// Need to specify thread, see comment at beginning
|
||||||
|
.throttleLatest(300, TimeUnit.MILLISECONDS, mainThread())
|
||||||
|
|
||||||
val playlistPublisher: PublishSubject<List<Track>> =
|
val playlistPublisher: PublishSubject<List<Track>> =
|
||||||
PublishSubject.create()
|
PublishSubject.create()
|
||||||
@ -64,7 +70,8 @@ class RxBus {
|
|||||||
playlistPublisher
|
playlistPublisher
|
||||||
.replay(1)
|
.replay(1)
|
||||||
.autoConnect(0)
|
.autoConnect(0)
|
||||||
.throttleLatest(300, TimeUnit.MILLISECONDS)
|
// Need to specify thread, see comment at beginning
|
||||||
|
.throttleLatest(300, TimeUnit.MILLISECONDS, mainThread())
|
||||||
|
|
||||||
val trackDownloadStatePublisher: PublishSubject<TrackDownloadState> =
|
val trackDownloadStatePublisher: PublishSubject<TrackDownloadState> =
|
||||||
PublishSubject.create()
|
PublishSubject.create()
|
||||||
|
@ -235,11 +235,9 @@ class CacheCleaner : CoroutineScope by CoroutineScope(Dispatchers.IO), KoinCompo
|
|||||||
|
|
||||||
private fun findFilesToNotDelete(): Set<String> {
|
private fun findFilesToNotDelete(): Set<String> {
|
||||||
val filesToNotDelete: MutableSet<String> = HashSet(5)
|
val filesToNotDelete: MutableSet<String> = HashSet(5)
|
||||||
val mediaController = inject<MediaPlayerManager>(
|
val mediaPlayerManager: MediaPlayerManager by inject()
|
||||||
MediaPlayerManager::class.java
|
|
||||||
)
|
|
||||||
|
|
||||||
val playlist = mainScope.future { mediaController.value.playlist }.get()
|
val playlist = mainScope.future { mediaPlayerManager.playlist }.get()
|
||||||
for (item in playlist) {
|
for (item in playlist) {
|
||||||
val track = item.toTrack()
|
val track = item.toTrack()
|
||||||
filesToNotDelete.add(track.getPartialFile())
|
filesToNotDelete.add(track.getPartialFile())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user