|
@@ -15,6 +15,7 @@ import com.stealthcopter.networktools.ping.PingStats
|
|
|
import com.vpn.fastestvpnservice.beans.Protocol
|
|
|
import com.vpn.fastestvpnservice.beans.Server
|
|
|
import com.vpn.fastestvpnservice.beans.ServerData
|
|
|
+import com.vpn.fastestvpnservice.beans.ServerDataGlobal
|
|
|
import com.vpn.fastestvpnservice.beans.ServerProtocol
|
|
|
import com.vpn.fastestvpnservice.beans.ServerResponse
|
|
|
import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
|
|
@@ -24,6 +25,7 @@ import com.vpn.fastestvpnservice.screens.countriesListGlobal
|
|
|
import com.vpn.fastestvpnservice.screens.isAlphabetList
|
|
|
import com.vpn.fastestvpnservice.screens.recommendedListGlobal
|
|
|
import com.vpn.fastestvpnservice.screens.serverListViewModelSplash
|
|
|
+import com.vpn.fastestvpnservice.screens.serversListGlobal
|
|
|
import com.vpn.fastestvpnservice.screens.smartLocationListGlobal
|
|
|
import retrofit2.Call
|
|
|
|
|
@@ -57,8 +59,8 @@ class ServerListViewModel(context: Context): ViewModel() {
|
|
|
var _mutableLiveDataGetRecommendedServers = MutableLiveData<ArrayList<Server>>()
|
|
|
var liveDataGetRecommendedServers: LiveData<ArrayList<Server>> = _mutableLiveDataGetRecommendedServers
|
|
|
|
|
|
- var _mutableLiveDataGetCountryServers = MutableLiveData<ArrayList<Server>>()
|
|
|
- var liveDataGetCountryServers: LiveData<ArrayList<Server>> = _mutableLiveDataGetCountryServers
|
|
|
+ var _mutableLiveDataGetServersGlobal = MutableLiveData<ArrayList<ServerDataGlobal?>?>()
|
|
|
+ var liveDataGetServersGlobal: LiveData<ArrayList<ServerDataGlobal?>?> = _mutableLiveDataGetServersGlobal
|
|
|
|
|
|
var _mutableLiveDataGetServerData = MutableLiveData<ArrayList<ServerData>>(getServerData())
|
|
|
var liveDataGetServerData: LiveData<ArrayList<ServerData>> = _mutableLiveDataGetServerData
|
|
@@ -154,15 +156,31 @@ class ServerListViewModel(context: Context): ViewModel() {
|
|
|
|
|
|
var filterServersList = ArrayList<Server>()
|
|
|
|
|
|
- if (data[0].name?.lowercase().toString() == "servers") {
|
|
|
- data.get(0).servers?.let {
|
|
|
- filterServersList = serverListViewModelSplash.filterServersByISO(
|
|
|
- it, isAlphabetList.value
|
|
|
- )
|
|
|
- countriesListGlobal = filterServersList
|
|
|
- _mutableLiveDataGetCountryServers.value = countriesListGlobal
|
|
|
+ data.forEachIndexed { index, serverData ->
|
|
|
+// Log.d("test_serverData", "$index: ${serverData.name} => ${serverData.servers?.size}")
|
|
|
+
|
|
|
+ if (data[index].name?.lowercase().toString() == "servers") {
|
|
|
+ data[index].servers?.let {
|
|
|
+ val servers = serverListViewModelSplash.filterServersByISO(
|
|
|
+ it, isAlphabetList.value
|
|
|
+ )
|
|
|
+ serversListGlobal.add(index, ServerDataGlobal(serverData.name, servers))
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ data[index].servers?.let {
|
|
|
+ val servers = serverListViewModelSplash.filterServersByStreamingServers(
|
|
|
+ it, isAlphabetList.value
|
|
|
+ )
|
|
|
+ serversListGlobal.add(index, ServerDataGlobal(serverData.name, servers))
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ serversListGlobal.forEachIndexed { index, serverData ->
|
|
|
+ Log.d("test_serverData G", "$index: ${serverData?.name} => ${serverData?.servers?.size}")
|
|
|
+ }
|
|
|
+
|
|
|
+ _mutableLiveDataGetServersGlobal.value = serversListGlobal
|
|
|
}
|
|
|
fun calculatePing(server: Server, onPingResult: (Int) -> Unit) {
|
|
|
Ping.onAddress(server.ip as String).setTimeOutMillis(1000).doPing(
|
|
@@ -634,6 +652,8 @@ class ServerListViewModel(context: Context): ViewModel() {
|
|
|
fun updateFavServer(server: Server) {
|
|
|
server.isFavourited = server.isFavourited != true
|
|
|
val serverData = preferencesHelper.getServerData()
|
|
|
+ val serverData2 = liveDataGetServersGlobal.value
|
|
|
+ val filterServersList = ArrayList<ServerDataGlobal>()
|
|
|
|
|
|
serverData.forEachIndexed { i, serverDataList ->
|
|
|
serverDataList.servers?.let {serverList ->
|
|
@@ -646,9 +666,22 @@ class ServerListViewModel(context: Context): ViewModel() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ serverData2?.forEachIndexed { i, serverDataList ->
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
preferencesHelper.saveServerData(serverData)
|
|
|
_mutableLiveDataGetFavList.value = getFavList()
|
|
|
+ _mutableLiveDataGetServersGlobal.value = serverData2
|
|
|
}
|
|
|
|
|
|
fun setRecentlyConnectedServer(server: Server) {
|