package com.codeslap.dateslider; import android.content.Context; import android.graphics.Typeface; import android.util.TypedValue; import android.view.Gravity; import java.util.Calendar; import com.rareventure.gps2.reviewer.EnterFromDateToToDateActivity; /** * @author cristian * @version 1.0 */ class WeekLabeler extends EnterFromDateToToDateActivity.Labeler { public WeekLabeler(EnterFromDateToToDateActivity dateSlider) { super(dateSlider); } @Override public EnterFromDateToToDateActivity.TimeObject add(long time, int val) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(time); c.add(Calendar.WEEK_OF_YEAR, val); return timeObjectFromCalendar(c); } @Override protected EnterFromDateToToDateActivity.TimeObject timeObjectFromCalendar(Calendar c) { int week = c.get(Calendar.WEEK_OF_YEAR); int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1; // set calendar to first millisecond of the week c.add(Calendar.DAY_OF_MONTH, -day_of_week); c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); long startTime = c.getTimeInMillis(); // set calendar to last millisecond of the week c.add(Calendar.DAY_OF_WEEK, 6); c.set(Calendar.HOUR_OF_DAY, 23); c.set(Calendar.MINUTE, 59); c.set(Calendar.SECOND, 59); c.set(Calendar.MILLISECOND, 999); long endTime = c.getTimeInMillis(); return new EnterFromDateToToDateActivity.TimeObject(String.format("week %d", week), startTime, endTime); } public TimeView createView(Context context, boolean isCenterView) { return new CustomTimeTextView(context, isCenterView, TimeView.TEXT_SIZE_DP); } /** * Here we define our Custom TimeTextView which will display the fonts in its very own way. */ private static class CustomTimeTextView extends TimeView.TimeTextView { public CustomTimeTextView(Context context, boolean isCenterView, float textSize) { super(context, isCenterView, textSize); } /** * Here we set up the text characteristics for the TextView, i.e. red colour, * serif font and semi-transparent white background for the centerView... and shadow!!! */ @Override protected void setupView(boolean isCenterView, float textSize) { setGravity(Gravity.CENTER); setTextColor(0xFF883333); setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSize); setTypeface(Typeface.SERIF); if (isCenterView) { setTypeface(Typeface.create(Typeface.SERIF, Typeface.BOLD)); setBackgroundColor(0x55FFFFFF); setShadowLayer(2.5f, 3, 3, 0xFF999999); } } } }