Controls UI - Use custom icon for favoriting

Apply custom icons, if any, during add controls. Edit controls the
issue still exists but will handle separately.

Fixes: 159562131
Test: manual, mock app use TYPE_FAN
Change-Id: Ib75756a8b6fa6e78a678fc8d6ceb3e4cdaafc142
This commit is contained in:
Matt Pietal
2020-06-22 09:36:48 -04:00
parent ace942e57b
commit a2e2085cb3
3 changed files with 20 additions and 7 deletions

View File

@@ -17,6 +17,7 @@
package com.android.systemui.controls
import android.content.ComponentName
import android.graphics.drawable.Icon
import android.service.controls.Control
import android.service.controls.DeviceTypes
@@ -28,6 +29,7 @@ interface ControlInterface {
val subtitle: CharSequence
val removed: Boolean
get() = false
val customIcon: Icon?
@DeviceTypes.DeviceType val deviceType: Int
}
@@ -46,6 +48,9 @@ data class ControlStatus(
override val subtitle: CharSequence
get() = control.subtitle
override val customIcon: Icon?
get() = control.customIcon
@DeviceTypes.DeviceType override val deviceType: Int
get() = control.deviceType
}

View File

@@ -238,7 +238,7 @@ internal class ControlHolder(
updateFavorite(!favorite.isChecked)
favoriteCallback(wrapper.controlId, favorite.isChecked)
}
applyRenderInfo(renderInfo, wrapper.deviceType)
applyRenderInfo(renderInfo, wrapper)
}
override fun updateFavorite(favorite: Boolean) {
@@ -254,15 +254,19 @@ internal class ControlHolder(
return RenderInfo.lookup(itemView.context, component, deviceType)
}
private fun applyRenderInfo(ri: RenderInfo, @DeviceTypes.DeviceType deviceType: Int) {
private fun applyRenderInfo(ri: RenderInfo, ci: ControlInterface) {
val context = itemView.context
val fg = context.getResources().getColorStateList(ri.foreground, context.getTheme())
icon.setImageDrawable(ri.icon)
ci.customIcon?.let {
icon.setImageIcon(it)
} ?: run {
icon.setImageDrawable(ri.icon)
// Do not color app icons
if (deviceType != DeviceTypes.TYPE_ROUTINE) {
icon.setImageTintList(fg)
// Do not color app icons
if (ci.deviceType != DeviceTypes.TYPE_ROUTINE) {
icon.setImageTintList(fg)
}
}
}
}

View File

@@ -17,6 +17,7 @@
package com.android.systemui.controls.management
import android.content.ComponentName
import android.graphics.drawable.Icon
import androidx.recyclerview.widget.RecyclerView
import com.android.systemui.controls.ControlInterface
import com.android.systemui.controls.ControlStatus
@@ -126,9 +127,12 @@ data class ControlInfoWrapper(
get() = controlInfo.controlSubtitle
override val deviceType: Int
get() = controlInfo.deviceType
override val customIcon: Icon?
// Will need to address to support for edit activity
get() = null
}
data class DividerWrapper(
var showNone: Boolean = false,
var showDivider: Boolean = false
) : ElementWrapper()
) : ElementWrapper()