diff options
Diffstat (limited to 'src')
-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 |
3 files changed, 21 insertions, 5 deletions
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); } |