diff options
author | Jeremy Klein <jlklein@google.com> | 2015-08-13 15:01:22 -0700 |
---|---|---|
committer | Jeremy Klein <jlklein@google.com> | 2015-08-13 15:04:55 -0700 |
commit | b067b78b004f8dd2607fe1acea0e7ec47e108212 (patch) | |
tree | 4f691fd88427d99aab832d829b5b318d4b5c7e9b /app/src/main/java/org/connectbot/ConsoleActivity.java | |
parent | 5b96ac07b94c4f2c8e4ffa6862b2c5693965a96d (diff) | |
download | connectbot-b067b78b004f8dd2607fe1acea0e7ec47e108212.tar.gz connectbot-b067b78b004f8dd2607fe1acea0e7ec47e108212.tar.bz2 connectbot-b067b78b004f8dd2607fe1acea0e7ec47e108212.zip |
Call the bridge disconnect listener sychronously on the main thread.
This resolves an issue with the adapter count changing without
notifyDataSetChanged being called before layout.
Diffstat (limited to 'app/src/main/java/org/connectbot/ConsoleActivity.java')
-rw-r--r-- | app/src/main/java/org/connectbot/ConsoleActivity.java | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/app/src/main/java/org/connectbot/ConsoleActivity.java b/app/src/main/java/org/connectbot/ConsoleActivity.java index 0f1de27..46c4f08 100644 --- a/app/src/main/java/org/connectbot/ConsoleActivity.java +++ b/app/src/main/java/org/connectbot/ConsoleActivity.java @@ -23,6 +23,7 @@ import java.util.List; import org.connectbot.bean.HostBean; import org.connectbot.bean.SelectionArea; +import org.connectbot.service.BridgeDisconnectedListener; import org.connectbot.service.PromptHelper; import org.connectbot.service.TerminalBridge; import org.connectbot.service.TerminalKeyListener; @@ -90,7 +91,7 @@ import android.widget.TextView; import android.widget.Toast; import de.mud.terminal.vt320; -public class ConsoleActivity extends Activity { +public class ConsoleActivity extends Activity implements BridgeDisconnectedListener { public final static String TAG = "CB.ConsoleActivity"; protected static final int REQUEST_EDIT = 1; @@ -156,7 +157,7 @@ public class ConsoleActivity extends Activity { bound = ((TerminalManager.TerminalBinder) service).getService(); // let manager know about our event handling services - bound.disconnectHandler = disconnectHandler; + bound.disconnectListener = ConsoleActivity.this; bound.setResizeAllowed(true); final String requestedNickname = (requested != null) ? requested.getFragment() : null; @@ -196,23 +197,16 @@ public class ConsoleActivity extends Activity { } }; - protected Handler disconnectHandler = new Handler() { - @Override - public void handleMessage(Message msg) { - synchronized (pager) { - Log.d(TAG, "Someone sending HANDLE_DISCONNECT to parentHandler"); - - // someone below us requested to display a password dialog - // they are sending nickname and requested - TerminalBridge bridge = (TerminalBridge) msg.obj; + public void onDisconnected(TerminalBridge bridge) { + synchronized (adapter) { + adapter.notifyDataSetChanged(); + Log.d(TAG, "Someone sending HANDLE_DISCONNECT to parentHandler"); - adapter.notifyDataSetChanged(); - if (bridge.isAwaitingClose()) { - closeBridge(bridge); - } + if (bridge.isAwaitingClose()) { + closeBridge(bridge); } } - }; + } protected OnClickListener emulatedKeysListener = new OnClickListener() { @Override |