Sfoglia il codice sorgente

Saving and updating smart server on chane of language on splash view model

Khubaib 9 mesi fa
parent
commit
d8bf090393

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

@@ -1,7 +1,6 @@
 package com.vpn.fastestvpnservice.viewmodels
 
 import android.content.Context
-import android.content.pm.ActivityInfo
 import android.location.Location
 import android.util.Log
 import androidx.lifecycle.LiveData
@@ -19,7 +18,6 @@ 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.screens.splashViewModelSplash
 import com.vpn.fastestvpnservice.utils.StaticMethods
 import retrofit2.Call
 import java.io.BufferedReader
@@ -93,11 +91,17 @@ class SplashViewModel constructor(context: Context): ViewModel() {
                                     Log.d("test_api_response_s", "serverDataApi TV")
                                     serverListViewModelSplash.setCountryDataTV()
                                     setRecommendedServer()
+                                    setRecentlyServer()
+                                    setServerObject()
+                                    setSmartServerObject()
                                 } else {
                                     Log.d("test_api_response_s", "serverDataApi Android")
                                     serverListViewModelSplash.setRecommendedSmartServers()
                                     serverListViewModelSplash.setCountryData()
                                     setRecommendedServer()
+                                    setRecentlyServer()
+                                    setServerObject()
+                                    setSmartServerObject()
                                 }
                                 mutableLiveDataLanguageStatus.value = false
                             }
@@ -173,7 +177,57 @@ class SplashViewModel constructor(context: Context): ViewModel() {
             smartLocationList.forEach {
 //                            prefHelper.setSmartServerObject(it)
                 preferenceHelper.setRecommendedServerObject(it)
-                Log.d("smartLocationList", "L:: server = ${it.server_name}")
+            }
+        }
+    }
+
+    fun setRecentlyServer() {
+        val serverData = preferenceHelper.getServerData()
+        val recently = preferenceHelper.getConnectedServer()
+
+        recently?.let {
+            serverData.let {
+                it.forEach {
+                    it.servers?.forEachIndexed { index, server ->
+                        if (server.id == recently.id) {
+                            preferenceHelper.setConnectedServer(server)
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    fun setServerObject() {
+        val serverData = preferenceHelper.getServerData()
+        val recently = preferenceHelper.getServerObject()
+
+        recently?.let {
+            serverData.let {
+                it.forEach {
+                    it.servers?.forEachIndexed { index, server ->
+                        if (server.id == recently.id) {
+                            preferenceHelper.setServerObject(server)
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    fun setSmartServerObject() {
+        val serverData = preferenceHelper.getServerData()
+        val recently = preferenceHelper.getSmartServerObject()
+
+        recently?.let {
+            serverData.let {
+                it.forEach {
+                    it.servers?.forEachIndexed { index, server ->
+                        if (server.id == recently.id) {
+                            preferenceHelper.setSmartServerObject(server)
+                        }
+                    }
+                }
             }
         }
     }