diff options
-rw-r--r-- | src/org/connectbot/HostEditorActivity.java | 19 | ||||
-rw-r--r-- | src/org/connectbot/util/HostDatabase.java | 9 |
2 files changed, 23 insertions, 5 deletions
diff --git a/src/org/connectbot/HostEditorActivity.java b/src/org/connectbot/HostEditorActivity.java index 308bee7..dcebbf8 100644 --- a/src/org/connectbot/HostEditorActivity.java +++ b/src/org/connectbot/HostEditorActivity.java @@ -18,11 +18,13 @@ package org.connectbot; +import java.nio.charset.Charset; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import org.connectbot.util.HostDatabase; import org.connectbot.util.PubkeyDatabase; @@ -241,6 +243,23 @@ public class HostEditorActivity extends PreferenceActivity implements OnSharedPr pubkeyIds.addAll(pubkeydb.allValues("_id")); pubkeyPref.setEntryValues(pubkeyIds.toArray(new CharSequence[pubkeyIds.size()])); + // Populate the character set encoding list with all available + ListPreference charsetPref = (ListPreference) findPreference(HostDatabase.FIELD_HOST_ENCODING); + + List<CharSequence> charsetIds = new LinkedList<CharSequence>(); + List<CharSequence> charsetNames = new LinkedList<CharSequence>(); + + for (Entry<String, Charset> entry : Charset.availableCharsets().entrySet()) { + Charset c = entry.getValue(); + if (c.canEncode() && c.isRegistered()) { + charsetIds.add(entry.getKey()); + charsetNames.add(c.displayName()); + } + } + + charsetPref.setEntryValues(charsetIds.toArray(new CharSequence[charsetIds.size()])); + charsetPref.setEntries(charsetNames.toArray(new CharSequence[charsetNames.size()])); + this.updateSummaries(); } diff --git a/src/org/connectbot/util/HostDatabase.java b/src/org/connectbot/util/HostDatabase.java index b8f3860..6b1f666 100644 --- a/src/org/connectbot/util/HostDatabase.java +++ b/src/org/connectbot/util/HostDatabase.java @@ -18,6 +18,7 @@ package org.connectbot.util; +import java.nio.charset.Charset; import java.util.LinkedList; import java.util.List; @@ -80,9 +81,7 @@ public class HostDatabase extends SQLiteOpenHelper { public final static String PORTFORWARD_DYNAMIC4 = "dynamic4"; public final static String PORTFORWARD_DYNAMIC5 = "dynamic5"; - public final static String ENCODING_ASCII = "ASCII"; - public final static String ENCODING_UTF8 = "UTF-8"; - public final static String ENCODING_ISO88591 = "ISO8859_1"; + public final static String ENCODING_DEFAULT = Charset.defaultCharset().name(); public final static long PUBKEYID_NEVER = -2; public final static long PUBKEYID_ANY = -1; @@ -110,7 +109,7 @@ public class HostDatabase extends SQLiteOpenHelper { + FIELD_HOST_PUBKEYID + " INTEGER DEFAULT " + PUBKEYID_ANY + ", " + FIELD_HOST_WANTSESSION + " TEXT DEFAULT '" + Boolean.toString(true) + "', " + FIELD_HOST_COMPRESSION + " TEXT DEFAULT '" + Boolean.toString(false) + "', " - + FIELD_HOST_ENCODING + " TEXT DEFAULT '" + ENCODING_ASCII + "')"); + + FIELD_HOST_ENCODING + " TEXT DEFAULT '" + ENCODING_DEFAULT + "')"); // insert a few sample hosts, none of which probably connect //this.createHost(db, "connectbot@bravo", "connectbot", "192.168.254.230", 22, COLOR_GRAY); //this.createHost(db, "cron@server.example.com", "cron", "server.example.com", 22, COLOR_GRAY, PUBKEYID_ANY); @@ -157,7 +156,7 @@ public class HostDatabase extends SQLiteOpenHelper { + " ADD COLUMN " + FIELD_HOST_COMPRESSION + " TEXT DEFAULT '" + Boolean.toString(false) + "'"); case 14: db.execSQL("ALTER TABLE " + TABLE_HOSTS - + " ADD COLUMN " + FIELD_HOST_ENCODING + " TEXT DEFAULT '" + ENCODING_ASCII + "'"); + + " ADD COLUMN " + FIELD_HOST_ENCODING + " TEXT DEFAULT '" + ENCODING_DEFAULT + "'"); } } |