diff --git a/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidget/render.png b/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidget/render.png index 889b04919..642264b62 100644 Binary files a/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidget/render.png and b/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidget/render.png differ diff --git a/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/checked.png b/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/checked.png index 9548f9994..f5a3df56e 100644 Binary files a/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/checked.png and b/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/checked.png differ diff --git a/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/large_size.png b/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/large_size.png index 5d29f56c8..ea1aab565 100644 Binary files a/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/large_size.png and b/uhabits-android/src/androidTest/assets/views/widgets/CheckmarkWidgetView/large_size.png differ diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetView.kt index 1799b39c3..52bb4f731 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetView.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetView.kt @@ -39,6 +39,7 @@ import org.isoron.uhabits.utils.PaletteUtils.getAndroidTestColor import org.isoron.uhabits.utils.StyledResources import kotlin.math.max import kotlin.math.min +import kotlin.math.roundToInt class CheckmarkWidgetView : HabitWidgetView { var activeColor: Int = 0 @@ -118,19 +119,25 @@ class CheckmarkWidgetView : HabitWidgetView { get() = R.layout.widget_checkmark override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { - val width = MeasureSpec.getSize(widthMeasureSpec) - val height = MeasureSpec.getSize(heightMeasureSpec) - var textSize = 0.15f * height - val maxTextSize = getDimension(context, R.dimen.smallerTextSize) - textSize = min(textSize, maxTextSize) + var width = MeasureSpec.getSize(widthMeasureSpec) + var height = MeasureSpec.getSize(heightMeasureSpec) + if (height >= width) { + height = min(height, (width * 1.5).roundToInt()) + } else { + width = min(width, height) + } + val textSize = min(0.2f * width, getDimension(context, R.dimen.smallerTextSize)) label.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize) if (isNumerical) { - ring.setTextSize(textSize * 0.75f) + ring.setTextSize(textSize * 0.9f) } else { ring.setTextSize(textSize) } - ring.setThickness(0.15f * textSize) - super.onMeasure(widthMeasureSpec, heightMeasureSpec) + ring.setThickness(0.03f * width) + super.onMeasure( + MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY) + ) } private fun init() { diff --git a/uhabits-android/src/main/res/layout/widget_checkmark.xml b/uhabits-android/src/main/res/layout/widget_checkmark.xml index 75b351317..abdbf4dea 100644 --- a/uhabits-android/src/main/res/layout/widget_checkmark.xml +++ b/uhabits-android/src/main/res/layout/widget_checkmark.xml @@ -31,19 +31,19 @@ android:id="@+id/scoreRing" android:layout_width="match_parent" android:layout_height="0dp" - android:layout_weight="1" + android:layout_weight="0.9" habit:thickness="2" habit:textSize="16" habit:enableFontAwesome="true" android:layout_marginTop="8dp" - android:layout_marginLeft="12dp" - android:layout_marginRight="12dp"/> + android:layout_marginLeft="4dp" + android:layout_marginRight="4dp"/>