Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e28dcd62 authored by Michael Mikhail's avatar Michael Mikhail
Browse files

Create a thread for MediaDataManager.

loading bitmap takes a long time. This makes the background handler
stuck and unable to execute tile clicks. This CL creates a new thread
for MediaDataManager class that is reponsible for loading bitmap of UMO.

Bug: 301287566
Test: atest MediaDataManagerTest
Test: Manual check on device playing media.
Test: used perfetto to verify that loading bitmap runs on a separate thread.
Change-Id: Ie2207c06cb203a399450c1d4e84a0bef0b068c08
parent fadc89a6
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ import com.android.systemui.tuner.TunerService
import com.android.systemui.util.Assert
import com.android.systemui.util.Utils
import com.android.systemui.util.concurrency.DelayableExecutor
import com.android.systemui.util.concurrency.ThreadFactory
import com.android.systemui.util.time.SystemClock
import com.android.systemui.util.traceSection
import java.io.IOException
@@ -245,7 +246,7 @@ class MediaDataManager(
    @Inject
    constructor(
        context: Context,
        @Background backgroundExecutor: Executor,
        threadFactory: ThreadFactory,
        @Main uiExecutor: Executor,
        @Main foregroundExecutor: DelayableExecutor,
        mediaControllerFactory: MediaControllerFactory,
@@ -267,7 +268,9 @@ class MediaDataManager(
        keyguardUpdateMonitor: KeyguardUpdateMonitor,
    ) : this(
        context,
        backgroundExecutor,
        // Loading bitmap for UMO background can take longer time, so it cannot run on the default
        // background thread. Use a custom thread for media.
        threadFactory.buildExecutorOnNewThread(TAG),
        uiExecutor,
        foregroundExecutor,
        mediaControllerFactory,