Parcourir la source

Displaying countries data on TV and processing data on serverlistviewmodel instead of Homescreen TV

Khubaib il y a 5 mois
Parent
commit
7ba16bb969

+ 2 - 2
.idea/deploymentTargetSelector.xml

@@ -4,10 +4,10 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2024-10-08T16:26:19.935918337Z">
+        <DropdownSelection timestamp="2024-10-14T09:01:50.039609776Z">
           <Target type="DEFAULT_BOOT">
             <handle>
-              <DeviceId pluginId="PhysicalDevice" identifier="serial=1C051FDF60048Z" />
+              <DeviceId pluginId="LocalEmulator" identifier="path=/home/ubuntu/.android/avd/Television_1080p_API_31.avd" />
             </handle>
           </Target>
         </DropdownSelection>

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

@@ -270,7 +270,7 @@ fun HomeTV(
     val basePreferenceHelper = BasePreferenceHelper(context)
     val prefHelper = BasePreferenceHelper(context)
     val scope = rememberCoroutineScope()
-    val homeViewModel: HomeViewModel = viewModel{
+    val homeViewModel: HomeViewModel = viewModel {
         HomeViewModel(context, scope)
     }
     var isConnect: Int? = homeViewModel.isConnect.observeAsState().value
@@ -329,18 +329,22 @@ fun HomeTV(
                     Build.VERSION.RELEASE
                 )
             }
+
             Lifecycle.Event.ON_PAUSE -> {
                 Log.d("test_home_resume", "ON_PAUSE: Home Screen!")
                 vpnConnectionsUtil.onPauseCallBack()
             }
+
             Lifecycle.Event.ON_STOP -> {
                 Log.d("test_home_resume", "ON_STOP: Home Screen!")
                 vpnConnectionsUtil.onStopCallBack()
             }
+
             Lifecycle.Event.ON_DESTROY -> {
                 Log.d("test_home_resume", "ON_DESTROY: Home Screen!")
                 vpnConnectionsUtil.onPauseCallBack()
             }
+
             else -> {
                 Log.d("test_home_resume", "else: Home Screen!")
             }
@@ -370,52 +374,7 @@ fun HomeTV(
         isHomeScreenPressed.value = false
     }
 
-    var isLaunched by remember { mutableStateOf(true) }
-
-    if (isLaunched) {
-        Log.d("test_lingual_splash", "isLaunched - true")
-        val countries = serverListViewModelSplash.liveDataGetServersGlobal.observeAsState().value
-        Log.d("test_serverlist_tv","$countries = ${countries?.size}")
-
-        val serverDataName = if (countries?.size == 5) listOf<String>("Servers", "Dedicated IP", "Streaming", "D-VPN", "P2P")
-        else listOf<String>("Servers", "Streaming", "D-VPN", "P2P")
-
-        Log.d("test_lingual_splash", "${serverDataName.size} , ${serverDataName}")
-        Log.d("test_lingual_splash","${isLocationsEnabled.value} ${isDedicatedIpEnabled.value}" +
-                " ${isStreamingEnabled.value}" +
-                " ${isDvpnEnabled.value} ${isP2pEnabled.value}")
-
-        countries?.forEachIndexed { index, serverData ->
-//            Log.d("test_serverlist_tv","$index ${serverData?.name} ${serverData?.servers?.size}")
-            if (serverDataName[index] == "Servers") {
-                Log.d("test_serverlist_tv","Inside ${serverData?.name}")
-                serverData?.servers?.let { locations = it }
-                if (locations.size > 0) isLocationsEnabled.value = true
-            }
-            else if (serverDataName[index] == "Dedicated IP") {
-                Log.d("test_serverlist_tv","Inside ${serverData?.name}")
-                serverData?.servers?.let { dedicatedIP = it }
-                if (dedicatedIP.size > 0) isDedicatedIpEnabled.value = true
-            }
-            else if (serverDataName[index].equals("Streaming")) {
-                Log.d("test_serverlist_tv","Inside ${serverData?.name}")
-                serverData?.servers?.let { streaming = it }
-                if (streaming.size > 0) isStreamingEnabled.value = true
-            }
-            else if (serverDataName[index].equals("D-VPN")) {
-                Log.d("test_serverlist_tv","Inside ${serverData?.name}")
-                serverData?.servers?.let { dvpn = it }
-                if (dvpn.size > 0) isDvpnEnabled.value = true
-            }
-            else if (serverDataName[index].equals("P2P")) {
-                Log.d("test_serverlist_tv","Inside ${serverData?.name}")
-                serverData?.servers?.let { p2p = it }
-                if (p2p.size > 0) isP2pEnabled.value = true
-            }
-        }
-        isLaunched = false
-    }
-
+//    val countries = serverListViewModelSplash.liveDataGetServersGlobal.observeAsState().value
 
 //    BackHandler {
 //        Toast.makeText(

+ 46 - 3
app/src/main/java/com/vpn/fastestvpnservice/viewmodels/ServerListViewModel.kt

@@ -26,7 +26,17 @@ import com.vpn.fastestvpnservice.screens.serversListAllGlobal
 import com.vpn.fastestvpnservice.screens.serversListFinalGlobal
 import com.vpn.fastestvpnservice.screens.serversListGlobal
 import com.vpn.fastestvpnservice.screens.smartLocationListGlobal
+import com.vpn.fastestvpnservice.screensTV.dedicatedIP
+import com.vpn.fastestvpnservice.screensTV.dvpn
+import com.vpn.fastestvpnservice.screensTV.isDedicatedIpEnabled
+import com.vpn.fastestvpnservice.screensTV.isDvpnEnabled
+import com.vpn.fastestvpnservice.screensTV.isLocationsEnabled
+import com.vpn.fastestvpnservice.screensTV.isP2pEnabled
+import com.vpn.fastestvpnservice.screensTV.isStreamingEnabled
+import com.vpn.fastestvpnservice.screensTV.locations
+import com.vpn.fastestvpnservice.screensTV.p2p
 import com.vpn.fastestvpnservice.screensTV.serversListGlobalTV
+import com.vpn.fastestvpnservice.screensTV.streaming
 
 class ServerListViewModel(context: Context): ViewModel() {
 
@@ -232,6 +242,7 @@ class ServerListViewModel(context: Context): ViewModel() {
         _mutableLiveDataGetServersGlobal.value = serversListGlobal
         mutableLiveDataAllServers.value = serversListAllGlobal
     }
+
     fun setCountryDataTV() {
         val data = preferencesHelper.getServerData()
 
@@ -266,12 +277,46 @@ class ServerListViewModel(context: Context): ViewModel() {
             serverDataGlobal?.servers?.let { serversListAllGlobal.addAll(it) }
         }
 
-//        Log.d("test_lingual_splash", "serversListGlobalTV - ${serversListGlobalTV.size}")
+        Log.d("test_serverlist_tv", "serversListGlobalTV - ${serversListGlobalTV.size}")
+
+        setCountriesDataTV(serversListGlobalTV)
 
         _mutableLiveDataGetServersGlobal.value = serversListGlobalTV
         mutableLiveDataAllServers.value = serversListAllGlobal
     }
 
+    fun setCountriesDataTV(countries: ArrayList<ServerDataGlobal?>) {
+        countries.let {
+            val serverDataName = if (countries.size == 5) listOf<String>(
+                "Servers",
+                "Dedicated IP",
+                "Streaming",
+                "D-VPN",
+                "P2P"
+            )
+            else listOf<String>("Servers", "Streaming", "D-VPN", "P2P")
+
+            countries.forEachIndexed { index, serverData ->
+                if (serverDataName[index] == "Servers") {
+                    serverData?.servers?.let { locations = it }
+                    if (locations.size > 0) isLocationsEnabled.value = true
+                } else if (serverDataName[index] == "Dedicated IP") {
+                    serverData?.servers?.let { dedicatedIP = it }
+                    if (dedicatedIP.size > 0) isDedicatedIpEnabled.value = true
+                } else if (serverDataName[index].equals("Streaming")) {
+                    serverData?.servers?.let { streaming = it }
+                    if (streaming.size > 0) isStreamingEnabled.value = true
+                } else if (serverDataName[index].equals("D-VPN")) {
+                    serverData?.servers?.let { dvpn = it }
+                    if (dvpn.size > 0) isDvpnEnabled.value = true
+                } else if (serverDataName[index].equals("P2P")) {
+                    serverData?.servers?.let { p2p = it }
+                    if (p2p.size > 0) isP2pEnabled.value = true
+                }
+            }
+        }
+    }
+
     fun calculatePing(server: Server, onPingResult: (Int) -> Unit) {
         Ping.onAddress(server.ip as String).setTimeOutMillis(1000).doPing(
             object : Ping.PingListener{
@@ -301,7 +346,6 @@ class ServerListViewModel(context: Context): ViewModel() {
         )
     }
 
-
     fun filterServersByISO(serverlist: ArrayList<Server>,
                            isAlphabetList: Boolean = false): ArrayList<Server> {
 
@@ -401,7 +445,6 @@ class ServerListViewModel(context: Context): ViewModel() {
         return (distinctBy as ArrayList<Server>)
     }
 
-
     // By Khubaib...
 
     fun filterServersAllCategory(serverlist: ArrayList<Server>): ArrayList<Server> {