diff options
author | Kenny Root <kenny@the-b.org> | 2009-12-15 04:48:38 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2009-12-15 04:48:38 +0000 |
commit | f485e61fb8d2325fd1c43ab383a9ca34e84d2cd8 (patch) | |
tree | 51b694fd9a2a96e922e6b6fa6af64cb58fdb8680 /src | |
parent | 98389949321014a300b6be6eff0fa75b7f02e69d (diff) | |
download | connectbot-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')
-rw-r--r-- | src/org/connectbot/service/TerminalBridge.java | 2 | ||||
-rw-r--r-- | src/org/connectbot/util/HostDatabase.java | 41 |
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))); |