Ver código fonte

Servers api implemented when changing location

Khubaib 7 meses atrás
pai
commit
f4fb3a8c5d

+ 1 - 0
app/src/main/java/com/vpn/fastestvpnservice/screens/SplashScreen.kt

@@ -51,6 +51,7 @@ lateinit var splashViewModelSplash: SplashViewModel
 lateinit var serverListViewModelSplash: ServerListViewModel
 lateinit var searchListViewModelSplash: SearchListViewModel
 
+val isSplashModelInitialized get() = ::splashViewModelSplash.isInitialized
 val isServerModelInitialized get() = ::serverListViewModelSplash.isInitialized
 val isSearchModelInitialized get() = ::searchListViewModelSplash.isInitialized
 

+ 13 - 1
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/SettingsScreen.kt

@@ -110,6 +110,7 @@ import com.vpn.fastestvpnservice.constants.smartConnect
 import com.vpn.fastestvpnservice.customItems.ServerSpecificItem
 import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
 import com.vpn.fastestvpnservice.screens.isSearchModelInitialized
+import com.vpn.fastestvpnservice.screens.isSplashModelInitialized
 import com.vpn.fastestvpnservice.screens.searchListViewModelSplash
 import com.vpn.fastestvpnservice.screens.serverListViewModelSplash
 import com.vpn.fastestvpnservice.screens.splashViewModelSplash
@@ -1085,6 +1086,12 @@ fun SelectLanguage(
     val basePreferenceHelper = BasePreferenceHelper(context)
     var selectedLanguage by remember { mutableStateOf(basePreferenceHelper.getLanguage()) }
 
+    if (!isSplashModelInitialized) {
+        splashViewModelSplash = viewModel {
+            SplashViewModel(context)
+        }
+    }
+
     Row(
         modifier = Modifier
             .fillMaxWidth()
@@ -1203,7 +1210,8 @@ fun SelectLanguage(
                                         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
                                             context.getSystemService(LocaleManager::class.java).applicationLocales =
                                                 LocaleList.forLanguageTags(language.code)
-                                        } else {
+                                        }
+                                        else {
                                             AppCompatDelegate.setApplicationLocales(
                                                 LocaleListCompat.forLanguageTags(
                                                     language.code
@@ -1217,6 +1225,8 @@ fun SelectLanguage(
                                             )
                                             changeLanguage(context.getString(R.string.settings))
                                         }
+
+                                        splashViewModelSplash.serverDataApi()
                                         isLanguageSheetOpen = false
                                     },
                                 )
@@ -1255,6 +1265,8 @@ fun SelectLanguage(
                                         )
                                         changeLanguage(context.getString(R.string.settings))
                                     }
+
+                                    splashViewModelSplash.serverDataApi()
                                     isLanguageSheetOpen = false
                                 },
                                 colors = RadioButtonDefaults.colors(

+ 2 - 4
app/src/main/java/com/vpn/fastestvpnservice/viewmodels/SplashViewModel.kt

@@ -53,10 +53,8 @@ class SplashViewModel constructor(context: Context): ViewModel() {
                         val data = gson.fromJson<DataResponseServers<ArrayList<ServerData>>>(jsonString, type)
 
                         if (data?.status == true) {
-
                             mutableLiveDataServerData.value = data
-                            data.data?.let { preferenceHelper.saveServerData(it)
-                            }
+                            data.data?.let { preferenceHelper.saveServerData(it) }
                             data.wireguard?.let {wg ->
                                 if (wg.ip?.isNotEmpty() == true && wg.key?.isNotEmpty() == true){
                                     Log.d("test_wg_data", "WG isNotEmpty")
@@ -80,7 +78,7 @@ class SplashViewModel constructor(context: Context): ViewModel() {
 //                        Log.d("test_api_response", data.available_protocols.toString())
                         }
                     } catch (ex: Exception) {
-                        Log.d("test_api_response", "server catch")
+                        Log.d("test_api_response_s", "server catch")
                     }
                 }