浏览代码

Added splash API when changing language, on that response we update servers and recommended servers and sheet not closing when changed language therefore when user drag bottom sheet then sheet is closed

Khubaib 8 月之前
父节点
当前提交
08b7f8531a

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

@@ -137,13 +137,13 @@ fun Splash(navHostController: NavHostController) {
 //        splashViewModel.serverDataApi()
 //        splashViewModel.serverDataApi()
         delay(delay)
         delay(delay)
         if (isLoggedIn) {
         if (isLoggedIn) {
+            if (::splashViewModelSplash.isInitialized) {
+                splashViewModelSplash.serverDataApi()
+            }
             if (::serverListViewModelSplash.isInitialized) {
             if (::serverListViewModelSplash.isInitialized) {
                 serverListViewModelSplash.setRecommendedSmartServers()
                 serverListViewModelSplash.setRecommendedSmartServers()
                 serverListViewModelSplash.setCountryData()
                 serverListViewModelSplash.setCountryData()
             }
             }
-            if (::splashViewModelSplash.isInitialized) {
-                splashViewModelSplash.serverDataApi()
-            }
             navHostController.popBackStack()
             navHostController.popBackStack()
             navHostController.navigate(Screen.BottomBarMainScreen.route)
             navHostController.navigate(Screen.BottomBarMainScreen.route)
         } else {
         } else {

+ 14 - 2
app/src/main/java/com/vpn/fastestvpnservice/screens/bottomNavBarScreens/SettingsScreen.kt

@@ -256,6 +256,18 @@ fun Settings(navHostController: NavHostController, activity: ComponentActivity)
                     settingsString = it
                     settingsString = it
                 }
                 }
 
 
+                val serversResponse = splashViewModelSplash.liveDataServerData.observeAsState().value
+                serversResponse?.let { data ->
+                    Log.d("test_lingual_splash", "serversResponse - in")
+                    if (data.status) {
+                        Log.d("test_lingual_splash", "serversResponse - true")
+                        serverListViewModelSplash.setRecommendedSmartServers()
+                        serverListViewModelSplash.setCountryData()
+                    }
+
+                    splashViewModelSplash.mutableLiveDataServerData.value = null
+                }
+
                 if (isLaunched) {
                 if (isLaunched) {
                     AlertDialog(
                     AlertDialog(
                         onDismissRequest = { isLaunched = false },
                         onDismissRequest = { isLaunched = false },
@@ -1236,7 +1248,7 @@ fun SelectLanguage(
                                         }
                                         }
 
 
                                         splashViewModelSplash.serverDataApi()
                                         splashViewModelSplash.serverDataApi()
-                                        isLanguageSheetOpen = false
+//                                        isLanguageSheetOpen = false
                                     },
                                     },
                                 )
                                 )
 //                                    .indication(
 //                                    .indication(
@@ -1274,7 +1286,7 @@ fun SelectLanguage(
                                     }
                                     }
 
 
                                     splashViewModelSplash.serverDataApi()
                                     splashViewModelSplash.serverDataApi()
-                                    isLanguageSheetOpen = false
+//                                    isLanguageSheetOpen = false
                                 },
                                 },
                                 colors = RadioButtonDefaults.colors(
                                 colors = RadioButtonDefaults.colors(
                                     selectedColor = colorResource(id = R.color.radio_button_blue),
                                     selectedColor = colorResource(id = R.color.radio_button_blue),

+ 3 - 1
app/src/main/java/com/vpn/fastestvpnservice/viewmodels/SplashViewModel.kt

@@ -20,7 +20,9 @@ import java.io.InputStream
 import java.io.InputStreamReader
 import java.io.InputStreamReader
 
 
 class SplashViewModel constructor(context: Context): ViewModel() {
 class SplashViewModel constructor(context: Context): ViewModel() {
-    val mutableLiveDataServerData = MutableLiveData<DataResponseServers<ArrayList<ServerData>>>()
+    var mutableLiveDataServerData = MutableLiveData<DataResponseServers<ArrayList<ServerData>>>()
+    var liveDataServerData: LiveData<DataResponseServers<ArrayList<ServerData>>> = mutableLiveDataServerData
+
     var preferenceHelper: BasePreferenceHelper
     var preferenceHelper: BasePreferenceHelper
     var context: Context
     var context: Context