package com.codeslap.dateslider;
import android.content.Context;
import java.util.Calendar;
import com.rareventure.gps2.reviewer.EnterFromDateToToDateActivity;
/**
* Day labeler takes care of providing each TimeTextView element in the dayScroller
* with the right label and information about its time representation
*
* @author cristian
* @version 1.0
*/
public class DayLabeler extends EnterFromDateToToDateActivity.Labeler {
private final boolean mCustom;
public DayLabeler(EnterFromDateToToDateActivity dateSlider) {
this(dateSlider, false);
}
public DayLabeler(EnterFromDateToToDateActivity dateSlider, boolean custom) {
super(dateSlider);
mCustom = custom;
}
@Override
public EnterFromDateToToDateActivity.TimeObject add(long time, int val) {
Calendar c = Calendar.getInstance();
c.setTimeInMillis(time);
c.add(Calendar.DAY_OF_MONTH, val);
return timeObjectFromCalendar(c);
}
@Override
protected EnterFromDateToToDateActivity.TimeObject timeObjectFromCalendar(Calendar c) {
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// set calendar to first millisecond of the day
c.set(year, month, day, 0, 0, 0);
c.set(Calendar.MILLISECOND, 0);
long startTime = c.getTimeInMillis();
// set calendar to last millisecond of the day
c.set(year, month, day, 23, 59, 59);
c.set(Calendar.MILLISECOND, 999);
long endTime = c.getTimeInMillis();
if (mCustom) {
return new EnterFromDateToToDateActivity.TimeObject(String.format("%tA", c), startTime, endTime);
}
return new EnterFromDateToToDateActivity.TimeObject(String.format("%td %ta", c, c), startTime, endTime);
}
@Override
public TimeView createView(Context context, boolean isCenterView) {
if (mCustom) {
return super.createView(context, isCenterView);
}
return new TimeView.DayTimeLayoutView(context, isCenterView, TimeView.TEXT_SIZE_DP,
TimeView.MINI_TEXT_SIZE_DP, 0.95f);
}
}