Add ability to translate themes and viewmodes

Closes #50
This commit is contained in:
Michael Schättgen 2019-04-09 17:53:10 +02:00
parent 1ac42d85d6
commit b41e328d22
5 changed files with 55 additions and 15 deletions

View file

@ -17,16 +17,16 @@ public enum Theme {
return null;
}
public static String getThemeName(int x) {
public static int getThemeNameResource(int x) {
switch (x) {
case 0:
return "Light theme";
return R.string.light_theme_title;
case 1:
return "Dark theme";
return R.string.dark_theme_title;
case 2:
return "Amoled theme";
return R.string.amoled_theme_title;
}
return null;
return R.string.light_theme_title;
}
public static String[] getThemeNames() {
@ -36,4 +36,12 @@ public enum Theme {
"Amoled theme"
};
}
public static int[] getThemeNameResources() {
return new int[] {
R.string.light_theme_title,
R.string.dark_theme_title,
R.string.amoled_theme_title
};
}
}

View file

@ -17,16 +17,17 @@ public enum ViewMode {
return null;
}
public static String getViewModeName(int x) {
public static int getViewModeNameResource(int x) {
switch (x) {
case 0:
return "Normal";
return R.string.normal_viewmode_title;
case 1:
return "Compact";
return R.string.compact_mode_title;
case 2:
return "Small";
return R.string.small_mode_title;
}
return null;
return R.string.normal_viewmode_title;
}
public static String[] getViewModeNames() {
@ -36,4 +37,12 @@ public enum ViewMode {
"Small"
};
}
public static int[] getViewModeNameResources() {
return new int[] {
R.string.normal_viewmode_title,
R.string.compact_mode_title,
R.string.small_mode_title
};
}
}

View file

@ -98,11 +98,11 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
int currentTheme = app.getPreferences().getCurrentTheme();
Preference darkModePreference = findPreference("pref_dark_mode");
darkModePreference.setSummary("Selected: " + Theme.getThemeName(currentTheme));
darkModePreference.setSummary(String.format("%s: %s", getString(R.string.selected), getString(Theme.getThemeNameResource(currentTheme))));
darkModePreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
String[] themeNames = Theme.getThemeNames();
String[] themeNames = getStringsFromResourceIds(Theme.getThemeNameResources());
int checkedTheme = app.getPreferences().getCurrentTheme();
Dialogs.showSecureDialog(new AlertDialog.Builder(getActivity())
@ -134,11 +134,11 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
int currentViewMode = app.getPreferences().getCurrentViewMode();
Preference viewModePreference = findPreference("pref_view_mode");
viewModePreference.setSummary("Selected: " + ViewMode.getViewModeName(currentViewMode));
viewModePreference.setSummary(String.format("%s: %s", getString(R.string.selected), getString(ViewMode.getViewModeNameResource(currentViewMode))));
viewModePreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
String[] viewModes = ViewMode.getViewModeNames();
String[] viewModes = getStringsFromResourceIds(ViewMode.getViewModeNameResources());
int checkedMode = app.getPreferences().getCurrentViewMode();
Dialogs.showSecureDialog(new AlertDialog.Builder(getActivity())
@ -149,7 +149,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
dialog.dismiss();
viewModePreference.setSummary("Selected: " + ViewMode.getViewModeName(i));
viewModePreference.setSummary(String.format("%s: %s", getString(R.string.selected), getString(ViewMode.getViewModeNameResource(i))));
_result.putExtra("needsRecreate", true);
})
.setPositiveButton(android.R.string.ok, null)
@ -663,6 +663,15 @@ public class PreferencesFragment extends PreferenceFragmentCompat {
}
}
private String[] getStringsFromResourceIds(int[] resourceIds) {
String[] strings = new String[resourceIds.length];
for(int i = 0; i < resourceIds.length; i++) {
strings[i] = getString(resourceIds[i]);
}
return strings;
}
private class SetPasswordListener implements Dialogs.SlotListener {
@Override
public void onSlotResult(Slot slot, Cipher cipher) {