diff --git a/app/build.gradle b/app/build.gradle index 498aaf79..03cd622a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -47,7 +47,7 @@ ext { } dependencies { - compile 'com.simplemobiletools:commons:2.38.5' + compile 'com.simplemobiletools:commons:2.38.6' compile 'com.facebook.stetho:stetho:1.5.0' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/App.kt b/app/src/main/kotlin/com/simplemobiletools/notes/App.kt index d9cd8a51..c2c64f22 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/App.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/App.kt @@ -3,7 +3,9 @@ package com.simplemobiletools.notes import android.app.Application import com.facebook.stetho.Stetho import com.simplemobiletools.notes.BuildConfig.USE_LEAK_CANARY +import com.simplemobiletools.notes.extensions.config import com.squareup.leakcanary.LeakCanary +import java.util.* class App : Application() { override fun onCreate() { @@ -15,6 +17,12 @@ class App : Application() { LeakCanary.install(this) } + if (config.useEnglish) { + val conf = resources.configuration + conf.locale = Locale.ENGLISH + resources.updateConfiguration(conf, resources.displayMetrics) + } + if (BuildConfig.DEBUG) Stetho.initializeWithDefaults(this) } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt index 54125dc7..5f1e33d9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt @@ -44,6 +44,7 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { var noteViewWithTextSelected: MyEditText? = null private var wasInit = false + private var storedUseEnglish = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -72,11 +73,17 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { } } + storeStateVariables() wasInit = true } override fun onResume() { super.onResume() + if (storedUseEnglish != config.useEnglish) { + restartActivity() + return + } + invalidateOptionsMenu() pager_title_strip.apply { setTextSize(TypedValue.COMPLEX_UNIT_PX, getTextSize()) @@ -142,6 +149,10 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { } } + private fun storeStateVariables() { + storedUseEnglish = config.useEnglish + } + private fun handleText(text: String) { val notes = mDb.getNotes() val list = arrayListOf().apply { diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt index 1c2b9e6c..30d75c75 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt @@ -4,7 +4,9 @@ import android.content.res.Resources import android.os.Bundle import android.view.View import com.simplemobiletools.commons.dialogs.RadioGroupDialog +import com.simplemobiletools.commons.extensions.beVisibleIf import com.simplemobiletools.commons.extensions.updateTextColors +import com.simplemobiletools.commons.extensions.useEnglishToggled import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.notes.R import com.simplemobiletools.notes.extensions.config @@ -13,6 +15,7 @@ import com.simplemobiletools.notes.extensions.updateWidget import com.simplemobiletools.notes.helpers.* import com.simplemobiletools.notes.models.Note import kotlinx.android.synthetic.main.activity_settings.* +import java.util.* class SettingsActivity : SimpleActivity() { lateinit var res: Resources @@ -27,6 +30,7 @@ class SettingsActivity : SimpleActivity() { super.onResume() setupCustomizeColors() + setupUseEnglish() setupDisplaySuccess() setupClickableLinks() setupMonospacedFont() @@ -44,6 +48,16 @@ class SettingsActivity : SimpleActivity() { } } + private fun setupUseEnglish() { + settings_use_english_holder.beVisibleIf(config.wasUseEnglishToggled || Locale.getDefault().language != "en") + settings_use_english.isChecked = config.useEnglish + settings_use_english_holder.setOnClickListener { + settings_use_english.toggle() + config.useEnglish = settings_use_english.isChecked + useEnglishToggled() + } + } + private fun setupDisplaySuccess() { settings_display_success.isChecked = config.displaySuccess settings_display_success_holder.setOnClickListener { diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index fe1d44d5..c5a6dc67 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -30,6 +30,26 @@ + + + + + +