@Override public AVDuration createFromParcel(Parcel parcel) { return new AVDuration(parcel); }
private long myDuration() { return duration.getActualDuration(); }
boolean isStopped() { return duration.isStopped(); }
double getStart() { return duration.getCreateTimeStamp(); }
synchronized void beginFragment(String name) { AnalyticsActivity fragment = activityByName(name, true); fragment.setFragment(true); fragment.start(); duration.resume(); }
private long getLastTimeInterval() { long d = 0; // resume---------->paused if (pausedTimeStamp > resumeTimeStamp) { d = pausedTimeStamp - resumeTimeStamp; } else if (!stopped) { // paused--------->resume--------->stop d = currentTS() - resumeTimeStamp; } return d; }
void setSessionDuration(long ms) { duration.setDuration(ms); }
void sync() { if (stopped) { return; } duration += getLastTimeInterval(); pausedTimeStamp = -1; }
synchronized void pauseSession() { duration.pause(); }
boolean shouldRegardAsNewSession() { AnalyticsSession session = getCurrentSession(false); if (session == null) { return true; } long current = AnalyticsUtils.getCurrentTimestamp(); long start = session.getDuration().getPausedTimeStamp(); long delta = current - start; if (delta > getSessionTimeoutThreshold() && start > 0) { return true; } return false; }
boolean isSessionFinished() { return duration.isStopped(); }
public long getSessionStart() { return duration.getCreateTimeStamp(); }
synchronized void beginActivity(String name) { AnalyticsActivity activity = activityByName(name, true); activity.start(); activity.setSavedToServer(false); duration.resume(); }
public synchronized void start() { stopped = false; createTimeStamp = currentTS(); resumeTimeStamp = createTimeStamp; pausedTimeStamp = -1; }
void setDurationValue(long ms) { duration.setDuration(ms); }
long getActualDuration() { long tempDuration = duration + getLastTimeInterval(); if (tempDuration < 0) { if (AVOSCloud.showInternalDebugLog()) { LogUtil.avlog.d("Negative duration " + tempDuration); } tempDuration = 0; } return tempDuration; }
private synchronized List<Object> eventArray(boolean cleanUpAnalysisData) { List<Object> array = new LinkedList<Object>(); List<AnalyticsEvent> toDelete = new LinkedList<AnalyticsEvent>(); for (AnalyticsEvent e : events) { if (e.getDuration().isStopped()) { array.add(e.jsonMap()); toDelete.add(e); } } if (cleanUpAnalysisData) { events.removeAll(toDelete); } return array; }
private Map<String, Object> launchMap() { Map<String, Object> map = new HashMap<String, Object>(); map.put(sessionIdTag, sessionId); map.put("date", duration.getCreateTimeStamp()); return map; }