0
0
mirror of https://github.com/thunderbird/thunderbird-android.git synced 2024-09-20 12:12:15 +02:00

Switch account chip back to fixed height view

This commit is contained in:
cketti 2023-02-23 20:06:38 +01:00
parent 04d7ce3ce0
commit 7485e3209b
5 changed files with 19 additions and 48 deletions

View File

@ -1,38 +0,0 @@
package com.fsck.k9.ui.messagelist
import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.text.TextPaint
import android.util.AttributeSet
import android.util.TypedValue
import android.view.View
class AccountChip(context: Context, attrs: AttributeSet?) : View(context, attrs) {
private val textPaint = TextPaint().apply {
color = Color.BLUE
}
init {
setTextSizeSp(16)
}
fun setTextSizeSp(size: Int) {
val displayMetrics = context.resources.displayMetrics
textPaint.textSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, size.toFloat(), displayMetrics)
}
fun setColor(color: Int) {
textPaint.color = color
}
override fun onDraw(canvas: Canvas) {
val cornerRadius = width.toFloat() / 2
val baseLine = height - textPaint.fontMetrics.bottom
val chipTop = baseLine + textPaint.fontMetrics.ascent
val chipBottom = baseLine + cornerRadius
canvas.drawRoundRect(0f, chipTop, width.toFloat(), chipBottom, cornerRadius, cornerRadius, textPaint)
}
}

View File

@ -17,6 +17,7 @@ import android.view.View.OnLongClickListener
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.core.graphics.drawable.DrawableCompat
import androidx.core.view.isVisible
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
@ -265,10 +266,6 @@ class MessageListAdapter internal constructor(
holder.chip.isVisible = appearance.showAccountChip
appearance.fontSizes.setViewTextSize(holder.subject, subjectViewFontSize)
if (subjectViewFontSize != FontSizes.FONT_DEFAULT) {
holder.chip.setTextSizeSp(subjectViewFontSize)
}
appearance.fontSizes.setViewTextSize(holder.date, appearance.fontSizes.messageListDate)
// 1 preview line is needed even if it is set to 0, because subject is part of the same text view
@ -331,7 +328,9 @@ class MessageListAdapter internal constructor(
val subject = MlfUtils.buildSubject(subject, res.getString(R.string.general_no_subject), displayThreadCount)
if (appearance.showAccountChip) {
holder.chip.setColor(account.chipColor)
val accountChipDrawable = holder.chip.drawable.mutate()
DrawableCompat.setTint(accountChipDrawable, account.chipColor)
holder.chip.setImageDrawable(accountChipDrawable)
}
if (appearance.stars) {

View File

@ -16,7 +16,7 @@ class MessageViewHolder(view: View) : MessageListViewHolder(view) {
val subject: TextView = view.findViewById(R.id.subject)
val preview: TextView = view.findViewById(R.id.preview)
val date: TextView = view.findViewById(R.id.date)
val chip: AccountChip = view.findViewById(R.id.account_color_chip)
val chip: ImageView = view.findViewById(R.id.account_color_chip)
val threadCount: TextView = view.findViewById(R.id.thread_count)
val star: ImageView = view.findViewById(R.id.star)
val attachment: ImageView = view.findViewById(R.id.attachment)

View File

@ -0,0 +1,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white" />
<corners android:radius="1.5dp" />
</shape>

View File

@ -57,14 +57,17 @@
tools:text="Message preview"
tools:textColor="?attr/messageListPreviewTextColor" />
<com.fsck.k9.ui.messagelist.AccountChip
<ImageView
android:id="@+id/account_color_chip"
android:layout_width="3dp"
android:layout_height="0dp"
android:layout_height="12dp"
android:layout_marginEnd="4dp"
app:layout_constraintTop_toTopOf="@+id/subject"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/subject"
app:layout_constraintEnd_toEndOf="@+id/barrier_start" />
app:layout_constraintEnd_toEndOf="@+id/barrier_start"
app:layout_constraintTop_toTopOf="@+id/subject"
app:srcCompat="@drawable/ic_account_color"
tools:tint="@color/material_blue_700" />
<ImageView
android:id="@+id/status"