package com.codeslap.dateslider;
import android.content.Context;
import android.util.Log;
import java.util.Calendar;
import com.rareventure.gps2.reviewer.EnterFromDateToToDateActivity;
/**
* Time labeler takes care of providing each TimeTextView element in the time scroller
* with the right label and information about its time representation
*
* @author cristian
* @version 1.0
*/
public class TimeLabeler extends EnterFromDateToToDateActivity.Labeler {
public TimeLabeler(EnterFromDateToToDateActivity dateSlider) {
super(dateSlider);
}
@Override
public EnterFromDateToToDateActivity.TimeObject add(long time, int val) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(time);
calendar.add(Calendar.MINUTE, val * EnterFromDateToToDateActivity.MINUTE_INTERVAL);
return timeObjectFromCalendar(calendar);
}
@Override
public EnterFromDateToToDateActivity.TimeObject getElem(long time) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(time);
calendar.set(Calendar.MINUTE, calendar.get(Calendar.MINUTE) /
EnterFromDateToToDateActivity.MINUTE_INTERVAL * EnterFromDateToToDateActivity.MINUTE_INTERVAL);
return timeObjectFromCalendar(calendar);
}
@Override
protected EnterFromDateToToDateActivity.TimeObject timeObjectFromCalendar(Calendar calendar) {
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE) / EnterFromDateToToDateActivity.MINUTE_INTERVAL * EnterFromDateToToDateActivity.MINUTE_INTERVAL;
// get the last millisecond of that 15 minute block
calendar.set(year, month, day, hour, minute + EnterFromDateToToDateActivity.MINUTE_INTERVAL - 1, 59);
calendar.set(Calendar.MILLISECOND, 999);
long endTime = calendar.getTimeInMillis();
// get the first millisecond of that 15 minute block
calendar.set(year, month, day, hour, minute, 0);
calendar.set(Calendar.MILLISECOND, 0);
long startTime = calendar.getTimeInMillis();
String label = String.format("%tI:%tM %tp", calendar, calendar, calendar);
return new EnterFromDateToToDateActivity.TimeObject(label, startTime, endTime);
}
@Override
public TimeView createView(Context context, boolean isCenterView) {
return new TimeView.TimeLayoutView(context, isCenterView, TimeView.TEXT_SIZE_DP, TimeView.MINI_TEXT_SIZE_DP,
0.95f);
}
}