diff --git a/MessengerProj/src/main/java/com/b44t/messenger/LocaleController.java b/MessengerProj/src/main/java/com/b44t/messenger/LocaleController.java index 9a10796de..1078e5d9e 100644 --- a/MessengerProj/src/main/java/com/b44t/messenger/LocaleController.java +++ b/MessengerProj/src/main/java/com/b44t/messenger/LocaleController.java @@ -75,6 +75,7 @@ public class LocaleController { public static class LocaleInfo { public String name; + public String nameEnglish; public String shortName; } @@ -97,49 +98,64 @@ public class LocaleController { public LocaleController() { LocaleInfo localeInfo = new LocaleInfo(); localeInfo.name = "English"; + localeInfo.nameEnglish = "English"; localeInfo.shortName = "en"; languagesDict.put(localeInfo.shortName, localeInfo); localeInfo = new LocaleInfo(); localeInfo.name = "Italiano"; + localeInfo.nameEnglish = "Italian"; localeInfo.shortName = "it"; languagesDict.put(localeInfo.shortName, localeInfo); localeInfo = new LocaleInfo(); localeInfo.name = "Español"; + localeInfo.nameEnglish = "Spanish"; localeInfo.shortName = "es"; languagesDict.put(localeInfo.shortName, localeInfo); localeInfo = new LocaleInfo(); localeInfo.name = "Deutsch"; + localeInfo.nameEnglish = "German"; localeInfo.shortName = "de"; languagesDict.put(localeInfo.shortName, localeInfo); localeInfo = new LocaleInfo(); localeInfo.name = "Français"; + localeInfo.nameEnglish = "French"; localeInfo.shortName = "fr"; languagesDict.put(localeInfo.shortName, localeInfo); localeInfo = new LocaleInfo(); localeInfo.name = "Nederlands"; + localeInfo.nameEnglish = "Dutch"; localeInfo.shortName = "nl"; languagesDict.put(localeInfo.shortName, localeInfo); localeInfo = new LocaleInfo(); localeInfo.name = "Polski"; + localeInfo.nameEnglish = "Polish"; localeInfo.shortName = "pl"; languagesDict.put(localeInfo.shortName, localeInfo); localeInfo = new LocaleInfo(); localeInfo.name = "Português"; + localeInfo.nameEnglish = "Portuguese"; localeInfo.shortName = "pt"; languagesDict.put(localeInfo.shortName, localeInfo); localeInfo = new LocaleInfo(); localeInfo.name = "한국어"; + localeInfo.nameEnglish = "Korean"; localeInfo.shortName = "ko"; languagesDict.put(localeInfo.shortName, localeInfo); + localeInfo = new LocaleInfo(); + localeInfo.name = "Magyar"; + localeInfo.nameEnglish = "Hungarian"; + localeInfo.shortName = "hu"; + languagesDict.put(localeInfo.shortName, localeInfo); + systemDefaultLocale = Locale.getDefault(); // we have to remember this as we may switch back to default later is24HourFormat = DateFormat.is24HourFormat(ApplicationLoader.applicationContext); LocaleInfo currentInfo = null; diff --git a/MessengerProj/src/main/java/com/b44t/ui/LanguageSelectActivity.java b/MessengerProj/src/main/java/com/b44t/ui/LanguageSelectActivity.java index dd0b1e755..8cd395f08 100644 --- a/MessengerProj/src/main/java/com/b44t/ui/LanguageSelectActivity.java +++ b/MessengerProj/src/main/java/com/b44t/ui/LanguageSelectActivity.java @@ -43,7 +43,7 @@ import com.b44t.messenger.LocaleController; import com.b44t.messenger.R; import com.b44t.messenger.Utilities; import com.b44t.ui.Adapters.BaseFragmentAdapter; -import com.b44t.ui.Cells.TextSettingsCell; +import com.b44t.ui.Cells.TextDetailSettingsCell; import com.b44t.ui.ActionBar.ActionBar; import com.b44t.ui.ActionBar.ActionBarMenu; import com.b44t.ui.ActionBar.ActionBarMenuItem; @@ -81,6 +81,7 @@ public class LanguageSelectActivity extends BaseFragment { }); LocaleController.LocaleInfo localeInfo = new LocaleController.LocaleInfo(); localeInfo.name = ApplicationLoader.applicationContext.getString(R.string.Default); // the "Default" option is interesting, because it not only sets the language to default but also clears the "override" flag - further system changes are then followed by Delta Chat again. + localeInfo.nameEnglish = "Default"; localeInfo.shortName = null; sortedLanguages.add(0, localeInfo); @@ -270,7 +271,7 @@ public class LanguageSelectActivity extends BaseFragment { ArrayList resultArray = new ArrayList<>(); for (LocaleController.LocaleInfo c : sortedLanguages) { - if (c.name.toLowerCase().startsWith(query)) { + if (c.name.toLowerCase().startsWith(query) || c.nameEnglish.toLowerCase().startsWith(query)) { resultArray.add(c); } } @@ -333,11 +334,11 @@ public class LanguageSelectActivity extends BaseFragment { @Override public View getView(int i, View view, ViewGroup viewGroup) { if (view == null) { - view = new TextSettingsCell(mContext); + view = new TextDetailSettingsCell(mContext); } LocaleController.LocaleInfo c = searchResult.get(i); - ((TextSettingsCell) view).setText(c.name, i != searchResult.size() - 1); + ((TextDetailSettingsCell) view).setTextAndValue(c.name, c.nameEnglish, i != searchResult.size() - 1); return view; } @@ -401,11 +402,11 @@ public class LanguageSelectActivity extends BaseFragment { @Override public View getView(int i, View view, ViewGroup viewGroup) { if (view == null) { - view = new TextSettingsCell(mContext); + view = new TextDetailSettingsCell(mContext); } LocaleController.LocaleInfo localeInfo = sortedLanguages.get(i); - ((TextSettingsCell) view).setText(localeInfo.name, i != sortedLanguages.size() - 1); + ((TextDetailSettingsCell) view).setTextAndValue(localeInfo.name, localeInfo.nameEnglish, i != sortedLanguages.size() - 1); return view; }