Преглед на файлове

MutableList of server using on serverlist TV and using LaunchedEffect, when list ready it displayed after some sec delay

Khubaib преди 11 месеца
родител
ревизия
8653c28dd2
променени са 1 файла, в които са добавени 38 реда и са изтрити 29 реда
  1. 38 29
      app/src/main/java/com/vpn/fastestvpnservice/screensTV/ServerListScreenTV.kt

+ 38 - 29
app/src/main/java/com/vpn/fastestvpnservice/screensTV/ServerListScreenTV.kt

@@ -1,6 +1,7 @@
 package com.vpn.fastestvpnservice.screensTV
 
 import android.util.Log
+import android.widget.Toast
 import androidx.compose.foundation.background
 import androidx.compose.foundation.clickable
 import androidx.compose.foundation.focusable
@@ -59,11 +60,18 @@ fun ServerListTV(navHostController: NavHostController) {
     ) {
         HeaderRowSL(navHostController = navHostController)
 
-        var locations = ArrayList<Server>()
-        var dedicatedIP = ArrayList<Server>()
-        var streaming = ArrayList<Server>()
-        var dvpn = ArrayList<Server>()
-        var p2p = ArrayList<Server>()
+//        var locations = ArrayList<Server>()
+//        var dedicatedIP = ArrayList<Server>()
+//        var streaming = ArrayList<Server>()
+//        var dvpn = ArrayList<Server>()
+//        var p2p = ArrayList<Server>()
+
+        var locations by remember { mutableStateOf(ArrayList<Server>()) }
+        var dedicatedIP by remember { mutableStateOf(ArrayList<Server>()) }
+        var streaming by remember { mutableStateOf(ArrayList<Server>()) }
+        var dvpn by remember { mutableStateOf(ArrayList<Server>()) }
+        var p2p by remember { mutableStateOf(ArrayList<Server>()) }
+
 
         var isLocationsEnabled by remember { mutableStateOf(false) }
         var isDedicatedIpEnabled by remember { mutableStateOf(false) }
@@ -71,29 +79,30 @@ fun ServerListTV(navHostController: NavHostController) {
         var isDvpnEnabled by remember { mutableStateOf(false) }
         var isP2pEnabled by remember { mutableStateOf(false) }
 
-
-        val countries = serverListViewModelSplash.liveDataGetServersGlobal.value
-        countries?.forEachIndexed { index, serverData ->
-            Log.d("test_serverlist_tv","$index ${serverData?.name} ${serverData?.servers?.size}")
-            if (serverData?.name?.equals("Servers") == true) {
-                serverData.servers?.let { locations = it }
-                if (locations.size > 0) isLocationsEnabled = true
-            }
-            else if (serverData?.name?.equals("Dedicated IP") == true) {
-                serverData.servers?.let { dedicatedIP = it }
-                if (dedicatedIP.size > 0) isDedicatedIpEnabled = true
-            }
-            else if (serverData?.name?.equals("Streaming") == true) {
-                serverData.servers?.let { streaming = it }
-                if (streaming.size > 0) isStreamingEnabled = true
-            }
-            else if (serverData?.name?.equals("D-VPN") == true) {
-                serverData.servers?.let { dvpn = it }
-                if (dvpn.size > 0) isDvpnEnabled = true
-            }
-            else if (serverData?.name?.equals("P2P") == true) {
-                serverData.servers?.let { p2p = it }
-                if (p2p.size > 0) isP2pEnabled = true
+        LaunchedEffect(key1 = Unit) {
+            val countries = serverListViewModelSplash.liveDataGetServersGlobal.value
+            countries?.forEachIndexed { index, serverData ->
+                Log.d("test_serverlist_tv","$index ${serverData?.name} ${serverData?.servers?.size}")
+                if (serverData?.name?.equals("Servers") == true) {
+                    serverData.servers?.let { locations = it }
+                    if (locations.size > 0) isLocationsEnabled = true
+                }
+                else if (serverData?.name?.equals("Dedicated IP") == true) {
+                    serverData.servers?.let { dedicatedIP = it }
+                    if (dedicatedIP.size > 0) isDedicatedIpEnabled = true
+                }
+                else if (serverData?.name?.equals("Streaming") == true) {
+                    serverData.servers?.let { streaming = it }
+                    if (streaming.size > 0) isStreamingEnabled = true
+                }
+                else if (serverData?.name?.equals("D-VPN") == true) {
+                    serverData.servers?.let { dvpn = it }
+                    if (dvpn.size > 0) isDvpnEnabled = true
+                }
+                else if (serverData?.name?.equals("P2P") == true) {
+                    serverData.servers?.let { p2p = it }
+                    if (p2p.size > 0) isP2pEnabled = true
+                }
             }
         }
 
@@ -109,7 +118,7 @@ fun ServerListTV(navHostController: NavHostController) {
 
             if (isLocationsEnabled) {
                 Text(
-                    text = "Top Locations",
+                    text = "Top Locations ${locations.size}",
                     style = MaterialTheme.typography.labelLarge,
                     color = colorResource(id = R.color.dark_blue_gray_text),
                     modifier = Modifier