diff options
| -rw-r--r-- | res/values/strings.xml | 4 | ||||
| -rw-r--r-- | res/xml/host_prefs.xml | 6 | ||||
| -rw-r--r-- | src/org/connectbot/bean/HostBean.java | 10 | ||||
| -rw-r--r-- | src/org/connectbot/service/TerminalBridge.java | 2 | ||||
| -rw-r--r-- | src/org/connectbot/util/HostDatabase.java | 14 | 
5 files changed, 31 insertions, 5 deletions
| diff --git a/res/values/strings.xml b/res/values/strings.xml index 87206cf..49c3af4 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -293,6 +293,10 @@  	<!-- Summary for preference asking whether the host should be reconnected to when it disconnects -->  	<string name="hostpref_stayconnected_summary">"Try to reconnect to host if disconnected"</string> +	<!-- Setting for whether we should prompt to close after getting disconnected --> +	<string name="hostpref_quickdisconnect_title">"Close on disconnect"</string> +	<string name="hostpref_quickdisconnect_summary">"Close immediately after remote disconnect without prompting."</string> +  	<!-- Setting for what key code is sent to the server when DEL key is pressed. -->  	<string name="hostpref_delkey_title">"DEL Key"</string>  	<!-- Summary for field asking what key code is sent to the server when DEL key is pressed. --> diff --git a/res/xml/host_prefs.xml b/res/xml/host_prefs.xml index fea90cb..a2fc1a4 100644 --- a/res/xml/host_prefs.xml +++ b/res/xml/host_prefs.xml @@ -85,6 +85,12 @@  		android:summary="@string/hostpref_stayconnected_summary"  		/> +	<CheckBoxPreference +		android:key="quickdisconnect" +		android:title="@string/hostpref_quickdisconnect_title" +		android:summary="@string/hostpref_quickdisconnect_summary" +		/> +  	<ListPreference  		android:key="delkey"  		android:title="@string/hostpref_delkey_title" diff --git a/src/org/connectbot/bean/HostBean.java b/src/org/connectbot/bean/HostBean.java index 2fd7bfb..183d047 100644 --- a/src/org/connectbot/bean/HostBean.java +++ b/src/org/connectbot/bean/HostBean.java @@ -50,6 +50,7 @@ public class HostBean extends AbstractBean {  	private boolean compression = false;  	private String encoding = HostDatabase.ENCODING_DEFAULT;  	private boolean stayConnected = false; +	private boolean quickDisconnect = false;  	public HostBean() { @@ -202,6 +203,14 @@ public class HostBean extends AbstractBean {  		return stayConnected;  	} +	public void setQuickDisconnect(boolean quickDisconnect) { +		this.quickDisconnect = quickDisconnect; +	} + +	public boolean getQuickDisconnect() { +		return quickDisconnect; +	} +  	public String getDescription() {  		String description = String.format("%s@%s", username, hostname); @@ -234,6 +243,7 @@ public class HostBean extends AbstractBean {  		values.put(HostDatabase.FIELD_HOST_COMPRESSION, Boolean.toString(compression));  		values.put(HostDatabase.FIELD_HOST_ENCODING, encoding);  		values.put(HostDatabase.FIELD_HOST_STAYCONNECTED, stayConnected); +		values.put(HostDatabase.FIELD_HOST_QUICKDISCONNECT, quickDisconnect);  		return values;  	} diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java index 6b87b74..e5a2e97 100644 --- a/src/org/connectbot/service/TerminalBridge.java +++ b/src/org/connectbot/service/TerminalBridge.java @@ -429,7 +429,7 @@ public class TerminalBridge implements VDUDisplay {  		disconnectThread.setName("Disconnect");  		disconnectThread.start(); -		if (immediate) { +		if (immediate || (host.getQuickDisconnect() && !host.getStayConnected())) {  			awaitingClose = true;  			if (disconnectListener != null)  				disconnectListener.onDisconnected(TerminalBridge.this); diff --git a/src/org/connectbot/util/HostDatabase.java b/src/org/connectbot/util/HostDatabase.java index 2a92bab..ac35186 100644 --- a/src/org/connectbot/util/HostDatabase.java +++ b/src/org/connectbot/util/HostDatabase.java @@ -47,7 +47,7 @@ public class HostDatabase extends RobustSQLiteOpenHelper {  	public final static String TAG = "ConnectBot.HostDatabase";  	public final static String DB_NAME = "hosts"; -	public final static int DB_VERSION = 22; +	public final static int DB_VERSION = 23;  	public final static String TABLE_HOSTS = "hosts";  	public final static String FIELD_HOST_NICKNAME = "nickname"; @@ -69,6 +69,7 @@ public class HostDatabase extends RobustSQLiteOpenHelper {  	public final static String FIELD_HOST_COMPRESSION = "compression";  	public final static String FIELD_HOST_ENCODING = "encoding";  	public final static String FIELD_HOST_STAYCONNECTED = "stayconnected"; +	public final static String FIELD_HOST_QUICKDISCONNECT = "quickdisconnect";  	public final static String TABLE_PORTFORWARDS = "portforwards";  	public final static String FIELD_PORTFORWARD_HOSTID = "hostid"; @@ -169,7 +170,8 @@ public class HostDatabase extends RobustSQLiteOpenHelper {  				+ FIELD_HOST_WANTSESSION + " TEXT DEFAULT '" + Boolean.toString(true) + "', "  				+ FIELD_HOST_COMPRESSION + " TEXT DEFAULT '" + Boolean.toString(false) + "', "  				+ FIELD_HOST_ENCODING + " TEXT DEFAULT '" + ENCODING_DEFAULT + "', " -				+ FIELD_HOST_STAYCONNECTED + " TEXT)"); +				+ FIELD_HOST_STAYCONNECTED + " TEXT, " +				+ FIELD_HOST_QUICKDISCONNECT + " TEXT DEFAULT '" + Boolean.toString(false) + "')");  		db.execSQL("CREATE TABLE " + TABLE_PORTFORWARDS  				+ " (_id INTEGER PRIMARY KEY, " @@ -259,6 +261,9 @@ public class HostDatabase extends RobustSQLiteOpenHelper {  			db.execSQL("DROP TABLE " + TABLE_COLOR_DEFAULTS);  			db.execSQL(CREATE_TABLE_COLOR_DEFAULTS);  			db.execSQL(CREATE_TABLE_COLOR_DEFAULTS_INDEX); +		case 22: +			db.execSQL("ALTER TABLE " + TABLE_HOSTS +					+ " ADD COLUMN " + FIELD_HOST_QUICKDISCONNECT + " TEXT DEFAULT '" + Boolean.toString(false) + "'");  		}  	} @@ -376,8 +381,8 @@ public class HostDatabase extends RobustSQLiteOpenHelper {  			COL_FONTSIZE = c.getColumnIndexOrThrow(FIELD_HOST_FONTSIZE),  			COL_COMPRESSION = c.getColumnIndexOrThrow(FIELD_HOST_COMPRESSION),  			COL_ENCODING = c.getColumnIndexOrThrow(FIELD_HOST_ENCODING), -			COL_STAYCONNECTED = c.getColumnIndexOrThrow(FIELD_HOST_STAYCONNECTED); - +			COL_STAYCONNECTED = c.getColumnIndexOrThrow(FIELD_HOST_STAYCONNECTED), +			COL_QUICKDISCONNECT = c.getColumnIndexOrThrow(FIELD_HOST_QUICKDISCONNECT);  		while (c.moveToNext()) {  			HostBean host = new HostBean(); @@ -400,6 +405,7 @@ public class HostDatabase extends RobustSQLiteOpenHelper {  			host.setCompression(Boolean.valueOf(c.getString(COL_COMPRESSION)));  			host.setEncoding(c.getString(COL_ENCODING));  			host.setStayConnected(Boolean.valueOf(c.getString(COL_STAYCONNECTED))); +			host.setQuickDisconnect(Boolean.valueOf(c.getString(COL_QUICKDISCONNECT)));  			hosts.add(host);  		} | 
