From 647435fe55ceb4dd9f1634459d52b19ed00ca1e4 Mon Sep 17 00:00:00 2001 From: tzugen Date: Wed, 20 Apr 2022 20:57:51 +0200 Subject: [PATCH] launch restore on Main Thread --- .../moire/ultrasonic/fragment/NowPlayingFragment.kt | 1 + .../ultrasonic/service/MediaPlayerLifecycleSupport.kt | 3 --- .../ultrasonic/service/PlaybackStateSerializer.kt | 11 +++++++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/NowPlayingFragment.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/NowPlayingFragment.kt index 9a1f2489..0af42e17 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/NowPlayingFragment.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/fragment/NowPlayingFragment.kt @@ -136,6 +136,7 @@ class NowPlayingFragment : Fragment() { .navigate(R.id.trackCollectionFragment, bundle) } } + requireView().setOnTouchListener { _: View?, event: MotionEvent -> handleOnTouch(event) } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.kt index 0246fc4c..70e9df92 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.kt @@ -7,13 +7,10 @@ package org.moire.ultrasonic.service -import android.content.BroadcastReceiver import android.content.Intent import android.view.KeyEvent -import io.reactivex.rxjava3.disposables.Disposable import org.koin.core.component.KoinComponent import org.koin.core.component.inject -import org.moire.ultrasonic.app.UApp.Companion.applicationContext import org.moire.ultrasonic.util.CacheCleaner import org.moire.ultrasonic.util.Constants import org.moire.ultrasonic.util.Util.ifNotNull diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/PlaybackStateSerializer.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/PlaybackStateSerializer.kt index 7115140a..a8d62a7c 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/PlaybackStateSerializer.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/PlaybackStateSerializer.kt @@ -33,7 +33,8 @@ class PlaybackStateSerializer : KoinComponent { private val lock: Lock = ReentrantLock() private val setup = AtomicBoolean(false) - private val appScope = CoroutineScope(SupervisorJob() + Dispatchers.IO) + private val ioScope = CoroutineScope(SupervisorJob() + Dispatchers.IO) + private val mainScope = CoroutineScope(SupervisorJob() + Dispatchers.Main) fun serialize( songs: Iterable, @@ -42,7 +43,7 @@ class PlaybackStateSerializer : KoinComponent { ) { if (!setup.get()) return - appScope.launch { + ioScope.launch { if (lock.tryLock()) { try { serializeNow(songs, currentPlayingIndex, currentPlayingPosition) @@ -78,7 +79,7 @@ class PlaybackStateSerializer : KoinComponent { fun deserialize(afterDeserialized: (State?) -> Unit?) { - appScope.launch { + ioScope.launch { try { lock.lock() deserializeNow(afterDeserialized) @@ -103,6 +104,8 @@ class PlaybackStateSerializer : KoinComponent { state.currentPlayingPosition ) - afterDeserialized(state) + mainScope.launch { + afterDeserialized(state) + } } }