package org.schmivits.testbluetoothclientserver; import java.util.ArrayList; import java.util.List; import android.widget.TextView; import org.schmivits.dynonskyview.DummyFlightData; import org.schmivits.dynonskyview.DynonSerialFormat; public class DummyDataSourceStream extends RpcThread implements DataSourceStream { private static final long DATA_PERIOD = 1000L * 10L; // ten seconds private static final long DATA_INTERVAL = 1000L / 16L; // sixteen data points per second private final List<Listener> mListeners = new ArrayList<Listener>(); public DummyDataSourceStream(TextView view) { super(view); } @Override public void run() { DummyFlightData data = new DummyFlightData(DATA_PERIOD, System.currentTimeMillis()); while (true) { if (isInterrupted()) { return; } String str = DynonSerialFormat.dataToWord(data.getBlock(System.currentTimeMillis())); for (Listener l : mListeners) { l.data(str); } try { Thread.sleep(DATA_INTERVAL); } catch (InterruptedException e) { return; } } } @Override public void addListener(Listener l) { synchronized (mListeners) { mListeners.add(l); } } @Override public void removeListener(Listener l) { synchronized (mListeners) { mListeners.remove(l); } } }