aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/org/connectbot/service/TerminalManager.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/service/TerminalManager.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/service/TerminalManager.java')
-rw-r--r--app/src/main/java/org/connectbot/service/TerminalManager.java13
1 files changed, 6 insertions, 7 deletions
diff --git a/app/src/main/java/org/connectbot/service/TerminalManager.java b/app/src/main/java/org/connectbot/service/TerminalManager.java
index 8001561..a15dff0 100644
--- a/app/src/main/java/org/connectbot/service/TerminalManager.java
+++ b/app/src/main/java/org/connectbot/service/TerminalManager.java
@@ -54,9 +54,7 @@ import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.net.Uri;
import android.os.Binder;
-import android.os.Handler;
import android.os.IBinder;
-import android.os.Message;
import android.os.Vibrator;
import android.preference.PreferenceManager;
import android.util.Log;
@@ -81,7 +79,7 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen
public List<HostBean> disconnected = new LinkedList<HostBean>();
- public Handler disconnectHandler = null;
+ public BridgeDisconnectedListener disconnectListener = null;
public Map<String, KeyHolder> loadedKeypairs = new HashMap<String, KeyHolder>();
@@ -329,6 +327,7 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen
*/
public void onDisconnected(TerminalBridge bridge) {
boolean shouldHideRunningNotification = false;
+ Log.d(TAG, "Bridge Disconnected. Removing it.");
synchronized (bridges) {
// remove this bridge from our list
@@ -345,6 +344,10 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen
mPendingReconnect.size() == 0) {
shouldHideRunningNotification = true;
}
+
+ // pass notification back up to gui
+ if (disconnectListener != null)
+ disconnectListener.onDisconnected(bridge);
}
synchronized (disconnected) {
@@ -354,10 +357,6 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen
if (shouldHideRunningNotification) {
ConnectionNotifier.getInstance().hideRunningNotification(this);
}
-
- // pass notification back up to gui
- if (disconnectHandler != null)
- Message.obtain(disconnectHandler, -1, bridge).sendToTarget();
}
public boolean isKeyLoaded(String nickname) {