diff --git a/app/src/main/java/org/isoron/uhabits/views/CheckmarkWidgetView.java b/app/src/main/java/org/isoron/uhabits/views/CheckmarkWidgetView.java index 01cf98a19..869c91afe 100644 --- a/app/src/main/java/org/isoron/uhabits/views/CheckmarkWidgetView.java +++ b/app/src/main/java/org/isoron/uhabits/views/CheckmarkWidgetView.java @@ -23,6 +23,7 @@ import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.AttributeSet; +import android.util.TypedValue; import android.widget.TextView; import org.isoron.uhabits.R; @@ -40,7 +41,6 @@ public class CheckmarkWidgetView extends HabitWidgetView implements HabitDataVie @Nullable private String name; - @Nullable private RingView ring; private TextView label; private int checkmarkValue; @@ -147,8 +147,22 @@ public class CheckmarkWidgetView extends HabitWidgetView implements HabitDataVie w *= scale; h *= scale; + if(h < getResources().getDimension(R.dimen.checkmarkWidget_heightBreakpoint)) + ring.setVisibility(GONE); + else + ring.setVisibility(VISIBLE); + widthMeasureSpec = MeasureSpec.makeMeasureSpec((int) w, MeasureSpec.EXACTLY); heightMeasureSpec = MeasureSpec.makeMeasureSpec((int) h, MeasureSpec.EXACTLY); + + float textSize = 0.15f * h; + float maxTextSize = getResources().getDimension(R.dimen.smallerTextSize); + textSize = Math.min(textSize, maxTextSize); + + label.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); + ring.setTextSize(textSize); + ring.setThickness(0.15f * textSize); + super.onMeasure(widthMeasureSpec, heightMeasureSpec); } diff --git a/app/src/main/java/org/isoron/uhabits/views/RingView.java b/app/src/main/java/org/isoron/uhabits/views/RingView.java index 1ab2a9024..cac641a22 100644 --- a/app/src/main/java/org/isoron/uhabits/views/RingView.java +++ b/app/src/main/java/org/isoron/uhabits/views/RingView.java @@ -109,6 +109,11 @@ public class RingView extends View postInvalidate(); } + public void setTextSize(float textSize) + { + this.textSize = textSize; + } + @Override public void setBackgroundColor(int backgroundColor) { diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 42c044142..51147ef4c 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -26,7 +26,9 @@ @dimen/regularTextSize 16sp 14sp + 12sp 10sp 160dp -10dp + 55dp \ No newline at end of file