diff --git a/src/main/res/xml/pref_all.xml b/src/main/res/xml/pref_all.xml
index 07db85df..68238243 100644
--- a/src/main/res/xml/pref_all.xml
+++ b/src/main/res/xml/pref_all.xml
@@ -35,13 +35,13 @@
android:summary="@string/sitekey_summary"
android:title="@string/sitekey">
-
-
+
diff --git a/src/main/scala/com/github/shadowsocks/preferences/SummaryListPreference.scala b/src/main/scala/com/github/shadowsocks/preferences/SummaryListPreference.scala
new file mode 100644
index 00000000..d4759d2d
--- /dev/null
+++ b/src/main/scala/com/github/shadowsocks/preferences/SummaryListPreference.scala
@@ -0,0 +1,62 @@
+/*
+ * Shadowsocks - A shadowsocks client for Android
+ * Copyright (C) 2014
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ *
+ * ___====-_ _-====___
+ * _--^^^#####// \\#####^^^--_
+ * _-^##########// ( ) \\##########^-_
+ * -############// |\^^/| \\############-
+ * _/############// (@::@) \\############\_
+ * /#############(( \\// ))#############\
+ * -###############\\ (oo) //###############-
+ * -#################\\ / VV \ //#################-
+ * -###################\\/ \//###################-
+ * _#/|##########/\######( /\ )######/\##########|\#_
+ * |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
+ * ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
+ * ` ` ` ` / | | | | \ ' ' ' '
+ * ( | | | | )
+ * __\ | | | | /__
+ * (vvv(VVV)(VVV)vvv)
+ *
+ * HERE BE DRAGONS
+ *
+ */
+
+package com.github.shadowsocks.preferences
+
+import android.preference.ListPreference
+import android.content.Context
+import android.util.AttributeSet
+
+class SummaryListPreference(context: Context, attrs: AttributeSet)
+ extends ListPreference(context, attrs) {
+
+ override def setValue(text: String) {
+ super.setValue(text)
+ setSummary(text.toUpperCase)
+ }
+
+ override def setSummary(summary: CharSequence) {
+ if (summary.toString.isEmpty) {
+ super.setSummary("")
+ } else {
+ super.setSummary(summary)
+ }
+ }
+
+}