package co.smartreceipts.android.date;
import android.content.Context;
import android.text.format.DateFormat;
import java.sql.Date;
import wb.android.dialog.CalendarDialog;
public class MyCalendarDialog extends CalendarDialog {
public interface Listener {
public void onDateSet(Date date);
}
private final Context mContext;
private final DateManager mDateManager;
private DateEditText mEdit, mEnd;
private long mDuration;
private Listener mDateSetListener;
public MyCalendarDialog(Context context, DateManager manager) {
super();
mContext = context;
mDateManager = manager;
}
public void setListener(Listener listener) {
mDateSetListener = listener;
}
@Override
@SuppressWarnings("deprecation")
public final void onDateSet(int day, int month, int year) {
final Date date = new Date(year - 1900, month, day); //**This Date constructor is deprecated
mDateManager.setCachedDate(date);
String dateString = DateFormat.getDateFormat(mContext).format(date);
//This block is for mEdit
if (mEdit != null) {
mEdit.setText(dateString);
mEdit.date = date;
if (mDateSetListener != null) mDateSetListener.onDateSet(date);
}
//This block is for mEnd
if (mEnd != null && mEnd.date == null) { //ugly hack (order dependent set methods below)
final Date endDate = new Date(date.getTime() + mDuration*86400000L+3600000L); //+3600000 for DST hack
String endString = DateFormat.getDateFormat(mContext).format(endDate);
mEnd.setText(endString);
mEnd.date = endDate;
}
}
public final void setEditText(final DateEditText edit) {
mEdit = edit;
mEnd = null;
}
public final void setEnd(final DateEditText end, final long duration) {
mEnd = end;
mDuration = duration;
}
}