blob: 8a6d7aaac9af6725802bc209bcf1e0d30145c9f2 [file] [log] [blame]
package org.connectbot.util;
import android.content.Context;
import android.preference.ListPreference;
import android.util.AttributeSet;
import java.nio.charset.Charset;
import java.util.LinkedList;
import java.util.List;
import java.util.Map.Entry;
public class EncodingPreference extends ListPreference {
public EncodingPreference(Context context, AttributeSet attrs) {
super(context, attrs);
List<CharSequence> charsetIdsList = new LinkedList<CharSequence>();
List<CharSequence> charsetNamesList = new LinkedList<CharSequence>();
for (Entry<String, Charset> entry : Charset.availableCharsets().entrySet()) {
Charset c = entry.getValue();
if (c.canEncode() && c.isRegistered()) {
String key = entry.getKey();
if (key.startsWith("cp")) {
// Custom CP437 charset changes
charsetIdsList.add("CP437");
charsetNamesList.add("CP437");
}
charsetIdsList.add(entry.getKey());
charsetNamesList.add(c.displayName());
}
}
this.setEntryValues(charsetIdsList.toArray(new CharSequence[charsetIdsList.size()]));
this.setEntries(charsetNamesList.toArray(new CharSequence[charsetNamesList.size()]));
}
}