Browse Source

fav servers also working on servers group, working fine

Khubaib 10 months ago
parent
commit
521ac7dddb

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

@@ -72,7 +72,7 @@ var recommendedListGlobal: ArrayList<Server> = ArrayList<Server>()
 val smartLocationListGlobal: ArrayList<Server> = ArrayList<Server>()
 val countryListTestGlobal: ArrayList<Server> = ArrayList<Server>()
 var countriesListGlobal: ArrayList<Server> = ArrayList<Server>()
-var serversGroupListGlobal: ArrayList<ServerDataGlobal> = ArrayList<ServerDataGlobal>()
+var serversGroupListGlobal: ArrayList<ServerDataGlobal?> = ArrayList<ServerDataGlobal?>()
 var serversListGlobal: ArrayList<ServerDataGlobal?> = ArrayList<ServerDataGlobal?>()
 
 lateinit var splashViewModelSplash: SplashViewModel

+ 17 - 7
app/src/main/java/com/vpn/fastestvpnservice/viewmodels/ServerListViewModel.kt

@@ -38,13 +38,9 @@ class ServerListViewModel(context: Context): ViewModel() {
     val mutableLiveDataFavourite = MutableLiveData<List<Server>>()
     val mutableLiveDataFavUnFav = MutableLiveData<ServerResponse?>()
 
-    var mutableLiveDataGroupServers = MutableLiveData<ArrayList<ServerDataGlobal>>()
-    var liveDataGroupServers: LiveData<ArrayList<ServerDataGlobal>> = mutableLiveDataGroupServers
-
     var _mutableLiveDataTest = MutableLiveData<Int>(0)
     var liveDataTest: LiveData<Int> = _mutableLiveDataTest
 
-
     var _mutableLiveDataPing = MutableLiveData<Int?>(0)
     var liveDataPing: LiveData<Int?> = _mutableLiveDataPing
 
@@ -63,6 +59,9 @@ class ServerListViewModel(context: Context): ViewModel() {
     var _mutableLiveDataGetServersGlobal = MutableLiveData<ArrayList<ServerDataGlobal?>?>()
     var liveDataGetServersGlobal: LiveData<ArrayList<ServerDataGlobal?>?> = _mutableLiveDataGetServersGlobal
 
+    var mutableLiveDataGroupServers = MutableLiveData<ArrayList<ServerDataGlobal?>?>()
+    var liveDataGroupServers: LiveData<ArrayList<ServerDataGlobal?>?> = mutableLiveDataGroupServers
+
     var _mutableLiveDataGetServerData = MutableLiveData<ArrayList<ServerData>>(getServerData())
     var liveDataGetServerData: LiveData<ArrayList<ServerData>> = _mutableLiveDataGetServerData
 
@@ -648,7 +647,9 @@ class ServerListViewModel(context: Context): ViewModel() {
         }
 
         serversGroupListGlobal.add(index, ServerDataGlobal(server.country, tempList2))
-        mutableLiveDataGroupServers.value = serversGroupListGlobal
+        serversGroupListGlobal.let {
+            mutableLiveDataGroupServers.value = it
+        }
 
         return tempList2
     }
@@ -657,6 +658,7 @@ class ServerListViewModel(context: Context): ViewModel() {
         server.isFavourited = server.isFavourited != true
         val serverData = preferencesHelper.getServerData()
         val serverData2 = liveDataGetServersGlobal.value
+        val serversGroup = liveDataGroupServers.value
         val filterServersList = ArrayList<ServerDataGlobal>()
 
         serverData.forEachIndexed { i, serverDataList ->
@@ -674,18 +676,26 @@ class ServerListViewModel(context: Context): ViewModel() {
             serverDataList?.servers?.let {serverList ->
                 serverList.forEachIndexed { index, obj ->
                     if (obj.id == server.id) {
-//                        Log.d("test_serverData_Fav","if => index[$i]:: obj.id ${obj.id} , server = ${server.server_name}")
-//                        obj.isFavourited = obj.isFavourited != true
                         serverList.set(index, server)
                     }
                 }
             }
         }
 
+        serversGroup?.forEachIndexed { i, serverDataList ->
+            serverDataList?.servers?.let {serverList ->
+                serverList.forEachIndexed { index, obj ->
+                    if (obj.id == server.id) {
+                        serverList.set(index, server)
+                    }
+                }
+            }
+        }
 
         preferencesHelper.saveServerData(serverData)
         _mutableLiveDataGetFavList.value = getFavList()
         _mutableLiveDataGetServersGlobal.value = serverData2
+        mutableLiveDataGroupServers.value = serversGroup
     }
 
     fun setRecentlyConnectedServer(server: Server) {