Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -662,4 +662,7 @@
<string name="pref_ctrl_string_summary">String of characters for the CTRL+? combination</string>

<string name="fullscreen">Fullscreen</string>

<string name="hostpref_quickdisconnect_title">Close on disconnect</string>
<string name="hostpref_quickdisconnect_summary">Close immediately after remote disconnect without prompting.</string>
</resources>
6 changes: 6 additions & 0 deletions res/xml/host_prefs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,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"
Expand Down
12 changes: 11 additions & 1 deletion src/sk/vx/connectbot/bean/HostBean.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,9 @@ public class HostBean extends AbstractBean {
private boolean wantX11Forward = false;
private String x11Host = "localhost";
private int x11Port = 6000;
private boolean quickDisconnect = true;

public HostBean() {
public HostBean() {

}

Expand Down Expand Up @@ -207,6 +208,14 @@ public void setStayConnected(boolean stayConnected) {
this.stayConnected = stayConnected;
}

public void setQuickDisconnect(boolean quickDisconnect) {
this.quickDisconnect = quickDisconnect;
}

public boolean getQuickDisconnect() {
return quickDisconnect;
}

public boolean getStayConnected() {
return stayConnected;
}
Expand Down Expand Up @@ -271,6 +280,7 @@ public ContentValues getValues() {
values.put(HostDatabase.FIELD_HOST_WANTX11FORWARD, wantX11Forward);
values.put(HostDatabase.FIELD_HOST_X11HOST, x11Host);
values.put(HostDatabase.FIELD_HOST_X11PORT, x11Port);
values.put(HostDatabase.FIELD_HOST_QUICKDISCONNECT, quickDisconnect);
return values;
}

Expand Down
2 changes: 1 addition & 1 deletion src/sk/vx/connectbot/service/TerminalBridge.java
Original file line number Diff line number Diff line change
Expand Up @@ -456,7 +456,7 @@ public void run() {
disconnectThread.setName("Disconnect");
disconnectThread.start();

if (immediate) {
if (immediate || (host.getQuickDisconnect() && !host.getStayConnected())) {
awaitingClose = true;
if (disconnectListener != null)
disconnectListener.onDisconnected(TerminalBridge.this);
Expand Down
14 changes: 11 additions & 3 deletions src/sk/vx/connectbot/util/HostDatabase.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,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 = 24;
public final static int DB_VERSION = 25;

public final static String TABLE_HOSTS = "hosts";
public final static String FIELD_HOST_NICKNAME = "nickname";
Expand All @@ -69,6 +69,7 @@ public class HostDatabase extends RobustSQLiteOpenHelper {
public final static String FIELD_HOST_HTTPPROXY = "httpproxy";
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 FIELD_HOST_WANTX11FORWARD = "wantx11forward";
public final static String FIELD_HOST_X11HOST = "x11host";
public final static String FIELD_HOST_X11PORT = "x11port";
Expand Down Expand Up @@ -188,7 +189,8 @@ public void onCreate(SQLiteDatabase db) {
+ FIELD_PORTFORWARD_TYPE + " TEXT NOT NULL DEFAULT " + PORTFORWARD_LOCAL + ", "
+ FIELD_PORTFORWARD_SOURCEPORT + " INTEGER NOT NULL DEFAULT 8080, "
+ FIELD_PORTFORWARD_DESTADDR + " TEXT, "
+ FIELD_PORTFORWARD_DESTPORT + " TEXT)");
+ FIELD_PORTFORWARD_DESTPORT + " TEXT,"
+ FIELD_HOST_QUICKDISCONNECT + " TEXT)");

db.execSQL("CREATE INDEX " + TABLE_PORTFORWARDS + FIELD_PORTFORWARD_HOSTID + "index ON "
+ TABLE_PORTFORWARDS + " (" + FIELD_PORTFORWARD_HOSTID + ");");
Expand Down Expand Up @@ -279,6 +281,10 @@ public void onRobustUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) t
case 23:
db.execSQL("ALTER TABLE " + TABLE_HOSTS
+ " ADD COLUMN " + FIELD_HOST_HTTPPROXY + " TEXT");

case 24:
db.execSQL("ALTER TABLE " + TABLE_HOSTS
+ " ADD COLUMN " + FIELD_HOST_QUICKDISCONNECT + " TEXT");
}
}

Expand Down Expand Up @@ -400,7 +406,8 @@ private List<HostBean> createHostBeans(Cursor c) {
COL_STAYCONNECTED = c.getColumnIndexOrThrow(FIELD_HOST_STAYCONNECTED),
COL_WANTX11FORWARD = c.getColumnIndexOrThrow(FIELD_HOST_WANTX11FORWARD),
COL_X11HOST = c.getColumnIndexOrThrow(FIELD_HOST_X11HOST),
COL_X11PORT = c.getColumnIndexOrThrow(FIELD_HOST_X11PORT);
COL_X11PORT = c.getColumnIndexOrThrow(FIELD_HOST_X11PORT),
COL_QUICKDISCONNECT = c.getColumnIndexOrThrow(FIELD_HOST_QUICKDISCONNECT);

while (c.moveToNext()) {
HostBean host = new HostBean();
Expand All @@ -427,6 +434,7 @@ private List<HostBean> createHostBeans(Cursor c) {
host.setWantX11Forward(Boolean.valueOf(c.getString(COL_WANTX11FORWARD)));
host.setX11Host(c.getString(COL_X11HOST));
host.setX11Port(c.getInt(COL_X11PORT));
host.setQuickDisconnect(Boolean.valueOf(c.getString(COL_QUICKDISCONNECT)));

hosts.add(host);
}
Expand Down