aboutsummaryrefslogtreecommitdiffstats
path: root/src/org
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2009-12-15 04:48:38 +0000
committerKenny Root <kenny@the-b.org>2009-12-15 04:48:38 +0000
commitf485e61fb8d2325fd1c43ab383a9ca34e84d2cd8 (patch)
tree51b694fd9a2a96e922e6b6fa6af64cb58fdb8680 /src/org
parent98389949321014a300b6be6eff0fa75b7f02e69d (diff)
downloadconnectbot-f485e61fb8d2325fd1c43ab383a9ca34e84d2cd8.tar.gz
connectbot-f485e61fb8d2325fd1c43ab383a9ca34e84d2cd8.tar.bz2
connectbot-f485e61fb8d2325fd1c43ab383a9ca34e84d2cd8.zip
Change way of saving terminal font size
Previous way didn't work because we always had a stale host state in our bean. Oh well. git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@434 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src/org')
-rw-r--r--src/org/connectbot/service/TerminalBridge.java2
-rw-r--r--src/org/connectbot/util/HostDatabase.java41
2 files changed, 34 insertions, 9 deletions
diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java
index 4918a27..79789d3 100644
--- a/src/org/connectbot/service/TerminalBridge.java
+++ b/src/org/connectbot/service/TerminalBridge.java
@@ -911,7 +911,7 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener {
ofscl.onFontSizeChanged(size);
host.setFontSize((int) fontSize);
- manager.hostdb.saveHost(host);
+ manager.hostdb.updateFontSize(host);
}
/**
diff --git a/src/org/connectbot/util/HostDatabase.java b/src/org/connectbot/util/HostDatabase.java
index b4f2fa5..ad59c0f 100644
--- a/src/org/connectbot/util/HostDatabase.java
+++ b/src/org/connectbot/util/HostDatabase.java
@@ -285,25 +285,48 @@ public class HostDatabase extends RobustSQLiteOpenHelper {
* Create a new host using the given parameters.
*/
public HostBean saveHost(HostBean host) {
- long id = host.getId();
+ long id;
synchronized (dbLock) {
SQLiteDatabase db = this.getWritableDatabase();
- if (id < 0) {
- id = db.insert(TABLE_HOSTS, null, host.getValues());
- host.setId(id);
- } else {
- db.update(TABLE_HOSTS, host.getValues(), "_id = ?",
- new String[] { String.valueOf(id) });
- }
+ id = db.insert(TABLE_HOSTS, null, host.getValues());
+
db.close();
}
+ host.setId(id);
+
return host;
}
/**
+ * Update a field in a host record.
+ */
+ public boolean updateFontSize(HostBean host) {
+ long id = host.getId();
+ if (id < 0) {
+ Log.e(TAG, "Attempting to update host without ID!",
+ new IllegalArgumentException());
+ return false;
+ }
+
+ ContentValues updates = new ContentValues();
+ updates.put(FIELD_HOST_FONTSIZE, host.getFontSize());
+
+ synchronized (dbLock) {
+ SQLiteDatabase db = getWritableDatabase();
+
+ db.update(TABLE_HOSTS, updates, "_id = ?",
+ new String[] { String.valueOf(id) });
+
+ db.close();
+ }
+
+ return true;
+ }
+
+ /**
* Delete a specific host by its <code>_id</code> value.
*/
public void deleteHost(HostBean host) {
@@ -360,6 +383,7 @@ public class HostDatabase extends RobustSQLiteOpenHelper {
COL_PUBKEYID = c.getColumnIndexOrThrow(FIELD_HOST_PUBKEYID),
COL_WANTSESSION = c.getColumnIndexOrThrow(FIELD_HOST_WANTSESSION),
COL_DELKEY = c.getColumnIndexOrThrow(FIELD_HOST_DELKEY),
+ 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);
@@ -382,6 +406,7 @@ public class HostDatabase extends RobustSQLiteOpenHelper {
host.setPubkeyId(c.getLong(COL_PUBKEYID));
host.setWantSession(Boolean.valueOf(c.getString(COL_WANTSESSION)));
host.setDelKey(c.getString(COL_DELKEY));
+ host.setFontSize(c.getInt(COL_FONTSIZE));
host.setCompression(Boolean.valueOf(c.getString(COL_COMPRESSION)));
host.setEncoding(c.getString(COL_ENCODING));
host.setStayConnected(Boolean.valueOf(c.getString(COL_STAYCONNECTED)));