Переглянути джерело

When logout app sets default locale to english - English language is on onBoarding screens

Khubaib 7 місяців тому
батько
коміт
57baca3d1a

+ 2 - 17
app/src/main/java/com/vpn/fastestvpnservice/screens/LoginScreen.kt

@@ -105,6 +105,7 @@ import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
 import com.vpn.fastestvpnservice.viewmodels.SplashViewModel
 import com.vpn.fastestvpnservice.views.CustomValidation
 import com.vpn.fastestvpnservice.views.ShowCustomSnackBar
+import com.vpn.fastestvpnservice.views.setCustomLocale
 import com.vpn.fastestvpnservice.widgets.SimpleAppWidget
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.launch
@@ -715,23 +716,7 @@ fun ColumnScope.SignInButton(
 
                     }
 
-                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
-                        context.getSystemService(LocaleManager::class.java).applicationLocales =
-                            LocaleList.forLanguageTags("en")
-                    }
-                    else {
-                        AppCompatDelegate.setApplicationLocales(
-                            LocaleListCompat.forLanguageTags(
-                                "en"
-                            )
-                        )
-                        context.resources.updateConfiguration(
-                            context.resources.configuration.apply {
-                                setLocale(Locale.forLanguageTag("en"))
-                            },
-                            context.resources.displayMetrics
-                        )
-                    }
+                    setCustomLocale(context)
 
                     splashViewModelSplash = viewModel {
                         SplashViewModel(context)

+ 2 - 17
app/src/main/java/com/vpn/fastestvpnservice/screens/SignUpScreen.kt

@@ -104,6 +104,7 @@ import com.vpn.fastestvpnservice.viewmodels.SignUpViewModel
 import com.vpn.fastestvpnservice.viewmodels.SplashViewModel
 import com.vpn.fastestvpnservice.views.CustomValidation
 import com.vpn.fastestvpnservice.views.ShowCustomSnackBar
+import com.vpn.fastestvpnservice.views.setCustomLocale
 import com.vpn.fastestvpnservice.widgets.SimpleAppWidget
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.launch
@@ -842,23 +843,7 @@ fun ColumnScope.SignUpButton(
 
                 }
 
-                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
-                    context.getSystemService(LocaleManager::class.java).applicationLocales =
-                        LocaleList.forLanguageTags("en")
-                }
-                else {
-                    AppCompatDelegate.setApplicationLocales(
-                        LocaleListCompat.forLanguageTags(
-                            "en"
-                        )
-                    )
-                    context.resources.updateConfiguration(
-                        context.resources.configuration.apply {
-                            setLocale(Locale.forLanguageTag("en"))
-                        },
-                        context.resources.displayMetrics
-                    )
-                }
+                setCustomLocale(context)
 
                 splashViewModelSplash = viewModel {
                     SplashViewModel(context)

+ 4 - 0
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/AccountScreen.kt

@@ -79,6 +79,7 @@ import com.vpn.fastestvpnservice.utils.VPNConnectionsUtil
 import com.vpn.fastestvpnservice.utils.isTablet
 import com.vpn.fastestvpnservice.viewmodels.AccountViewModel
 import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
+import com.vpn.fastestvpnservice.views.setCustomLocale
 import com.vpn.fastestvpnservice.widgets.SimpleAppWidget
 import de.blinkt.openvpn.core.App
 import kotlinx.coroutines.delay
@@ -112,6 +113,7 @@ fun Account(navHostController: NavHostController,
         if (!it.status) {
             basePreferenceHelper.setLoggedInState(false)
             basePreferenceHelper.clearAllData()
+            setCustomLocale(context)
             settingsNavHostController.popBackStack()
             settingsNavHostController.navigate(Screen.Started.route)
         }
@@ -284,6 +286,7 @@ fun Account(navHostController: NavHostController,
                     Log.d("test_api_response","Logout live: $logoutResponse")
                     basePreferenceHelper.setLoggedInState(false)
                     basePreferenceHelper.clearAllData()
+                    setCustomLocale(context)
                     settingsNavHostController.popBackStack()
                     settingsNavHostController.navigate(Screen.Started.route)
 
@@ -306,6 +309,7 @@ fun Account(navHostController: NavHostController,
                     Log.d("test_api_response","Delete live: ${deleteResponse.status}")
                     basePreferenceHelper.setLoggedInState(false)
                     basePreferenceHelper.clearAllData()
+                    setCustomLocale(context)
                     settingsNavHostController.popBackStack()
                     settingsNavHostController.navigate(Screen.Started.route)
                 }

+ 2 - 0
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/HomeScreen.kt

@@ -112,6 +112,7 @@ import com.vpn.fastestvpnservice.utils.VPNConnectionsUtil
 import com.vpn.fastestvpnservice.utils.isTablet
 import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
 import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
+import com.vpn.fastestvpnservice.views.setCustomLocale
 import com.vpn.fastestvpnservice.widgets.SimpleAppWidget
 import com.wireguard.android.backend.GoBackend
 import de.blinkt.openvpn.core.App
@@ -368,6 +369,7 @@ fun Home(
         if (!it.status) {
             basePreferenceHelper.setLoggedInState(false)
             basePreferenceHelper.clearAllData()
+            setCustomLocale(context)
             settingsNavHostController.popBackStack()
             settingsNavHostController.navigate(Screen.Started.route)
         }

+ 3 - 0
app/src/main/java/com/vpn/fastestvpnservice/screensTV/AccountScreenTV.kt

@@ -86,6 +86,7 @@ import com.vpn.fastestvpnservice.utils.VPNConnectionsUtil
 import com.vpn.fastestvpnservice.utils.isTablet
 import com.vpn.fastestvpnservice.viewmodels.AccountViewModel
 import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
+import com.vpn.fastestvpnservice.views.setCustomLocale
 import com.vpn.fastestvpnservice.widgets.SimpleAppWidget
 import de.blinkt.openvpn.core.App
 import kotlinx.coroutines.delay
@@ -289,6 +290,7 @@ fun AccountTV(navHostController: NavHostController,
                     Log.d("test_api_response","Logout live: $logoutResponse")
                     basePreferenceHelper.setLoggedInState(false)
                     basePreferenceHelper.clearAllData()
+                    setCustomLocale(context)
                     settingsNavHostController.popBackStack()
                     settingsNavHostController.navigate(ScreenTV.LoginTV.route)
 
@@ -315,6 +317,7 @@ fun AccountTV(navHostController: NavHostController,
                     Log.d("test_api_response","Delete live: ${deleteResponse.status}")
                     basePreferenceHelper.setLoggedInState(false)
                     basePreferenceHelper.clearAllData()
+                    setCustomLocale(context)
                     settingsNavHostController.popBackStack()
                     settingsNavHostController.navigate(ScreenTV.LoginTV.route)
                 }

+ 2 - 0
app/src/main/java/com/vpn/fastestvpnservice/screensTV/HomeScreenTV.kt

@@ -124,6 +124,7 @@ import com.vpn.fastestvpnservice.utils.VPNConnectionsUtil
 import com.vpn.fastestvpnservice.utils.isTablet
 import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
 import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
+import com.vpn.fastestvpnservice.views.setCustomLocale
 import com.wireguard.android.backend.GoBackend
 import de.blinkt.openvpn.core.App
 import kotlinx.coroutines.delay
@@ -345,6 +346,7 @@ fun HomeTV(
         if (!it.status) {
             basePreferenceHelper.setLoggedInState(false)
             basePreferenceHelper.clearAllData()
+            setCustomLocale(context)
             settingsNavHostController.popBackStack()
             settingsNavHostController.navigate(ScreenTV.LoginTV.route)
         }

+ 29 - 0
app/src/main/java/com/vpn/fastestvpnservice/views/CustomLocale.kt

@@ -0,0 +1,29 @@
+package com.vpn.fastestvpnservice.views
+
+import android.app.LocaleManager
+import android.content.Context
+import android.os.Build
+import android.os.LocaleList
+import androidx.appcompat.app.AppCompatDelegate
+import androidx.core.os.LocaleListCompat
+import java.util.Locale
+
+fun setCustomLocale(context: Context) {
+    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+        context.getSystemService(LocaleManager::class.java).applicationLocales =
+            LocaleList.forLanguageTags("en")
+    }
+    else {
+        AppCompatDelegate.setApplicationLocales(
+            LocaleListCompat.forLanguageTags(
+                "en"
+            )
+        )
+        context.resources.updateConfiguration(
+            context.resources.configuration.apply {
+                setLocale(Locale.forLanguageTag("en"))
+            },
+            context.resources.displayMetrics
+        )
+    }
+}