Commit 915db78d authored by wanglei's avatar wanglei

...

parent 18d30d44
......@@ -72,16 +72,6 @@ object ConstObject {
field = value
AppPreferences.getInstance().put("haveGuideGesture", value, true)
}
var currentLanguageSp = Locale.ENGLISH.language
get() {
return AppPreferences.getInstance().getString("languageSp", field)
}
set(value) {
field = value
AppPreferences.getInstance().put("languageSp", value, true)
}
var appLanguageSp = Locale.ENGLISH.language
get() {
return AppPreferences.getInstance().getString("appLanguageSp", field)
......@@ -90,7 +80,7 @@ object ConstObject {
field = value
AppPreferences.getInstance().put("appLanguageSp", value, true)
}
var changeLanguageSp = Locale.ENGLISH.language
var changeLanguageSp = appLanguageSp
get() {
return AppPreferences.getInstance().getString("changeLanguageSp", field)
}
......
......@@ -13,6 +13,7 @@ import com.base.pdfviewerscannerwhite.utils.ActivityLauncher
import com.base.pdfviewerscannerwhite.utils.ActivityManagerUtils
import com.base.pdfviewerscannerwhite.utils.LanguageUtils.changeAppLanguage
import com.base.pdfviewerscannerwhite.utils.LogEx
import java.util.Locale
abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
private val TAG = "BaseActivity"
......@@ -62,7 +63,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
fun updateAppLanguage(
activityLanguage: String,
activityTag: String? = null,
callback: ((language: String) -> Unit)? = null
activityChangeCallback: ((language: String) -> Unit)? = null
) {
LogEx.logDebug(
TAG,
......@@ -71,16 +72,17 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
"changeLanguageSp=$changeLanguageSp " +
"activityLanguage=$activityLanguage"
)
if (appLanguageSp != changeLanguageSp || activityLanguage != appLanguageSp) {
changeAppLanguage(this)
if (appLanguageSp != changeLanguageSp || activityLanguage != changeLanguageSp) {
changeAppLanguage(this, changeLanguageSp)
// Restart the app
appLanguageSp = changeLanguageSp
callback?.invoke(changeLanguageSp)
activityChangeCallback?.invoke(changeLanguageSp)
LogEx.logDebug(TAG, "activityTag=$activityTag recreate")
this@BaseActivity.recreate()
}
}
}
\ No newline at end of file
......@@ -10,7 +10,6 @@ import com.base.pdfviewerscannerwhite.fcm.FCMManager
import com.base.pdfviewerscannerwhite.ui.splash.SplashActivity
import com.base.pdfviewerscannerwhite.utils.ActivityManagerUtils
import com.base.pdfviewerscannerwhite.utils.AppPreferences
import com.base.pdfviewerscannerwhite.utils.LanguageUtils
import com.base.pdfviewerscannerwhite.utils.LogEx
import com.facebook.FacebookSdk
import com.tom_roush.pdfbox.android.PDFBoxResourceLoader
......@@ -25,17 +24,18 @@ class MyApplication : Application() {
companion object {
lateinit var context: MyApplication
var splashLanguage: String = Locale.ENGLISH.language
var mainLanguage: String = Locale.ENGLISH.language
var setLanguage: String = Locale.ENGLISH.language
var feedbackLanguage: String = Locale.ENGLISH.language
var pptLanguage: String = Locale.ENGLISH.language
var pdfLanguage: String = Locale.ENGLISH.language
var pdfLoadingLanguage: String = Locale.ENGLISH.language
var pdfMergeLanguage: String = Locale.ENGLISH.language
var pdfSelectLanguage: String = Locale.ENGLISH.language
var pdfSplitLanguage: String = Locale.ENGLISH.language
var wordLanguage: String = Locale.ENGLISH.language
var splashLanguage: String = Locale.getDefault().language
var mainLanguage: String = Locale.getDefault().language
var setLanguage: String = Locale.getDefault().language
var feedbackLanguage: String = Locale.getDefault().language
var pptLanguage: String = Locale.getDefault().language
var pdfLanguage: String = Locale.getDefault().language
var pdfLoadingLanguage: String = Locale.getDefault().language
var pdfMergeLanguage: String = Locale.getDefault().language
var pdfSelectLanguage: String = Locale.getDefault().language
var pdfSplitLanguage: String = Locale.getDefault().language
var wordLanguage: String = Locale.getDefault().language
var umpCanAd: Boolean = true
......@@ -50,29 +50,9 @@ class MyApplication : Application() {
context = this
initUUid()
initApp()
initActivityLanguage()
PDFBoxResourceLoader.init(applicationContext)
}
fun initActivityLanguage() {
splashLanguage = ConstObject.appLanguageSp
mainLanguage = ConstObject.appLanguageSp
setLanguage = ConstObject.appLanguageSp
feedbackLanguage = ConstObject.appLanguageSp
pptLanguage = ConstObject.appLanguageSp
pdfLanguage = ConstObject.appLanguageSp
pdfLoadingLanguage = ConstObject.appLanguageSp
pdfMergeLanguage = ConstObject.appLanguageSp
pdfSelectLanguage = ConstObject.appLanguageSp
pdfSplitLanguage = ConstObject.appLanguageSp
wordLanguage = ConstObject.appLanguageSp
ConstObject.changeLanguageSp = ConstObject.appLanguageSp
LogEx.logDebug(TAG, "appLanguageSp=${ConstObject.appLanguageSp} changeLanguageSp=${ConstObject.changeLanguageSp}")
LanguageUtils.changeAppLanguage(this)
}
private fun initUUid() {
uuid = AppPreferences.getInstance().getString("uuid", "")
if (TextUtils.isEmpty(uuid)) {
......
......@@ -27,7 +27,6 @@ import com.base.pdfviewerscannerwhite.ui.view.DialogView.showSortDialog
import com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.hideKeyboard
import com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.showKeyBoard
import com.base.pdfviewerscannerwhite.utils.LogEx
import java.util.Locale
class DocumentFragment(
val dataType: String = ""
......
......@@ -2,18 +2,14 @@ package com.base.pdfviewerscannerwhite.ui.set
import androidx.activity.addCallback
import com.base.pdfviewerscannerwhite.R
import com.base.pdfviewerscannerwhite.ads.admob.AdmobNativeUtils
import com.base.pdfviewerscannerwhite.bean.ConstObject
import com.base.pdfviewerscannerwhite.bean.ConstObject.appLanguageSp
import com.base.pdfviewerscannerwhite.bean.ConstObject.changeLanguageSp
import com.base.pdfviewerscannerwhite.bean.LanguageBean
import com.base.pdfviewerscannerwhite.databinding.ActivitySetLanguageBinding
import com.base.pdfviewerscannerwhite.helper.BaseActivity
import com.base.pdfviewerscannerwhite.helper.MyApplication
import com.base.pdfviewerscannerwhite.utils.LanguageUtils
import com.base.pdfviewerscannerwhite.utils.LanguageUtils.changeAppLanguage
import com.base.pdfviewerscannerwhite.utils.LanguageUtils.getSystemLanguageDefault
import com.base.pdfviewerscannerwhite.utils.LogEx
import com.cherry.lib.doc.office.fc.hssf.formula.function.IfFunc
import java.util.Locale
class SetLanguageActivity : BaseActivity<ActivitySetLanguageBinding>() {
......@@ -30,12 +26,7 @@ class SetLanguageActivity : BaseActivity<ActivitySetLanguageBinding>() {
adapter = LanguageAdapter()
binding.rv.adapter = adapter
val systemLanguage = LanguageUtils.getSystemLanguage()
if (MyApplication.setLanguage != systemLanguage && LanguageUtils.isSupportSystemLanguage()) {
ConstObject.changeLanguageSp = systemLanguage
changeAppLanguage(this)
recreate()
}
AdmobNativeUtils.showNativeAd(this, binding.flAd)
initData()
}
......
......@@ -43,7 +43,6 @@ class SplashActivity : BaseActivity<ActivitySplash2Binding>(), SplashView {
}
private var actionId = ""
@SuppressLint("SetTextI18n")
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
......@@ -158,7 +157,7 @@ class SplashActivity : BaseActivity<ActivitySplash2Binding>(), SplashView {
override fun onResume() {
super.onResume()
updateAppLanguage(MyApplication.splashLanguage) {
updateAppLanguage(MyApplication.splashLanguage, TAG) {
MyApplication.splashLanguage = it
}
splashPresenter.startJumpJob(lifecycleScope)
......
......@@ -2,7 +2,6 @@ package com.base.pdfviewerscannerwhite.utils
import android.content.Context
import android.os.LocaleList
import com.base.pdfviewerscannerwhite.bean.ConstObject
import java.util.Locale
object LanguageUtils {
......@@ -42,9 +41,9 @@ object LanguageUtils {
return supportLanguage.contains(getSystemLanguage())
}
fun changeAppLanguage(context: Context) {
fun changeAppLanguage(context: Context,language:String) {
val config = context.resources.configuration
val locale = Locale(ConstObject.changeLanguageSp)
val locale = Locale(language)
//Android 7.0以上的方法
config.setLocale(locale)
......
......@@ -51,10 +51,17 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="0dp"
tools:listitem="@layout/item_language_set"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/fl_fanhui" />
app:layout_constraintBottom_toTopOf="@id/fl_ad"
app:layout_constraintTop_toBottomOf="@id/fl_fanhui"
tools:listitem="@layout/item_language_set" />
<FrameLayout
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment