Skip to content
Snippets Groups Projects
Commit dc995be4 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Improve selection

parent b8a8050e
No related branches found
No related tags found
No related merge requests found
...@@ -115,17 +115,23 @@ class MessageAdapter( ...@@ -115,17 +115,23 @@ class MessageAdapter(
var markerline: View? = null var markerline: View? = null
private var message: FormattedMessage? = null private var message: FormattedMessage? = null
private var selectable: Boolean = false
private var clickable: Boolean = false
private val localClickListener = View.OnClickListener { private val localClickListener = View.OnClickListener {
if (clickable) {
message?.let { message?.let {
clickListener?.invoke(it) clickListener?.invoke(it)
} }
} }
}
private val localLongClickListener = View.OnLongClickListener { private val localLongClickListener = View.OnLongClickListener {
if (selectable) {
message?.let { message?.let {
selectionListener?.invoke(it) selectionListener?.invoke(it)
} }
}
true true
} }
...@@ -141,8 +147,10 @@ class MessageAdapter( ...@@ -141,8 +147,10 @@ class MessageAdapter(
content.setOnLongClickListener(localLongClickListener) content.setOnLongClickListener(localLongClickListener)
} }
fun bind(message: FormattedMessage) { fun bind(message: FormattedMessage, selectable: Boolean = true, clickable: Boolean = true) {
this.message = message this.message = message
this.selectable = selectable
this.clickable = clickable
time?.text = message.time time?.text = message.time
content.text = message.content content.text = message.content
......
...@@ -2,6 +2,8 @@ package de.kuschku.quasseldroid.ui.chat.messages ...@@ -2,6 +2,8 @@ package de.kuschku.quasseldroid.ui.chat.messages
import android.content.Context import android.content.Context
import android.graphics.Typeface import android.graphics.Typeface
import android.graphics.drawable.ColorDrawable
import android.graphics.drawable.LayerDrawable
import android.text.SpannableString import android.text.SpannableString
import android.text.Spanned import android.text.Spanned
import android.text.TextPaint import android.text.TextPaint
...@@ -71,11 +73,17 @@ class QuasselMessageRenderer @Inject constructor( ...@@ -71,11 +73,17 @@ class QuasselMessageRenderer @Inject constructor(
hasHighlight: Boolean) { hasHighlight: Boolean) {
if (hasHighlight) { if (hasHighlight) {
viewHolder.itemView.context.theme.styledAttributes( viewHolder.itemView.context.theme.styledAttributes(
R.attr.colorForegroundHighlight, R.attr.colorBackgroundHighlight R.attr.colorForegroundHighlight, R.attr.colorBackgroundHighlight,
R.attr.backgroundMenuItem
) { ) {
viewHolder.time?.setTextColor(getColor(0, 0)) viewHolder.time?.setTextColor(getColor(0, 0))
viewHolder.content.setTextColor(getColor(0, 0)) viewHolder.content.setTextColor(getColor(0, 0))
viewHolder.itemView.setBackgroundColor(getColor(1, 0)) viewHolder.itemView.background = LayerDrawable(
arrayOf(
ColorDrawable(getColor(1, 0)),
getDrawable(2)
)
)
} }
} }
if (appearanceSettings.useMonospace) { if (appearanceSettings.useMonospace) {
...@@ -92,7 +100,10 @@ class QuasselMessageRenderer @Inject constructor( ...@@ -92,7 +100,10 @@ class QuasselMessageRenderer @Inject constructor(
} }
override fun bind(holder: MessageAdapter.QuasselMessageViewHolder, message: FormattedMessage, override fun bind(holder: MessageAdapter.QuasselMessageViewHolder, message: FormattedMessage,
original: QuasselDatabase.DatabaseMessage) = holder.bind(message) original: QuasselDatabase.DatabaseMessage) =
Message_Type.of(original.type).hasFlag(DayChange).let { isDayChange ->
holder.bind(message, !isDayChange, !isDayChange)
}
override fun render(context: Context, override fun render(context: Context,
message: DisplayMessage): FormattedMessage { message: DisplayMessage): FormattedMessage {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment