Allow checkmark widget to be resized to very small sizes

This commit is contained in:
2016-05-22 12:24:28 -04:00
parent 9ec1afc208
commit 38024d71ce
3 changed files with 22 additions and 1 deletions

View File

@@ -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);
}

View File

@@ -109,6 +109,11 @@ public class RingView extends View
postInvalidate();
}
public void setTextSize(float textSize)
{
this.textSize = textSize;
}
@Override
public void setBackgroundColor(int backgroundColor)
{

View File

@@ -26,7 +26,9 @@
<dimen name="history_max_font_size">@dimen/regularTextSize</dimen>
<dimen name="regularTextSize">16sp</dimen>
<dimen name="smallTextSize">14sp</dimen>
<dimen name="smallerTextSize">12sp</dimen>
<dimen name="tinyTextSize">10sp</dimen>
<dimen name="habitNameWidth">160dp</dimen>
<dimen name="progressbarOffset">-10dp</dimen>
<dimen name="checkmarkWidget_heightBreakpoint">55dp</dimen>
</resources>