Add background to app shortcut chip icons
This commit is contained in:
parent
5ed97265a0
commit
b4f5db72de
@ -10,11 +10,13 @@ import android.content.pm.LauncherApps
|
|||||||
import android.content.pm.PackageInstaller
|
import android.content.pm.PackageInstaller
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.content.res.ColorStateList
|
import android.content.res.ColorStateList
|
||||||
|
import android.graphics.Color
|
||||||
import android.graphics.PorterDuff
|
import android.graphics.PorterDuff
|
||||||
import android.graphics.PorterDuffColorFilter
|
import android.graphics.PorterDuffColorFilter
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.graphics.drawable.LayerDrawable
|
import android.graphics.drawable.LayerDrawable
|
||||||
import android.graphics.drawable.ShapeDrawable
|
import android.graphics.drawable.ShapeDrawable
|
||||||
|
import android.graphics.drawable.VectorDrawable
|
||||||
import android.graphics.drawable.shapes.OvalShape
|
import android.graphics.drawable.shapes.OvalShape
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
@ -29,7 +31,6 @@ import androidx.core.content.getSystemService
|
|||||||
import androidx.core.graphics.alpha
|
import androidx.core.graphics.alpha
|
||||||
import androidx.lifecycle.LifecycleOwner
|
import androidx.lifecycle.LifecycleOwner
|
||||||
import androidx.lifecycle.Observer
|
import androidx.lifecycle.Observer
|
||||||
import androidx.lifecycle.ViewModelProvider
|
|
||||||
import androidx.transition.Scene
|
import androidx.transition.Scene
|
||||||
import com.google.android.material.chip.Chip
|
import com.google.android.material.chip.Chip
|
||||||
import com.google.android.material.chip.ChipGroup
|
import com.google.android.material.chip.ChipGroup
|
||||||
@ -238,7 +239,7 @@ class ApplicationDetailRepresentation : Representation, KoinComponent {
|
|||||||
if (!NotificationCompat.isGroupSummary(it.notification)) {
|
if (!NotificationCompat.isGroupSummary(it.notification)) {
|
||||||
val view = Chip(context)
|
val view = Chip(context)
|
||||||
view.text = title
|
view.text = title
|
||||||
view.chipIcon = getNotificationChipIcon(context, it.notification)
|
view.chipIcon = createShortcutDrawable(getNotificationChipIcon(context, it.notification))
|
||||||
view.chipStrokeWidth = 1 * context.dp
|
view.chipStrokeWidth = 1 * context.dp
|
||||||
view.chipStrokeColor = ContextCompat.getColorStateList(context, R.color.chip_stroke)
|
view.chipStrokeColor = ContextCompat.getColorStateList(context, R.color.chip_stroke)
|
||||||
view.chipBackgroundColor =
|
view.chipBackgroundColor =
|
||||||
@ -270,7 +271,7 @@ class ApplicationDetailRepresentation : Representation, KoinComponent {
|
|||||||
if (launcherApps.hasShortcutHostPermission()) {
|
if (launcherApps.hasShortcutHostPermission()) {
|
||||||
val shortcuts = app.shortcuts
|
val shortcuts = app.shortcuts
|
||||||
|
|
||||||
val viewModel : FavoritesViewModel by (context as AppCompatActivity).viewModel()
|
val viewModel: FavoritesViewModel by (context as AppCompatActivity).viewModel()
|
||||||
|
|
||||||
var count = 0
|
var count = 0
|
||||||
for (si in shortcuts) {
|
for (si in shortcuts) {
|
||||||
@ -279,11 +280,12 @@ class ApplicationDetailRepresentation : Representation, KoinComponent {
|
|||||||
val view = Chip(context)
|
val view = Chip(context)
|
||||||
view.text = si.label
|
view.text = si.label
|
||||||
|
|
||||||
|
view.chipIcon = createShortcutDrawable(launcherApps.getShortcutBadgedIconDrawable(
|
||||||
view.chipIcon = launcherApps.getShortcutBadgedIconDrawable(
|
|
||||||
si.launcherShortcut,
|
si.launcherShortcut,
|
||||||
context.resources.displayMetrics.densityDpi
|
context.resources.displayMetrics.densityDpi
|
||||||
)
|
))
|
||||||
|
|
||||||
|
view.chipIconSize = 24 * context.dp
|
||||||
|
|
||||||
view.chipIconTint = null
|
view.chipIconTint = null
|
||||||
|
|
||||||
@ -328,6 +330,19 @@ class ApplicationDetailRepresentation : Representation, KoinComponent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun createShortcutDrawable(drawable: Drawable?): Drawable {
|
||||||
|
val bgShape = ShapeDrawable(OvalShape()).apply {
|
||||||
|
paint.color = 0xFFF5F5F5.toInt()
|
||||||
|
}
|
||||||
|
if (drawable == null) return bgShape
|
||||||
|
return LayerDrawable(
|
||||||
|
arrayOf(
|
||||||
|
bgShape,
|
||||||
|
drawable
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
private fun getNotificationChipIcon(context: Context, notification: Notification): Drawable? {
|
private fun getNotificationChipIcon(context: Context, notification: Notification): Drawable? {
|
||||||
return notification.getBadgeIcon(context, context.packageName)?.let {
|
return notification.getBadgeIcon(context, context.packageName)?.let {
|
||||||
val _4dp = (4 * context.dp).roundToInt()
|
val _4dp = (4 * context.dp).roundToInt()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user