mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-19 21:58:25 +00:00
Set delete in context menu to color destructive
This commit is contained in:
parent
8e4266d9ee
commit
91807db8a9
@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.components.menu
|
||||
|
||||
import android.content.Context
|
||||
import androidx.annotation.AttrRes
|
||||
import androidx.annotation.ColorRes
|
||||
|
||||
/**
|
||||
* Represents an action to be rendered
|
||||
@ -11,5 +12,6 @@ data class ActionItem(
|
||||
val title: Int,
|
||||
val action: Runnable,
|
||||
val contentDescription: Int? = null,
|
||||
val subtitle: ((Context) -> CharSequence?)? = null
|
||||
val subtitle: ((Context) -> CharSequence?)? = null,
|
||||
@ColorRes val color: Int? = null,
|
||||
)
|
||||
|
@ -1,13 +1,14 @@
|
||||
package org.thoughtcrime.securesms.components.menu
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.ColorStateList
|
||||
import android.util.TypedValue
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.isGone
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.widget.ImageViewCompat
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@ -78,19 +79,26 @@ class ContextMenuList(recyclerView: RecyclerView, onItemClick: () -> Unit) {
|
||||
val subtitle: TextView = itemView.findViewById(R.id.context_menu_item_subtitle)
|
||||
|
||||
override fun bind(model: DisplayItem) {
|
||||
if (model.item.iconRes > 0) {
|
||||
val item = model.item
|
||||
val color = item.color?.let { ContextCompat.getColor(context, it) }
|
||||
|
||||
if (item.iconRes > 0) {
|
||||
val typedValue = TypedValue()
|
||||
context.theme.resolveAttribute(model.item.iconRes, typedValue, true)
|
||||
context.theme.resolveAttribute(item.iconRes, typedValue, true)
|
||||
icon.setImageDrawable(ContextCompat.getDrawable(context, typedValue.resourceId))
|
||||
|
||||
icon.imageTintList = color?.let(ColorStateList::valueOf)
|
||||
}
|
||||
model.item.contentDescription?.let(context.resources::getString)?.let { itemView.contentDescription = it }
|
||||
title.setText(model.item.title)
|
||||
item.contentDescription?.let(context.resources::getString)?.let { itemView.contentDescription = it }
|
||||
title.setText(item.title)
|
||||
color?.let(title::setTextColor)
|
||||
color?.let(title::setTextColor)
|
||||
subtitle.isGone = true
|
||||
model.item.subtitle?.let {
|
||||
item.subtitle?.let {
|
||||
startSubtitleJob(subtitle, it)
|
||||
}
|
||||
itemView.setOnClickListener {
|
||||
model.item.action.run()
|
||||
item.action.run()
|
||||
onItemClick()
|
||||
}
|
||||
|
||||
|
@ -549,7 +549,7 @@ class ConversationReactionOverlay : FrameLayout {
|
||||
}
|
||||
// Delete message
|
||||
if (userCanDeleteSelectedItems(context, message, openGroup, userPublicKey, blindedPublicKey)) {
|
||||
items += ActionItem(R.attr.menu_trash_icon, R.string.delete, { handleActionItemClicked(Action.DELETE) }, R.string.AccessibilityId_delete_message, message.subtitle)
|
||||
items += ActionItem(R.attr.menu_trash_icon, R.string.delete, { handleActionItemClicked(Action.DELETE) }, R.string.AccessibilityId_delete_message, message.subtitle, R.color.destructive)
|
||||
}
|
||||
// Ban user
|
||||
if (userCanBanSelectedUsers(context, message, openGroup, userPublicKey, blindedPublicKey)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user