Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e14338fb authored by Matt Pietal's avatar Matt Pietal Committed by Automerger Merge Worker
Browse files

Merge "Controls UI - Use custom icon for favoriting" into rvc-dev am:...

Merge "Controls UI - Use custom icon for favoriting" into rvc-dev am: c472565d am: 313ff21f am: aa70e402

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11941803

Change-Id: Id4c3ca4d023ee56d30dd55bda1a9a79f468566d2
parents 9260b81d aa70e402
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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
}
+10 −6
Original line number Diff line number Diff line
@@ -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,18 +254,22 @@ 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())

        ci.customIcon?.let {
            icon.setImageIcon(it)
        } ?: run {
            icon.setImageDrawable(ri.icon)

            // Do not color app icons
        if (deviceType != DeviceTypes.TYPE_ROUTINE) {
            if (ci.deviceType != DeviceTypes.TYPE_ROUTINE) {
                icon.setImageTintList(fg)
            }
        }
    }
}

/**
 * Accessibility delegate for [ControlHolder].
+5 −1
Original line number Diff line number Diff line
@@ -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,6 +127,9 @@ 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(