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