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  | 
