@@ -5,6 +5,7 @@ import android.content.BroadcastReceiver
5
5
import android.content.Context
6
6
import android.content.Intent
7
7
import android.content.IntentFilter
8
+ import android.graphics.Bitmap
8
9
import android.graphics.BitmapFactory
9
10
import android.media.AudioManager
10
11
import android.os.Build
@@ -37,6 +38,7 @@ import io.legado.app.ui.book.audio.AudioPlayActivity
37
38
import io.legado.app.utils.*
38
39
import kotlinx.coroutines.*
39
40
import kotlinx.coroutines.Dispatchers.Main
41
+ import splitties.init.appCtx
40
42
import splitties.systemservices.audioManager
41
43
import splitties.systemservices.powerManager
42
44
@@ -92,6 +94,8 @@ class AudioPlayService : BaseService(),
92
94
private var dsJob: Job ? = null
93
95
private var upPlayProgressJob: Job ? = null
94
96
private var playSpeed: Float = 1f
97
+ private var cover: Bitmap =
98
+ BitmapFactory .decodeResource(appCtx.resources, R .drawable.icon_read_book)
95
99
96
100
override fun onCreate () {
97
101
super .onCreate()
@@ -101,6 +105,18 @@ class AudioPlayService : BaseService(),
101
105
initBroadcastReceiver()
102
106
upMediaSessionPlaybackState(PlaybackStateCompat .STATE_PLAYING )
103
107
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
+ }
104
120
}
105
121
106
122
override fun onStartCommand (intent : Intent ? , flags : Int , startId : Int ): Int {
@@ -141,6 +157,7 @@ class AudioPlayService : BaseService(),
141
157
upMediaSessionPlaybackState(PlaybackStateCompat .STATE_STOPPED )
142
158
AudioPlay .status = Status .STOP
143
159
postEvent(EventBus .AUDIO_STATE , Status .STOP )
160
+ cover.recycle()
144
161
}
145
162
146
163
/* *
@@ -569,16 +586,7 @@ class AudioPlayService : BaseService(),
569
586
.setContentIntent(
570
587
activityPendingIntent<AudioPlayActivity >(" activity" )
571
588
)
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)
582
590
if (pause) {
583
591
builder.addAction(
584
592
R .drawable.ic_play_24dp,
0 commit comments