diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt index ddd8473fe..20f66a074 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt @@ -13,6 +13,7 @@ */ package code.name.monkey.retromusic.service +import android.annotation.SuppressLint import android.app.NotificationManager import android.appwidget.AppWidgetManager import android.bluetooth.BluetoothDevice @@ -88,10 +89,10 @@ import code.name.monkey.retromusic.util.PreferenceUtil.isPauseOnZeroVolume import code.name.monkey.retromusic.util.PreferenceUtil.playbackSpeed import code.name.monkey.retromusic.util.PreferenceUtil.registerOnSharedPreferenceChangedListener import code.name.monkey.retromusic.util.PreferenceUtil.unregisterOnSharedPreferenceChangedListener -import code.name.monkey.retromusic.util.RetroUtil import code.name.monkey.retromusic.volume.AudioVolumeObserver import code.name.monkey.retromusic.volume.OnAudioVolumeChangedListener -import com.bumptech.glide.request.target.SimpleTarget +import com.bumptech.glide.request.target.CustomTarget +import com.bumptech.glide.request.target.Target import com.bumptech.glide.request.transition.Transition import org.koin.java.KoinJavaComponent.get import java.util.* @@ -251,7 +252,6 @@ class MusicService : MediaBrowserServiceCompat(), play() TelephonyManager.CALL_STATE_RINGING, TelephonyManager.CALL_STATE_OFFHOOK -> // A call is dialing, active or on hold pause() - else -> {} } super.onCallStateChanged(state, incomingNumber) } @@ -1122,6 +1122,7 @@ class MusicService : MediaBrowserServiceCompat(), } } + @SuppressLint("CheckResult") fun updateMediaSessionMetaData() { Log.i(TAG, "onResourceReady: ") val song = currentSong @@ -1141,7 +1142,6 @@ class MusicService : MediaBrowserServiceCompat(), .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, playingQueue.size.toLong()) if (isAlbumArtOnLockScreen) { - val screenSize = RetroUtil.getScreenSize(this@MusicService) val request = GlideApp.with(this@MusicService) .asBitmap() .songCoverOptions(song) @@ -1150,7 +1150,8 @@ class MusicService : MediaBrowserServiceCompat(), request.transform(BlurTransformation.Builder(this@MusicService).build()) } runOnUiThread { - request.into(object : SimpleTarget(screenSize.x, screenSize.y) { + request.into(object : + CustomTarget(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) { override fun onLoadFailed(errorDrawable: Drawable?) { super.onLoadFailed(errorDrawable) mediaSession?.setMetadata(metaData.build()) @@ -1166,6 +1167,10 @@ class MusicService : MediaBrowserServiceCompat(), ) mediaSession?.setMetadata(metaData.build()) } + + override fun onLoadCleared(placeholder: Drawable?) { + mediaSession?.setMetadata(metaData.build()) + } }) } } else { @@ -1280,13 +1285,7 @@ class MusicService : MediaBrowserServiceCompat(), private fun openCurrent(): Boolean { return try { if (playback != null) { - return playback!!.setDataSource( - getTrackUri( - Objects.requireNonNull( - currentSong - ) - ) - ) + return playback!!.setDataSource(getTrackUri(currentSong)) } else false } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt index e65443ca6..887209ab3 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt @@ -20,10 +20,9 @@ import android.app.PendingIntent import android.content.ComponentName import android.content.Context import android.content.Intent +import android.graphics.Bitmap import android.graphics.BitmapFactory -import android.graphics.Color import android.graphics.drawable.Drawable -import android.os.Build import android.support.v4.media.session.MediaSessionCompat import androidx.core.app.NotificationCompat import androidx.core.text.parseAsHtml @@ -33,7 +32,6 @@ import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.MainActivity import code.name.monkey.retromusic.glide.GlideApp import code.name.monkey.retromusic.glide.RetroGlideExtension -import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_QUIT @@ -43,7 +41,6 @@ import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_ import code.name.monkey.retromusic.service.MusicService.Companion.TOGGLE_FAVORITE import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil -import code.name.monkey.retromusic.util.RetroColorUtil import com.bumptech.glide.request.target.CustomTarget import com.bumptech.glide.request.transition.Transition import kotlinx.coroutines.Dispatchers @@ -125,26 +122,18 @@ class PlayingNotificationImpl24( setSubText(("" + song.albumName + "").parseAsHtml()) val bigNotificationImageSize = context.resources .getDimensionPixelSize(R.dimen.notification_big_image_size) - GlideApp.with(context).asBitmapPalette().songCoverOptions(song) + GlideApp.with(context) + .asBitmap() + .songCoverOptions(song) .load(RetroGlideExtension.getSongModel(song)) //.checkIgnoreMediaStore() .centerCrop() - .into(object : CustomTarget( + .into(object : CustomTarget( bigNotificationImageSize, bigNotificationImageSize ) { - override fun onResourceReady( - resource: BitmapPaletteWrapper, - transition: Transition? - ) { - setLargeIcon( - resource.bitmap - ) - if (Build.VERSION.SDK_INT <= - Build.VERSION_CODES.O && PreferenceUtil.isColoredNotification - ) { - color = RetroColorUtil.getColor(resource.palette, Color.TRANSPARENT) - } + override fun onResourceReady(resource: Bitmap, transition: Transition?) { + setLargeIcon(resource) onUpdate() }