package net.dewep.intranetepitech.ui.calendar;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import fr.qinder.Q;
import fr.qinder.tools.ConvertDate;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import net.dewep.intranetepitech.R;
import net.dewep.intranetepitech.api.model.EventModel;
public class DaysCalendar implements IGenericCalendar, IFilterCalendar {
private LayoutInflater mInflater = null;
private View mView = null;
private Boolean mIsDisplay = true;
private List<EventCalendar> mEvents = new ArrayList<EventCalendar>();
private int mIdentifier = 0;
public DaysCalendar(LayoutInflater inflater, LinearLayout parent, int index, EventModel event) {
mInflater = inflater;
mView = mInflater.inflate(R.layout.ui_calendar_day, parent, false);
Calendar todayDate = GregorianCalendar.getInstance();
Calendar eventDate = event.getCalendarStart();
todayDate.set(Calendar.HOUR_OF_DAY, 0);
todayDate.set(Calendar.MINUTE, 0);
todayDate.set(Calendar.SECOND, 0);
todayDate.set(Calendar.MILLISECOND, 0);
eventDate.set(Calendar.HOUR_OF_DAY, 0);
eventDate.set(Calendar.MINUTE, 0);
eventDate.set(Calendar.SECOND, 0);
eventDate.set(Calendar.MILLISECOND, 0);
int color = R.color.black;
if (todayDate.compareTo(eventDate) > 0) { // Ancien
color = R.color.grey_dark;
} else if (todayDate.compareTo(eventDate) == 0) { // Aujourd'hui
color = R.color.blue;
} else if (todayDate.compareTo(eventDate) < 0) { // Futur
color = R.color.black;
}
TextView title = (TextView) mView.findViewById(R.id.ui_calendar_day_title);
title.setText(String.valueOf(event.getCalendarStart().get(Calendar.DAY_OF_MONTH)));
TextView subtitle = (TextView) mView.findViewById(R.id.ui_calendar_day_subtitle);
subtitle.setText(ConvertDate.formatDefault("EE").format(event.getCalendarStart().getTime()));
title.setTextColor(Q.get().getResources().getColor(color));
subtitle.setTextColor(Q.get().getResources().getColor(color));
parent.addView(mView, index);
}
public void addEvent(EventModel event) {
int index = 0;
for (EventCalendar e : mEvents) {
if (event.getCalendarStart().compareTo(e.getEvent().getCalendarStart()) > 0) {
index++;
}
}
mEvents.add(new EventCalendar(mInflater, (LinearLayout) mView.findViewById(R.id.ui_calendar_day_container), index, event));
}
public void refreshFiltering() {
mIsDisplay = false;
for (EventCalendar event : mEvents) {
event.refreshFiltering();
if (event.isDisplay()) {
mIsDisplay = true;
}
}
Log.d("EVENT " + ((TextView) mView.findViewById(R.id.ui_calendar_day_title)).getText(), String.valueOf(mIsDisplay));
if (mIsDisplay) {
mView.setVisibility(View.VISIBLE);
} else {
mView.setVisibility(View.GONE);
}
}
public boolean isDisplay() {
return mIsDisplay;
}
public void setIdentifier(int identifier) {
mIdentifier = identifier;
}
public int getIdentifier() {
return mIdentifier;
}
}