mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-08 07:06:41 +00:00
Refactor: Modify LanguageHelper class to simplify switch block
This commit simplifies the LanguageHelper class switch block. The original switch had 18 or so initial cases, most of which could be reduced to two general cases. The two general cases have been impletemented as the default.
This commit is contained in:
parent
22ccb1bcf7
commit
d2d8cb597f
4 changed files with 33 additions and 77 deletions
|
|
@ -59,7 +59,7 @@
|
|||
<item>en</item>
|
||||
<item>bg</item>
|
||||
<item>de</item>
|
||||
<item>en-rGB</item>
|
||||
<item>en_GB</item>
|
||||
<item>es</item>
|
||||
<item>fr</item>
|
||||
<item>iw</item>
|
||||
|
|
@ -70,10 +70,10 @@
|
|||
<item>nl</item>
|
||||
<item>pl</item>
|
||||
<item>pt</item>
|
||||
<item>pt-rBR</item>
|
||||
<item>pt_BR</item>
|
||||
<item>ru</item>
|
||||
<item>zh</item>
|
||||
<item>zh-rTW</item>
|
||||
<item>zh_TW</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -11,38 +11,10 @@ public class LanguageHelper {
|
|||
private String languageCode = null;
|
||||
private boolean languageAvailable = false;
|
||||
|
||||
public LanguageHelper (String languagePreference) {
|
||||
switch (languagePreference){
|
||||
case "en":
|
||||
locale = new Locale("en");
|
||||
languageCode = "en";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "bg":
|
||||
locale = new Locale("bg");
|
||||
languageCode = "bg";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "de":
|
||||
locale = new Locale("de");
|
||||
languageCode = "de";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "en-rGB":
|
||||
locale = new Locale("en", "GB");
|
||||
languageCode = "en_GB";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "es":
|
||||
locale = new Locale("es");
|
||||
languageCode = "es";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "fr":
|
||||
locale = new Locale("fr");
|
||||
languageCode = "fr";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
|
||||
public LanguageHelper (String languageSharedPref) {
|
||||
|
||||
switch (languageSharedPref){
|
||||
case "iw":
|
||||
locale = new Locale("iw");
|
||||
languageCode = "he";
|
||||
|
|
@ -58,49 +30,19 @@ public class LanguageHelper {
|
|||
languageCode = "id";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "it":
|
||||
locale = new Locale("it");
|
||||
languageCode = "it";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "ja":
|
||||
locale = new Locale("ja");
|
||||
languageCode = "ja";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "nl":
|
||||
locale = new Locale("nl");
|
||||
languageCode = "nl";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "pl":
|
||||
locale = new Locale("pl");
|
||||
languageCode = "pl";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "pt":
|
||||
locale = new Locale("pt","PT");
|
||||
languageCode = "pt";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "pt-rBR":
|
||||
locale = new Locale("pt","BR");
|
||||
languageCode = "pt_BR";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "ru":
|
||||
locale = new Locale("ru");
|
||||
languageCode = "ru";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "zh":
|
||||
locale = new Locale("zh");
|
||||
languageCode = "zh";
|
||||
languageAvailable = true;
|
||||
break;
|
||||
case "zh-rTW":
|
||||
locale = new Locale("zh","TW");
|
||||
languageCode = "zh_TW";
|
||||
default:
|
||||
if (languageSharedPref.contains("_")) {
|
||||
String[] languageCodeParts = languageSharedPref.split("_");
|
||||
locale = new Locale(languageCodeParts[0],languageCodeParts[1]);
|
||||
} else {
|
||||
locale = new Locale(languageSharedPref);
|
||||
}
|
||||
languageCode = languageSharedPref;
|
||||
languageAvailable = true;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.habitrpg.android.habitica.callbacks.HabitRPGUserCallback;
|
|||
import com.habitrpg.android.habitica.callbacks.MergeUserCallback;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.events.commands.UpdateUserCommand;
|
||||
import com.habitrpg.android.habitica.helpers.LanguageHelper;
|
||||
import com.habitrpg.android.habitica.ui.fragments.setup.AvatarSetupFragment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.setup.TaskSetupFragment;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
|
||||
|
|
@ -151,10 +152,13 @@ public class SetupActivity extends BaseActivity implements View.OnClickListener,
|
|||
public void onClick(View v) {
|
||||
if (v == this.nextButton) {
|
||||
String currentDeviceLanguage = Locale.getDefault().getLanguage();
|
||||
apiHelper.apiService.registrationLanguage(currentDeviceLanguage)
|
||||
.compose(apiHelper.configureApiCallObserver())
|
||||
.subscribe(new MergeUserCallback(this, user), throwable -> {
|
||||
});
|
||||
LanguageHelper languageHelper = new LanguageHelper(currentDeviceLanguage);
|
||||
if (languageHelper.isLanguageAvailable()){
|
||||
apiHelper.apiService.registrationLanguage(currentDeviceLanguage)
|
||||
.compose(apiHelper.configureApiCallObserver())
|
||||
.subscribe(new MergeUserCallback(this, user), throwable -> {
|
||||
});
|
||||
}
|
||||
if (this.pager.getCurrentItem() == 1) {
|
||||
List<Task> newTasks = this.taskSetupFragment.createSampleTasks();
|
||||
this.completedSetup = true;
|
||||
|
|
|
|||
|
|
@ -224,6 +224,16 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
|||
.compose(apiHelper.configureApiCallObserver())
|
||||
.subscribe(new MergeUserCallback(activity, user), throwable -> {
|
||||
});
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT <= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1){
|
||||
Intent intent = new Intent(getActivity(), MainActivity.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(intent);
|
||||
} else {
|
||||
Intent intent = new Intent(getActivity(), MainActivity.class);
|
||||
this.startActivity(intent);
|
||||
getActivity().finishAffinity();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue