Merge remote-tracking branch 'origin/dev' into combo-scripter-v2

* origin/dev:
  wait a few sec before disconnection for another command
This commit is contained in:
Johannes Mockenhaupt 2017-12-20 19:42:13 +01:00
commit 4094b0dd61
No known key found for this signature in database
GPG key ID: 9E1EA6AF7BBBB0D1

View file

@ -28,6 +28,7 @@ public class QueueThread extends Thread {
private CommandQueue queue; private CommandQueue queue;
private long lastCommandTime = 0;
private boolean connectLogged = false; private boolean connectLogged = false;
private PowerManager.WakeLock mWakeLock; private PowerManager.WakeLock mWakeLock;
@ -44,7 +45,7 @@ public class QueueThread extends Thread {
public final void run() { public final void run() {
mWakeLock.acquire(); mWakeLock.acquire();
MainApp.bus().post(new EventQueueChanged()); MainApp.bus().post(new EventQueueChanged());
long connectionStartTime = System.currentTimeMillis(); long connectionStartTime = lastCommandTime = System.currentTimeMillis();
try { try {
while (true) { while (true) {
@ -106,17 +107,24 @@ public class QueueThread extends Thread {
queue.performing().execute(); queue.performing().execute();
queue.resetPerforming(); queue.resetPerforming();
MainApp.bus().post(new EventQueueChanged()); MainApp.bus().post(new EventQueueChanged());
lastCommandTime = System.currentTimeMillis();
SystemClock.sleep(100); SystemClock.sleep(100);
continue; continue;
} }
} }
if (queue.size() == 0 && queue.performing() == null) { if (queue.size() == 0 && queue.performing() == null) {
log.debug("QUEUE: queue empty. disconnect"); long secondsFromLastCommand = (System.currentTimeMillis() - lastCommandTime) / 1000;
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); if (secondsFromLastCommand >= 5) {
pump.disconnect("Queue empty"); log.debug("QUEUE: queue empty. disconnect");
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED)); MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING));
return; pump.disconnect("Queue empty");
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED));
return;
} else {
log.debug("QUEUE: waiting for disconnect");
SystemClock.sleep(1000);
}
} }
} }
} finally { } finally {