Simplify code for drawing header

pull/69/head
Alinson S. Xavier 10 years ago
parent 45a7433773
commit f7f4b5eeb0

@ -240,7 +240,6 @@ public class HabitHistoryView extends ScrollableDataView
private String previousMonth; private String previousMonth;
private String previousYear; private String previousYear;
private boolean justPrintedYear;
@Override @Override
protected void onDraw(Canvas canvas) protected void onDraw(Canvas canvas)
@ -250,10 +249,9 @@ public class HabitHistoryView extends ScrollableDataView
baseLocation.set(0, 0, columnWidth - squareSpacing, columnWidth - squareSpacing); baseLocation.set(0, 0, columnWidth - squareSpacing, columnWidth - squareSpacing);
baseLocation.offset(getPaddingLeft(), getPaddingTop()); baseLocation.offset(getPaddingLeft(), getPaddingTop());
headerOverflow = 0;
previousMonth = ""; previousMonth = "";
previousYear = ""; previousYear = "";
justPrintedYear = false;
pTextHeader.setColor(textColor); pTextHeader.setColor(textColor);
updateDate(); updateDate();
@ -307,44 +305,26 @@ public class HabitHistoryView extends ScrollableDataView
} }
} }
private boolean justSkippedColumn = false; private float headerOverflow = 0;
private void drawColumnHeader(Canvas canvas, Rect location, GregorianCalendar date) private void drawColumnHeader(Canvas canvas, Rect location, GregorianCalendar date)
{ {
String month = dfMonth.format(date.getTime()); String month = dfMonth.format(date.getTime());
String year = dfYear.format(date.getTime()); String year = dfYear.format(date.getTime());
String text = null;
if (!month.equals(previousMonth)) if (!month.equals(previousMonth))
{ text = previousMonth = month;
int offset = 0;
if (justPrintedYear)
{
offset += columnWidth;
justSkippedColumn = true;
}
canvas.drawText(month, location.left + offset, location.bottom - headerTextOffset,
pTextHeader);
previousMonth = month;
justPrintedYear = false;
}
else if(!year.equals(previousYear)) else if(!year.equals(previousYear))
{ text = previousYear = year;
if(!justSkippedColumn)
{
canvas.drawText(year, location.left, location.bottom - headerTextOffset, pTextHeader);
previousYear = year;
justPrintedYear = true;
}
justSkippedColumn = false; if(text != null)
}
else
{ {
justSkippedColumn = false; canvas.drawText(text, location.left + headerOverflow, location.bottom - headerTextOffset, pTextHeader);
justPrintedYear = false; headerOverflow += pTextHeader.measureText(text) + columnWidth * 0.2f;
} }
headerOverflow = Math.max(0, headerOverflow - columnWidth);
} }
public void setIsBackgroundTransparent(boolean isBackgroundTransparent) public void setIsBackgroundTransparent(boolean isBackgroundTransparent)

Loading…
Cancel
Save