diff --git a/res/values/strings.xml b/res/values/strings.xml
index 64b638dea9..b685044242 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -39,8 +39,8 @@
partial
SMS
MMS
- Incoming SMS
- outgoing SMS
+ Incoming
+ outgoing
(image)
@@ -683,8 +683,8 @@
Conversation length limit
Trim all threads now
Scan through all conversation threads and enforce conversation length limits
- Light theme
- Dark theme
+ Light
+ Dark
Appearance
Theme
Default
diff --git a/src/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java
index 052a861548..23aadc7428 100644
--- a/src/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java
+++ b/src/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java
@@ -2,18 +2,25 @@ package org.thoughtcrime.securesms.preferences;
import android.content.Context;
import android.os.Bundle;
-import android.support.v4.preference.PreferenceFragment;
+import android.preference.ListPreference;
import org.thoughtcrime.securesms.ApplicationPreferencesActivity;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
-public class AppearancePreferenceFragment extends PreferenceFragment {
+import java.util.Arrays;
+
+public class AppearancePreferenceFragment extends ListSummaryPreferenceFragment {
@Override
public void onCreate(Bundle paramBundle) {
super.onCreate(paramBundle);
addPreferencesFromResource(R.xml.preferences_appearance);
+
+ this.findPreference(TextSecurePreferences.THEME_PREF).setOnPreferenceChangeListener(new ListSummaryListener());
+ this.findPreference(TextSecurePreferences.LANGUAGE_PREF).setOnPreferenceChangeListener(new ListSummaryListener());
+ initializeListSummary((ListPreference)findPreference(TextSecurePreferences.THEME_PREF));
+ initializeListSummary((ListPreference)findPreference(TextSecurePreferences.LANGUAGE_PREF));
}
@Override
@@ -40,22 +47,10 @@ public class AppearancePreferenceFragment extends PreferenceFragment {
String[] themeEntries = context.getResources().getStringArray(R.array.pref_theme_entries);
String[] themeEntryValues = context.getResources().getStringArray(R.array.pref_theme_values);
- Integer langIndex = findIndexOfValue(TextSecurePreferences.getLanguage(context), languageEntryValues);
- Integer themeIndex = findIndexOfValue(TextSecurePreferences.getTheme(context), themeEntryValues);
+ int langIndex = Arrays.asList(languageEntryValues).indexOf(TextSecurePreferences.getLanguage(context));
+ int themeIndex = Arrays.asList(themeEntryValues).indexOf(TextSecurePreferences.getTheme(context));
return context.getString(R.string.preferences__theme) + ": " + themeEntries[themeIndex] + ", " +
- context.getString(R.string.preferences__language) + ": " + languageEntries[langIndex];
- }
-
- // Copy from ListPreference
- private static int findIndexOfValue(String value, CharSequence[] mEntryValues) {
- if (value != null && mEntryValues != null) {
- for (int i = mEntryValues.length - 1; i >= 0; i--) {
- if (mEntryValues[i].equals(value)) {
- return i;
- }
- }
- }
- return -1;
+ context.getString(R.string.preferences__language) + ": " + languageEntries[langIndex];
}
}
diff --git a/src/org/thoughtcrime/securesms/preferences/ListSummaryPreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/ListSummaryPreferenceFragment.java
new file mode 100644
index 0000000000..d9902a34b5
--- /dev/null
+++ b/src/org/thoughtcrime/securesms/preferences/ListSummaryPreferenceFragment.java
@@ -0,0 +1,29 @@
+package org.thoughtcrime.securesms.preferences;
+
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.support.v4.preference.PreferenceFragment;
+
+import org.thoughtcrime.securesms.R;
+
+import java.util.Arrays;
+
+public abstract class ListSummaryPreferenceFragment extends PreferenceFragment {
+
+ protected class ListSummaryListener implements Preference.OnPreferenceChangeListener {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object value) {
+ ListPreference listPref = (ListPreference) preference;
+ int entryIndex = Arrays.asList(listPref.getEntryValues()).indexOf(value);
+
+ listPref.setSummary(entryIndex >= 0 && entryIndex < listPref.getEntries().length
+ ? listPref.getEntries()[entryIndex]
+ : getString(R.string.preferences__led_color_unknown));
+ return true;
+ }
+ }
+
+ protected void initializeListSummary(ListPreference pref) {
+ pref.setSummary(pref.getEntry());
+ }
+}
diff --git a/src/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
index f395a5968e..d9862f85d6 100644
--- a/src/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
+++ b/src/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
@@ -10,17 +10,13 @@ import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceManager;
import android.preference.RingtonePreference;
-import android.support.v4.preference.PreferenceFragment;
import android.text.TextUtils;
-import android.util.Log;
import org.thoughtcrime.securesms.ApplicationPreferencesActivity;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
-import java.util.Arrays;
-
-public class NotificationsPreferenceFragment extends PreferenceFragment {
+public class NotificationsPreferenceFragment extends ListSummaryPreferenceFragment {
@Override
public void onCreate(Bundle paramBundle) {
@@ -48,19 +44,6 @@ public class NotificationsPreferenceFragment extends PreferenceFragment {
((ApplicationPreferencesActivity) getActivity()).getSupportActionBar().setTitle(R.string.preferences__notifications);
}
- private class ListSummaryListener implements Preference.OnPreferenceChangeListener {
- @Override
- public boolean onPreferenceChange(Preference preference, Object value) {
- ListPreference listPref = (ListPreference) preference;
-
- final int entryIndex = Arrays.asList(listPref.getEntryValues()).indexOf(value);
- listPref.setSummary(entryIndex >= 0 && entryIndex < listPref.getEntries().length
- ? listPref.getEntries()[entryIndex]
- : getString(R.string.preferences__led_color_unknown));
- return true;
- }
- }
-
private class RingtoneSummaryListener implements Preference.OnPreferenceChangeListener {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -79,10 +62,6 @@ public class NotificationsPreferenceFragment extends PreferenceFragment {
}
}
- private void initializeListSummary(ListPreference pref) {
- pref.setSummary(pref.getEntry());
- }
-
private void initializeRingtoneSummary(RingtonePreference pref) {
RingtoneSummaryListener listener =
(RingtoneSummaryListener) pref.getOnPreferenceChangeListener();