From 4b63b63b0d47153514e558fe8e5a75a7d990b3cb Mon Sep 17 00:00:00 2001 From: Daniel Kaparunakis Date: Tue, 6 Sep 2016 00:10:51 -0500 Subject: [PATCH] Refactor: Fix logic for language discovery at registration This commit fixes the logic of language discovery at registration. As opposed to using the LanguageHelper class, the new logic looks at the resources themselves to determine whether the app can support the language of the phone. --- .../habitica/helpers/LanguageHelper.java | 11 ----------- .../habitica/ui/activities/SetupActivity.java | 19 ++++++++++--------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/LanguageHelper.java b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/LanguageHelper.java index 722e8733f..b43068061 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/LanguageHelper.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/LanguageHelper.java @@ -9,8 +9,6 @@ public class LanguageHelper { private Locale locale = null; private String languageCode = null; - private boolean languageAvailable = false; - public LanguageHelper (String languageSharedPref) { @@ -18,22 +16,18 @@ public class LanguageHelper { case "iw": locale = new Locale("iw"); languageCode = "he"; - languageAvailable = true; break; case "hr": locale = new Locale("hr", "HR"); languageCode = "hu"; - languageAvailable = true; break; case "in": locale = new Locale("in"); languageCode = "id"; - languageAvailable = true; break; case "pt": locale = new Locale("pt","PT"); languageCode = "pt"; - languageAvailable = true; break; default: if (languageSharedPref.contains("_")) { @@ -43,15 +37,10 @@ public class LanguageHelper { locale = new Locale(languageSharedPref); } languageCode = languageSharedPref; - languageAvailable = true; break; } } - public boolean isLanguageAvailable() { - return languageAvailable; - } - public String getLanguageCode() { return languageCode; } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java index 2bee55590..91c8cccaf 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java @@ -16,7 +16,6 @@ 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; @@ -79,6 +78,16 @@ public class SetupActivity extends BaseActivity implements View.OnClickListener, } catch (JSONException exception) { } Amplitude.getInstance().logEvent("setup", eventProperties); + + String currentDeviceLanguage = Locale.getDefault().getLanguage(); + for (String language : getResources().getStringArray(R.array.LanguageValues)) { + if (language.equals(currentDeviceLanguage)) { + apiHelper.apiService.registrationLanguage(currentDeviceLanguage) + .compose(apiHelper.configureApiCallObserver()) + .subscribe(new MergeUserCallback(this, user), throwable -> { + }); + } + } } @Override @@ -151,14 +160,6 @@ public class SetupActivity extends BaseActivity implements View.OnClickListener, @Override public void onClick(View v) { if (v == this.nextButton) { - String currentDeviceLanguage = Locale.getDefault().getLanguage(); - 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 newTasks = this.taskSetupFragment.createSampleTasks(); this.completedSetup = true;