Jelajahi Sumber

Update country and recommended list after servers api response on splash view model instead of splash screen and increase little delay after api call and used delay after api call on android & TV

Khubaib 7 bulan lalu
induk
melakukan
4afcd40624

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

@@ -131,19 +131,20 @@ fun Splash(navHostController: NavHostController) {
 //        }
 
     }
-    val delay: Long = if (isLoggedIn) 2000 else 2000
+    val delay: Long = if (isLoggedIn) 2500 else 1000
 
     LaunchedEffect(key1 = true) {
 //        splashViewModel.serverDataApi()
-        delay(delay)
         if (isLoggedIn) {
             if (::splashViewModelSplash.isInitialized) {
                 splashViewModelSplash.serverDataApi()
             }
-            if (::serverListViewModelSplash.isInitialized) {
-                serverListViewModelSplash.setRecommendedSmartServers()
-                serverListViewModelSplash.setCountryData()
-            }
+            delay(delay)
+
+//            if (::serverListViewModelSplash.isInitialized) {
+//                serverListViewModelSplash.setRecommendedSmartServers()
+//                serverListViewModelSplash.setCountryData()
+//            }
             navHostController.popBackStack()
             navHostController.navigate(Screen.BottomBarMainScreen.route)
         } else {

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

@@ -265,8 +265,8 @@ fun Settings(navHostController: NavHostController, activity: ComponentActivity)
                     Log.d("test_lingual_splash", "serversResponse - in")
                     if (data.status) {
                         Log.d("test_lingual_splash", "serversResponse - true")
-                        serverListViewModelSplash.setRecommendedSmartServers()
-                        serverListViewModelSplash.setCountryData()
+//                        serverListViewModelSplash.setRecommendedSmartServers()
+//                        serverListViewModelSplash.setCountryData()
                         val smartLocationList: MutableList<Server> = ArrayList<Server>()
                         basePreferenceHelper.getServerData().get(0).servers?.let {
                             val serverDataLocation = it

+ 1 - 1
app/src/main/java/com/vpn/fastestvpnservice/screensTV/SettingsScreenTV.kt

@@ -272,7 +272,7 @@ fun SettingsTV(navHostController: NavHostController) {
                     Log.d("test_lingual_splash", "serversResponse - in")
                     if (data.status) {
                         Log.d("test_lingual_splash", "serversResponse - true")
-                        serverListViewModelSplash.setCountryDataTV()
+//                        serverListViewModelSplash.setCountryDataTV()
                         val smartLocationList: MutableList<Server> = ArrayList<Server>()
                         basePreferenceHelper.getServerData().get(0).servers?.let {
                             val serverDataLocation = it

+ 6 - 6
app/src/main/java/com/vpn/fastestvpnservice/screensTV/SplashScreenTV.kt

@@ -103,18 +103,18 @@ fun SplashTV(navHostController: NavHostController) {
             }
         }
 
-        val delay: Long = if (isLoggedIn) 2000 else 2000
+        val delay: Long = if (isLoggedIn) 2500 else 1000
         LaunchedEffect(key1 = true) {
-            delay(delay)
             if (isLoggedIn) {
 //                serverListViewModelSplash.setRecommendedSmartServers()
-
-                if (isServerModelInitialized) {
-                    serverListViewModelSplash.setCountryDataTV()
-                }
                 if (::splashViewModelSplash.isInitialized) {
                     splashViewModelSplash.serverDataApi()
                 }
+                delay(delay)
+//                if (isServerModelInitialized) {
+//                    serverListViewModelSplash.setCountryDataTV()
+//                }
+
                 navHostController.popBackStack()
                 navHostController.navigate(ScreenTV.BottomBarTV.route)
             } else {

+ 2 - 0
app/src/main/java/com/vpn/fastestvpnservice/viewmodels/ServerListViewModel.kt

@@ -68,6 +68,7 @@ class ServerListViewModel(context: Context): ViewModel() {
     }
 
     fun setRecommendedSmartServers() {
+        Log.d("test_api_response_s", "setRecommendedSmartServers")
         val smartLocationList: MutableList<Server> = ArrayList<Server>()
 
         recommendedListGlobal.clear()
@@ -175,6 +176,7 @@ class ServerListViewModel(context: Context): ViewModel() {
     }
 
     fun setCountryData() {
+        Log.d("test_api_response_s", "setCountryData")
         val data = preferencesHelper.getServerData()
         val getServersIdList = preferencesHelper.getServersId()
 

+ 18 - 0
app/src/main/java/com/vpn/fastestvpnservice/viewmodels/SplashViewModel.kt

@@ -1,6 +1,7 @@
 package com.vpn.fastestvpnservice.viewmodels
 
 import android.content.Context
+import android.content.pm.ActivityInfo
 import android.util.Log
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
@@ -14,6 +15,9 @@ import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
 import com.vpn.fastestvpnservice.openVpnUtils.EncryptData
 import com.vpn.fastestvpnservice.retrofit.RetrofitNetworkHandling
 import com.vpn.fastestvpnservice.retrofit.WebServiceFactory
+import com.vpn.fastestvpnservice.screens.isServerModelInitialized
+import com.vpn.fastestvpnservice.screens.serverListViewModelSplash
+import com.vpn.fastestvpnservice.utils.StaticMethods
 import retrofit2.Call
 import java.io.BufferedReader
 import java.io.InputStream
@@ -58,6 +62,7 @@ class SplashViewModel constructor(context: Context): ViewModel() {
                         val data = gson.fromJson<DataResponseServers<ArrayList<ServerData>>>(jsonString, type)
 
                         if (data?.status == true) {
+                            Log.d("test_api_response_s", "response true")
                             mutableLiveDataServerData.value = data
                             data.data?.let { preferenceHelper.saveServerData(it) }
                             data.wireguard?.let {wg ->
@@ -78,6 +83,19 @@ class SplashViewModel constructor(context: Context): ViewModel() {
                             data.enabled_protocols.let {
                                 preferenceHelper.saveEnabledProtocols(it)
                             }
+
+                            if (isServerModelInitialized) {
+                                Log.d("test_api_response_s", "serverDataApi isServerModelInitialized")
+                                if (StaticMethods.isTV(context)) {
+                                    Log.d("test_api_response_s", "serverDataApi TV")
+                                    serverListViewModelSplash.setCountryDataTV()
+                                } else {
+                                    Log.d("test_api_response_s", "serverDataApi Android")
+                                    serverListViewModelSplash.setRecommendedSmartServers()
+                                    serverListViewModelSplash.setCountryData()
+                                }
+                            }
+
 //                        Log.d("test_api_response", data.data.toString())
 //                        Log.d("test_api_response", data.enabled_protocols.toString())
 //                        Log.d("test_api_response", data.available_protocols.toString())