19f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Lipackage org.connectbot.util; 29f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 39f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport android.content.Context; 49f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport android.preference.ListPreference; 59f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport android.util.AttributeSet; 69f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 79f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport java.nio.charset.Charset; 89f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport java.util.LinkedList; 99f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport java.util.List; 109f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Liimport java.util.Map.Entry; 119f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 129f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Lipublic class EncodingPreference extends ListPreference { 139f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 149f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li public EncodingPreference(Context context, AttributeSet attrs) { 159f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li super(context, attrs); 169f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 179f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li List<CharSequence> charsetIdsList = new LinkedList<CharSequence>(); 189f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li List<CharSequence> charsetNamesList = new LinkedList<CharSequence>(); 199f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 209f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li for (Entry<String, Charset> entry : Charset.availableCharsets().entrySet()) { 219f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li Charset c = entry.getValue(); 229f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li if (c.canEncode() && c.isRegistered()) { 239f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li String key = entry.getKey(); 249f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li if (key.startsWith("cp")) { 259f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li // Custom CP437 charset changes 269f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li charsetIdsList.add("CP437"); 279f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li charsetNamesList.add("CP437"); 289f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li } 299f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li charsetIdsList.add(entry.getKey()); 309f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li charsetNamesList.add(c.displayName()); 319f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li } 329f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li } 339f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li 349f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li this.setEntryValues(charsetIdsList.toArray(new CharSequence[charsetIdsList.size()])); 359f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li this.setEntries(charsetNamesList.toArray(new CharSequence[charsetNamesList.size()])); 369f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li } 379f32db87b486c93a0ea71eb1781ee45676b8bf8bXin Li} 38