package com.maxiee.heartbeat.data;
import android.content.Context;
import com.maxiee.heartbeat.common.TimeUtils;
import com.maxiee.heartbeat.database.utils.EventUtils;
import com.maxiee.heartbeat.model.DayCard;
import com.maxiee.heartbeat.model.Event;
import com.maxiee.heartbeat.support.StopWatch;
import java.util.ArrayList;
/**
* Created by maxiee on 15/11/10.
*/
public class EventManager extends BaseEventManager{
public static final String TAG = EventManager.class.getSimpleName();
private ArrayList<DayCard> mData = new ArrayList<>();
public EventManager(Context context) {
super(context);
reload();
}
@Override
public void reload() {
if (mEventList != null) mEventList.clear();
mEventList = EventUtils.getAllEvents(mContext);
reloadDayCardData();
}
public void reloadDayCardData() {
StopWatch stopWatch = new StopWatch(TAG, "reloadDayCardData use time");
mData.clear();
parseData(mEventList);
stopWatch.stop();
}
private void parseData(ArrayList<Event> eventList) {
long dayStart = Long.MIN_VALUE;
DayCard dayCard = null;
for (Event e : eventList) {
if (dayCard == null) {
dayStart = TimeUtils.getDayStart(e.getTimestamp());
dayCard = new DayCard(dayStart, e);
continue;
}
if (TimeUtils.isInSameDay(dayStart, e.getTimestamp())) {
dayCard.addEvent(e);
} else {
mData.add(dayCard);
dayStart = TimeUtils.getDayStart(e.getTimestamp());
dayCard = new DayCard(dayStart, e);
}
}
if (dayCard != null) mData.add(dayCard);
}
public ArrayList<DayCard> getDayCardData() {return mData;}
}