Using Drawable Extensions to convert drawables to bitmaps
This commit is contained in:
parent
c09e39b23f
commit
b9c580ca3f
2 changed files with 33 additions and 37 deletions
|
@ -22,6 +22,7 @@ import android.graphics.drawable.BitmapDrawable
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import androidx.annotation.DimenRes
|
import androidx.annotation.DimenRes
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
|
import androidx.core.graphics.drawable.toBitmap
|
||||||
|
|
||||||
fun Context.scaledDrawableResources(
|
fun Context.scaledDrawableResources(
|
||||||
@DrawableRes id: Int,
|
@DrawableRes id: Int,
|
||||||
|
@ -39,6 +40,10 @@ fun Context.scaledDrawable(@DrawableRes id: Int, width: Int, height: Int): Drawa
|
||||||
return BitmapDrawable(resources, bmpScaled)
|
return BitmapDrawable(resources, bmpScaled)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Drawable.toBitmap(scaleFactor: Float, config: Bitmap.Config? = null): Bitmap {
|
||||||
|
return toBitmap((intrinsicHeight*scaleFactor).toInt(), (intrinsicWidth*scaleFactor).toInt(), config)
|
||||||
|
}
|
||||||
|
|
||||||
fun Drawable.getBitmapDrawable(): Bitmap {
|
fun Drawable.getBitmapDrawable(): Bitmap {
|
||||||
val bmp = Bitmap.createBitmap(bounds.width(), bounds.height(), Bitmap.Config.ARGB_8888)
|
val bmp = Bitmap.createBitmap(bounds.width(), bounds.height(), Bitmap.Config.ARGB_8888)
|
||||||
val canvas = Canvas(bmp)
|
val canvas = Canvas(bmp)
|
||||||
|
|
|
@ -25,6 +25,7 @@ import android.graphics.Color
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.widget.RemoteViews
|
import android.widget.RemoteViews
|
||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
|
import androidx.core.graphics.drawable.toBitmap
|
||||||
import androidx.media.app.NotificationCompat.DecoratedMediaCustomViewStyle
|
import androidx.media.app.NotificationCompat.DecoratedMediaCustomViewStyle
|
||||||
import code.name.monkey.appthemehelper.util.ATHUtil.resolveColor
|
import code.name.monkey.appthemehelper.util.ATHUtil.resolveColor
|
||||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
|
@ -34,6 +35,7 @@ import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.activities.MainActivity
|
import code.name.monkey.retromusic.activities.MainActivity
|
||||||
import code.name.monkey.retromusic.extensions.isColorLight
|
import code.name.monkey.retromusic.extensions.isColorLight
|
||||||
import code.name.monkey.retromusic.extensions.isSystemDarkModeEnabled
|
import code.name.monkey.retromusic.extensions.isSystemDarkModeEnabled
|
||||||
|
import code.name.monkey.retromusic.extensions.toBitmap
|
||||||
import code.name.monkey.retromusic.glide.GlideApp
|
import code.name.monkey.retromusic.glide.GlideApp
|
||||||
import code.name.monkey.retromusic.glide.RetroGlideExtension
|
import code.name.monkey.retromusic.glide.RetroGlideExtension
|
||||||
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
||||||
|
@ -45,7 +47,6 @@ import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_SKIP
|
||||||
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import code.name.monkey.retromusic.util.RetroUtil
|
import code.name.monkey.retromusic.util.RetroUtil
|
||||||
import code.name.monkey.retromusic.util.RetroUtil.createBitmap
|
|
||||||
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
|
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
|
||||||
import com.bumptech.glide.request.target.CustomTarget
|
import com.bumptech.glide.request.target.CustomTarget
|
||||||
import com.bumptech.glide.request.transition.Transition
|
import com.bumptech.glide.request.transition.Transition
|
||||||
|
@ -183,27 +184,23 @@ class PlayingNotificationClassic(
|
||||||
val secondary = MaterialValueHelper.getSecondaryTextColor(context, dark)
|
val secondary = MaterialValueHelper.getSecondaryTextColor(context, dark)
|
||||||
primaryColor = primary
|
primaryColor = primary
|
||||||
|
|
||||||
val close = createBitmap(
|
val close = RetroUtil.getTintedVectorDrawable(
|
||||||
RetroUtil.getTintedVectorDrawable(
|
|
||||||
context,
|
context,
|
||||||
R.drawable.ic_close,
|
R.drawable.ic_close,
|
||||||
primary
|
primary
|
||||||
), NOTIFICATION_CONTROLS_SIZE_MULTIPLIER
|
).toBitmap()
|
||||||
)
|
val prev =
|
||||||
val prev = createBitmap(
|
|
||||||
RetroUtil.getTintedVectorDrawable(
|
RetroUtil.getTintedVectorDrawable(
|
||||||
context,
|
context,
|
||||||
R.drawable.ic_skip_previous_round_white_32dp,
|
R.drawable.ic_skip_previous_round_white_32dp,
|
||||||
primary
|
primary
|
||||||
), NOTIFICATION_CONTROLS_SIZE_MULTIPLIER
|
).toBitmap()
|
||||||
)
|
val next =
|
||||||
val next = createBitmap(
|
|
||||||
RetroUtil.getTintedVectorDrawable(
|
RetroUtil.getTintedVectorDrawable(
|
||||||
context,
|
context,
|
||||||
R.drawable.ic_skip_next_round_white_32dp,
|
R.drawable.ic_skip_next_round_white_32dp,
|
||||||
primary
|
primary
|
||||||
), NOTIFICATION_CONTROLS_SIZE_MULTIPLIER
|
).toBitmap()
|
||||||
)
|
|
||||||
val playPause = getPlayPauseBitmap(true)
|
val playPause = getPlayPauseBitmap(true)
|
||||||
|
|
||||||
contentView.setTextColor(R.id.title, primary)
|
contentView.setTextColor(R.id.title, primary)
|
||||||
|
@ -225,38 +222,32 @@ class PlayingNotificationClassic(
|
||||||
|
|
||||||
contentView.setImageViewBitmap(
|
contentView.setImageViewBitmap(
|
||||||
R.id.smallIcon,
|
R.id.smallIcon,
|
||||||
createBitmap(
|
|
||||||
RetroUtil.getTintedVectorDrawable(
|
RetroUtil.getTintedVectorDrawable(
|
||||||
context,
|
context,
|
||||||
R.drawable.ic_notification,
|
R.drawable.ic_notification,
|
||||||
secondary
|
secondary
|
||||||
), 0.6f
|
).toBitmap(0.6f)
|
||||||
)
|
|
||||||
)
|
)
|
||||||
bigContentView.setImageViewBitmap(
|
bigContentView.setImageViewBitmap(
|
||||||
R.id.smallIcon,
|
R.id.smallIcon,
|
||||||
createBitmap(
|
|
||||||
RetroUtil.getTintedVectorDrawable(
|
RetroUtil.getTintedVectorDrawable(
|
||||||
context,
|
context,
|
||||||
R.drawable.ic_notification,
|
R.drawable.ic_notification,
|
||||||
secondary
|
secondary
|
||||||
), 0.6f
|
).toBitmap(0.6f)
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getPlayPauseBitmap(isPlaying: Boolean): Bitmap {
|
private fun getPlayPauseBitmap(isPlaying: Boolean): Bitmap {
|
||||||
return createBitmap(
|
return RetroUtil.getTintedVectorDrawable(
|
||||||
RetroUtil.getTintedVectorDrawable(
|
|
||||||
context,
|
context,
|
||||||
if (isPlaying)
|
if (isPlaying)
|
||||||
R.drawable.ic_pause_white_48dp
|
R.drawable.ic_pause_white_48dp
|
||||||
else
|
else
|
||||||
R.drawable.ic_play_arrow_white_48dp, primaryColor
|
R.drawable.ic_play_arrow_white_48dp, primaryColor
|
||||||
), NOTIFICATION_CONTROLS_SIZE_MULTIPLIER
|
).toBitmap()
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setPlaying(isPlaying: Boolean) {
|
override fun setPlaying(isPlaying: Boolean) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue