diff --git a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt index b2a2945a..cef7e773 100644 --- a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt +++ b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt @@ -1,7 +1,6 @@ package net.pokeranalytics.android import android.app.Application -import android.content.Context import com.crashlytics.android.Crashlytics import io.fabric.sdk.android.Fabric import io.realm.Realm @@ -70,10 +69,6 @@ class PokerAnalyticsApplication : Application() { } } - override fun attachBaseContext(base: Context?) { - super.attachBaseContext(base) - } - /** * Create fake sessions if we have less than 10 sessions */ diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt index 5ab0e2b9..9ad0b20e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt @@ -12,6 +12,7 @@ import com.google.android.libraries.places.api.model.PlaceLikelihood import io.realm.Realm import net.pokeranalytics.android.model.realm.Location import net.pokeranalytics.android.util.LocationManager +import java.util.* open class PokerAnalyticsActivity : AppCompatActivity() { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt index f7d3f796..56fe2d9c 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt @@ -95,7 +95,7 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta SettingRow.CONTACT_US -> parentActivity.openContactMail(R.string.contact) SettingRow.BUG_REPORT -> parentActivity.openContactMail(R.string.bug_report_subject) SettingRow.LANGUAGE -> { - LocaleUtils.setLocale(requireContext(), "fr") + LocaleUtils.setCurrentLocale(requireContext(), "fr") activity?.recreate() } SettingRow.CURRENCY -> CurrenciesActivity.newInstanceForResult(this@SettingsFragment, SettingsFragment.REQUEST_CODE_CURRENCY) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt index fa9f8a97..8df2b381 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt @@ -50,7 +50,7 @@ enum class SettingRow : RowRepresentable { rows.addAll(arrayListOf(FOLLOW_US)) rows.add(CustomizableRowRepresentable(customViewType = RowViewType.HEADER_TITLE, resId = R.string.preferences)) - rows.addAll(arrayListOf(CURRENCY)) + rows.addAll(arrayListOf(LANGUAGE, CURRENCY)) rows.add( CustomizableRowRepresentable( diff --git a/app/src/main/java/net/pokeranalytics/android/util/LocaleUtils.kt b/app/src/main/java/net/pokeranalytics/android/util/LocaleUtils.kt index 1e99c7c8..da05d09a 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/LocaleUtils.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/LocaleUtils.kt @@ -1,9 +1,6 @@ package net.pokeranalytics.android.util -import android.annotation.TargetApi import android.content.Context -import android.os.Build -import android.preference.PreferenceManager import java.util.* @@ -26,69 +23,11 @@ class LocaleUtils { } - private val SELECTED_LANGUAGE = "Locale.Helper.Selected.Language" - - fun onAttach(context: Context): Context { - val lang = getPersistedData(context, Locale.getDefault().language) - return setLocale(context, lang) - } - - fun onAttach(context: Context, defaultLanguage: String): Context { - val lang = getPersistedData(context, defaultLanguage) - return setLocale(context, lang) - } - - fun getLanguage(context: Context): String? { - return getPersistedData(context, Locale.getDefault().language) - } - - fun setLocale(context: Context, language: String?): Context { - persist(context, language) - - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - updateResources(context, language) - } else updateResourcesLegacy(context, language) - - } - - private fun getPersistedData(context: Context, defaultLanguage: String): String? { - val preferences = PreferenceManager.getDefaultSharedPreferences(context) - return preferences.getString(SELECTED_LANGUAGE, defaultLanguage) - } - - private fun persist(context: Context, language: String?) { - val preferences = PreferenceManager.getDefaultSharedPreferences(context) - val editor = preferences.edit() - - editor.putString(SELECTED_LANGUAGE, language) - editor.apply() - } - - @TargetApi(Build.VERSION_CODES.N) - private fun updateResources(context: Context, language: String?): Context { - val locale = Locale(language) - Locale.setDefault(locale) - - val configuration = context.resources.configuration - configuration.setLocale(locale) - configuration.setLayoutDirection(locale) - - return context.createConfigurationContext(configuration) - } - - private fun updateResourcesLegacy(context: Context, language: String?): Context { - val locale = Locale(language) - Locale.setDefault(locale) - - val resources = context.resources - - val configuration = resources.configuration - configuration.locale = locale - configuration.setLayoutDirection(locale) - - resources.updateConfiguration(configuration, resources.displayMetrics) - - return context + /** + * + */ + fun setCurrentLocale(context: Context, language: String) { + Preferences.setString(Preferences.Keys.LOCALE_CODE, language, context) }