Trim unit labels when necessary

pull/2194/head
Alinson S. Xavier 3 months ago
parent 5403b6bd51
commit e608c6ea62

@ -189,16 +189,19 @@ class NumberButtonView(
textSize = dim(R.dimen.smallTextSize)
typeface = getFontAwesome()
}
value >= 0 -> {
label = value.toShortString()
typeface = BOLD_TYPEFACE
textSize = dim(R.dimen.smallTextSize)
}
preferences.areQuestionMarksEnabled -> {
label = resources.getString(R.string.fa_question)
typeface = getFontAwesome()
textSize = dim(R.dimen.smallerTextSize)
}
else -> {
label = "0"
typeface = BOLD_TYPEFACE
@ -212,14 +215,23 @@ class NumberButtonView(
pUnit.color = activeColor
if (units.isBlank()) {
// Draw number without units
rect.set(0f, 0f, width.toFloat(), height.toFloat())
rect.offset(0f, 0.5f * em)
canvas.drawText(label, rect.centerX(), rect.centerY(), pNumber)
} else {
// Draw number
rect.set(0f, 0f, width.toFloat(), height.toFloat())
canvas.drawText(label, rect.centerX(), rect.centerY(), pNumber)
// Draw units
val maxUnitsWidth = width * 0.9f
var trimmedUnits = units
while (trimmedUnits.length > 2 && pUnit.measureText(trimmedUnits) > maxUnitsWidth) {
trimmedUnits = trimmedUnits.dropLast(2) + ""
}
rect.offset(0f, 1.3f * em)
canvas.drawText(units, rect.centerX(), rect.centerY(), pUnit)
canvas.drawText(trimmedUnits, rect.centerX(), rect.centerY(), pUnit)
}
drawNotesIndicator(canvas, color, em, notes)

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (C) 2016-2021 Álinson Santos Xavier <git@axavier.org>
~
~ This file is part of Loop Habit Tracker.
@ -32,8 +31,7 @@
android:layout_marginBottom="8dp"
android:textColor="?attr/contrast60"
android:textSize="@dimen/regularTextSize"
tools:text="Have you worked out today?"
/>
tools:text="Have you worked out today?" />
<LinearLayout
android:layout_width="match_parent"
@ -54,12 +52,14 @@
android:id="@+id/targetText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8.5k"
android:text=""
android:textColor="?attr/contrast60"
android:textSize="@dimen/smallTextSize"
android:layout_marginStart="4dp"
android:layout_marginEnd="16dp"
/>
android:maxEms="7"
android:maxLines="1"
android:ellipsize="end" />
<TextView
android:id="@+id/frequencyIcon"
@ -93,7 +93,7 @@
android:layout_height="wrap_content"
android:paddingTop="1dp"
android:textColor="?attr/contrast60"
android:text="8:00 AM"
android:text=""
android:layout_marginStart="4dp"
android:textSize="@dimen/smallTextSize" />

Loading…
Cancel
Save