package com.vpedak.testsrecorder.core; import android.util.Log; import com.vpedak.testsrecorder.core.events.RecordingEvent; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class EventWriter { private long uniqueId; public static final String ANDRIOD_TEST_RECORDER = "AndriodTestRecorder"; public String tag; private Map<String, RecordingEvent> delayedEvents = new HashMap<String, RecordingEvent>(); private EventWriterListener listener; private long lastTime; public EventWriter(long uniqueId, EventWriterListener listener) { this.uniqueId = uniqueId; this.listener = listener; tag = ANDRIOD_TEST_RECORDER+uniqueId; lastTime = System.currentTimeMillis(); } public synchronized void writeEvent(RecordingEvent event) { long diff = System.currentTimeMillis() - lastTime; lastTime = System.currentTimeMillis(); if (delayedEvents.size() > 0) { for(RecordingEvent delayedEvent : delayedEvents.values()) { delayedEvent.setTime(diff); Log.d(tag, delayedEvent.toString()); } delayedEvents.clear(); } event.setTime(diff); Log.d(tag, event.toString()); listener.onEventWritten(); } public synchronized void addDelayedEvent(String id, RecordingEvent delayedEvent) { delayedEvents.put(id, delayedEvent); } public interface EventWriterListener { void onEventWritten(); } }