Commit 9f052d9f authored by Govind Dixit's avatar Govind Dixit

add requested changes

parent 168f907e
package chat.rocket.android.main.presentation
import android.content.Context
import android.content.res.Configuration
import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.db.DatabaseManagerFactory
import chat.rocket.android.emoji.Emoji
......@@ -11,6 +12,7 @@ import chat.rocket.android.infrastructure.LocalRepository
import chat.rocket.android.main.uimodel.NavHeaderUiModel
import chat.rocket.android.main.uimodel.NavHeaderUiModelMapper
import chat.rocket.android.push.GroupedPush
import chat.rocket.android.server.domain.SaveCurrentLanguageInteractor
import chat.rocket.android.server.domain.GetAccountsInteractor
import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.domain.GetSettingsInteractor
......@@ -39,6 +41,7 @@ import chat.rocket.core.internal.rest.me
import chat.rocket.core.model.Myself
import kotlinx.coroutines.channels.Channel
import timber.log.Timber
import java.util.Locale
import javax.inject.Inject
class MainPresenter @Inject constructor(
......@@ -50,6 +53,7 @@ class MainPresenter @Inject constructor(
private val refreshPermissionsInteractor: RefreshPermissionsInteractor,
private val navHeaderMapper: NavHeaderUiModelMapper,
private val saveAccountInteractor: SaveAccountInteractor,
private val saveLanguageInteractor: SaveCurrentLanguageInteractor,
private val getAccountsInteractor: GetAccountsInteractor,
private val groupedPush: GroupedPush,
serverInteractor: GetCurrentServerInteractor,
......@@ -241,4 +245,22 @@ class MainPresenter @Inject constructor(
list.removeAll { it.info.roomId == chatRoomId }
}
}
fun setLocale(language: String, baseContext: Context) {
val locale = Locale(language)
Locale.setDefault(locale)
val config = Configuration()
config.locale = locale
baseContext.resources.updateConfiguration(config, baseContext.resources.displayMetrics)
saveLanguageInteractor.save(language)
}
fun setLocaleWithRegion(lang: String, country: String, baseContext: Context) {
val locale = Locale(lang, country)
Locale.setDefault(locale)
val config = Configuration()
config.locale = locale
baseContext.resources.updateConfiguration(config, baseContext.resources.displayMetrics)
saveLanguageInteractor.save(lang)
}
}
......@@ -5,7 +5,6 @@ import android.app.Activity
import androidx.appcompat.app.AlertDialog
import android.app.ProgressDialog
import android.content.Context
import android.content.res.Configuration
import android.os.Bundle
import androidx.annotation.IdRes
import androidx.appcompat.app.AppCompatActivity
......@@ -42,14 +41,10 @@ import kotlinx.android.synthetic.main.nav_header.view.*
import javax.inject.Inject
import android.app.NotificationManager
import chat.rocket.android.server.domain.GetCurrentLanguageInteractor
import chat.rocket.android.server.domain.SaveCurrentLanguageInteractor
import java.util.Locale
private const val CURRENT_STATE = "current_state"
private const val SETTING = "settings"
private const val MY_LANG = "my_lang"
private const val CURRENT_STATE = "current_state"
class MainActivity : AppCompatActivity(), MainView, HasActivityInjector,
HasSupportFragmentInjector {
......@@ -63,8 +58,6 @@ class MainActivity : AppCompatActivity(), MainView, HasActivityInjector,
lateinit var permissions: PermissionsInteractor
@Inject
lateinit var getLanguageInteractor: GetCurrentLanguageInteractor
@Inject
lateinit var saveLanguageInteractor: SaveCurrentLanguageInteractor
private var isFragmentAdded: Boolean = false
private var expanded = false
private val headerLayout by lazy { view_navigation.getHeaderView(0) }
......@@ -293,25 +286,9 @@ class MainActivity : AppCompatActivity(), MainView, HasActivityInjector,
}
private fun loadLocale() {
val currentLanguage = getLanguageInteractor.get()!!
setLocale(currentLanguage)
}
fun setLocale(language: String) {
val locale = Locale(language)
Locale.setDefault(locale)
val config = Configuration()
config.locale = locale
baseContext.resources.updateConfiguration(config, baseContext.resources.displayMetrics)
saveLanguageInteractor.save(language)
}
fun setLocaleWithRegion(lang: String, country: String) {
val locale = Locale(lang, country)
Locale.setDefault(locale)
val config = Configuration()
config.locale = locale
baseContext.resources.updateConfiguration(config, baseContext.resources.displayMetrics)
saveLanguageInteractor.save(lang)
val currentLanguage = getLanguageInteractor.get()
if (currentLanguage != null) {
presenter.setLocale(currentLanguage, baseContext)
}
}
}
\ No newline at end of file
......@@ -18,6 +18,7 @@ import chat.rocket.android.about.ui.TAG_ABOUT_FRAGMENT
import chat.rocket.android.analytics.AnalyticsManager
import chat.rocket.android.analytics.event.ScreenViewEvent
import chat.rocket.android.helper.TextHelper.getDeviceAndAppInformation
import chat.rocket.android.main.presentation.MainPresenter
import chat.rocket.android.main.ui.MainActivity
import chat.rocket.android.preferences.ui.PreferencesFragment
import chat.rocket.android.preferences.ui.TAG_PREFERENCES_FRAGMENT
......@@ -36,6 +37,8 @@ internal const val TAG_SETTINGS_FRAGMENT = "SettingsFragment"
class SettingsFragment : Fragment(), SettingsView, AdapterView.OnItemClickListener {
@Inject
lateinit var analyticsManager: AnalyticsManager
@Inject
lateinit var presenter: MainPresenter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
......@@ -151,35 +154,67 @@ class SettingsFragment : Fragment(), SettingsView, AdapterView.OnItemClickListen
.setSingleChoiceItems(languages, -1) { dialog, which ->
when (which) {
0 -> {
mainActivity?.setLocale("en")
activity?.baseContext?.let { it1 -> presenter.setLocale("en", it1) }
activity?.recreate()
}
1 -> {
mainActivity?.setLocale("hi")
activity?.baseContext?.let { it1 -> presenter.setLocale("hi", it1) }
activity?.recreate()
}
2 -> {
mainActivity?.setLocale("ja")
activity?.baseContext?.let { it1 -> presenter.setLocale("ja", it1) }
activity?.recreate()
}
3 -> {
mainActivity?.setLocale("ru")
activity?.baseContext?.let { it1 -> presenter.setLocale("ru", it1) }
activity?.recreate()
}
4 -> {
mainActivity?.setLocale("it")
activity?.baseContext?.let { it1 -> presenter.setLocale("it", it1) }
activity?.recreate()
}
5->{
mainActivity?.setLocaleWithRegion("pt","BR")
activity?.baseContext?.let { it1 ->
presenter.setLocaleWithRegion("pt","BR",
it1
)
}
activity?.recreate()
}
6->{
mainActivity?.setLocaleWithRegion("pt", "PT")
activity?.baseContext?.let { it1 ->
presenter.setLocaleWithRegion("pt","PT",
it1
)
}
activity?.recreate()
}
7->{
mainActivity?.setLocale("zh")
activity?.baseContext?.let { it1 -> presenter.setLocale("zh", it1) }
activity?.recreate()
}
8->{
activity?.baseContext?.let { it1 -> presenter.setLocale("de", it1) }
activity?.recreate()
}
9->{
activity?.baseContext?.let { it1 -> presenter.setLocale("es", it1) }
activity?.recreate()
}
10->{
activity?.baseContext?.let { it1 -> presenter.setLocale("fa", it1) }
activity?.recreate()
}
11->{
activity?.baseContext?.let { it1 -> presenter.setLocale("fr", it1) }
activity?.recreate()
}
12->{
activity?.baseContext?.let { it1 -> presenter.setLocale("tr", it1) }
activity?.recreate()
}
13->{
activity?.baseContext?.let { it1 -> presenter.setLocale("uk", it1) }
activity?.recreate()
}
}
......
......@@ -87,6 +87,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -84,6 +84,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -84,6 +84,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -84,6 +84,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -84,6 +84,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -84,6 +84,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -84,6 +84,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -84,6 +84,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -82,6 +82,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -84,6 +84,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -84,6 +84,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -84,6 +84,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -84,6 +84,13 @@
<item>Portuguese(BR)</item> <!-- TODO Add translation -->
<item>Portuguese(PT)</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>German</item> <!-- TODO Add translation -->
<item>Spanish</item> <!-- TODO Add translation -->
<item>Urdu</item> <!-- TODO Add translation -->
<item>Chinese</item> <!-- TODO Add translation -->
<item>French</item> <!-- TODO Add translation -->
<item>Turkish</item> <!-- TODO Add translation -->
<item>Ukrainian</item> <!-- TODO Add translation -->
</string-array>
<!-- Regular information messages -->
......
......@@ -96,6 +96,13 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<item>Portuguese(BR)</item>
<item>Portuguese(PT)</item>
<item>Chinese</item>
<item>German</item>
<item>Spanish</item>
<item>Urdu</item>
<item>Chinese</item>
<item>French</item>
<item>Turkish</item>
<item>Ukrainian</item>
</string-array>
<!-- Regular information messages -->
......
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