Skip to content

Commit b300a00

Browse files
committed
优化
1 parent ef222da commit b300a00

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

Diff for: app/src/main/java/io/legado/app/service/AudioPlayService.kt

+18-10
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.content.BroadcastReceiver
55
import android.content.Context
66
import android.content.Intent
77
import android.content.IntentFilter
8+
import android.graphics.Bitmap
89
import android.graphics.BitmapFactory
910
import android.media.AudioManager
1011
import android.os.Build
@@ -37,6 +38,7 @@ import io.legado.app.ui.book.audio.AudioPlayActivity
3738
import io.legado.app.utils.*
3839
import kotlinx.coroutines.*
3940
import kotlinx.coroutines.Dispatchers.Main
41+
import splitties.init.appCtx
4042
import splitties.systemservices.audioManager
4143
import splitties.systemservices.powerManager
4244

@@ -92,6 +94,8 @@ class AudioPlayService : BaseService(),
9294
private var dsJob: Job? = null
9395
private var upPlayProgressJob: Job? = null
9496
private var playSpeed: Float = 1f
97+
private var cover: Bitmap =
98+
BitmapFactory.decodeResource(appCtx.resources, R.drawable.icon_read_book)
9599

96100
override fun onCreate() {
97101
super.onCreate()
@@ -101,6 +105,18 @@ class AudioPlayService : BaseService(),
101105
initBroadcastReceiver()
102106
upMediaSessionPlaybackState(PlaybackStateCompat.STATE_PLAYING)
103107
doDs()
108+
execute {
109+
@Suppress("BlockingMethodInNonBlockingContext")
110+
ImageLoader
111+
.loadBitmap(this@AudioPlayService, AudioPlay.book?.getDisplayCover())
112+
.submit()
113+
.get()
114+
}.onSuccess {
115+
val tmpCover = cover
116+
cover = it
117+
upNotification()
118+
tmpCover.recycle()
119+
}
104120
}
105121

106122
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
@@ -141,6 +157,7 @@ class AudioPlayService : BaseService(),
141157
upMediaSessionPlaybackState(PlaybackStateCompat.STATE_STOPPED)
142158
AudioPlay.status = Status.STOP
143159
postEvent(EventBus.AUDIO_STATE, Status.STOP)
160+
cover.recycle()
144161
}
145162

146163
/**
@@ -569,16 +586,7 @@ class AudioPlayService : BaseService(),
569586
.setContentIntent(
570587
activityPendingIntent<AudioPlayActivity>("activity")
571588
)
572-
kotlin.runCatching {
573-
ImageLoader
574-
.loadBitmap(this@AudioPlayService, AudioPlay.book?.getDisplayCover())
575-
.submit()
576-
.get()
577-
}.getOrElse {
578-
BitmapFactory.decodeResource(resources, R.drawable.icon_read_book)
579-
}.let {
580-
builder.setLargeIcon(it)
581-
}
589+
builder.setLargeIcon(cover)
582590
if (pause) {
583591
builder.addAction(
584592
R.drawable.ic_play_24dp,

0 commit comments

Comments
 (0)