aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/org/connectbot/ConsoleActivity.java
diff options
context:
space:
mode:
authorJeremy Klein <jlklein@google.com>2015-08-13 15:01:22 -0700
committerJeremy Klein <jlklein@google.com>2015-08-13 15:04:55 -0700
commitb067b78b004f8dd2607fe1acea0e7ec47e108212 (patch)
tree4f691fd88427d99aab832d829b5b318d4b5c7e9b /app/src/main/java/org/connectbot/ConsoleActivity.java
parent5b96ac07b94c4f2c8e4ffa6862b2c5693965a96d (diff)
downloadconnectbot-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.java26
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