Merge "Controls UI - Use custom icon for favoriting" into rvc-dev am: c472565de6 am: 313ff21f03
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11941803 Change-Id: Iaec962ae72dec1731cb16c4b04c31f12ef143779
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user