From 29a395f3f41e6fae68d026a14cc81cc2b36fc519 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 23 Mar 2015 15:57:29 -0400 Subject: [PATCH] Prevent updating the UI while quitting is in progress --- app/src/main/java/com/limelight/AppView.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/com/limelight/AppView.java b/app/src/main/java/com/limelight/AppView.java index 6b1a6b19..18e2f695 100644 --- a/app/src/main/java/com/limelight/AppView.java +++ b/app/src/main/java/com/limelight/AppView.java @@ -55,6 +55,7 @@ public class AppView extends Activity implements AdapterFragmentCallbacks { private SpinnerDialog blockingLoadSpinner; private String lastRawApplist; private int lastRunningAppId; + private boolean suspendGridUpdates; private final static int START_OR_RESUME_ID = 1; private final static int QUIT_ID = 2; @@ -125,6 +126,11 @@ public class AppView extends Activity implements AdapterFragmentCallbacks { managerBinder.startPolling(new ComputerManagerListener() { @Override public void notifyComputerUpdated(ComputerDetails details) { + // Do nothing if updates are suspended + if (suspendGridUpdates) { + return; + } + // Don't care about other computers if (!details.uuid.toString().equalsIgnoreCase(uuidString)) { return; @@ -497,6 +503,7 @@ public class AppView extends Activity implements AdapterFragmentCallbacks { NvHTTP httpConn; String message; try { + suspendGridUpdates = true; httpConn = new NvHTTP(getAddress(), managerBinder.getUniqueId(), null, PlatformBinding.getCryptoProvider(AppView.this)); if (httpConn.quitApp()) { @@ -521,6 +528,7 @@ public class AppView extends Activity implements AdapterFragmentCallbacks { message = e.getMessage(); } finally { // Trigger a poll immediately + suspendGridUpdates = false; if (poller != null) { poller.pollNow(); }