Browse Source

ping update value on scrolling change, resolved

Khubaib 11 months atrás
parent
commit
8e2b2ed217

+ 2 - 2
app/src/main/java/com/vpn/fastestvpnservice/customItems/CountryItem.kt

@@ -289,7 +289,7 @@ fun ColumnScope.ExpandableRow(
                         navHostController.popBackStack()
                     }
 
-                    var ping by remember { mutableIntStateOf(0) }
+                    var ping by rememberSaveable { mutableIntStateOf(0) }
 
                     fun updatePing(newPing: Int) {
                         ping = newPing
@@ -303,7 +303,7 @@ fun ColumnScope.ExpandableRow(
                                 override fun onResult(pingResult: PingResult?) {
                                     pingResult?.let {
                                         Log.d("test_new_ping", "pingResult = ${it.timeTaken.toInt()}")
-                                        updatePing(it.timeTaken.toInt())
+                                        if (ping == 0) updatePing(it.timeTaken.toInt())
                                     }
                                 }
                                 override fun onError(e: Exception?) {}

+ 8 - 7
app/src/main/java/com/vpn/fastestvpnservice/customItems/ServerItem.kt

@@ -28,6 +28,7 @@ import androidx.compose.runtime.mutableIntStateOf
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.runtime.saveable.rememberSaveable
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
@@ -128,7 +129,7 @@ fun ServerItem(server: Server, navHostController: NavHostController, serverPing:
                     }
                 }
         ) {
-            var ping by remember { mutableIntStateOf(0) }
+            var ping by rememberSaveable { mutableIntStateOf(0) }
 
             fun updatePing(newPing: Int) {
                 ping = newPing
@@ -141,8 +142,8 @@ fun ServerItem(server: Server, navHostController: NavHostController, serverPing:
                         object : Ping.PingListener{
                             override fun onResult(pingResult: PingResult?) {
                                 pingResult?.let {
-                                    Log.d("test_new_ping", "pingResult = ${it.timeTaken.toInt()}")
-                                    updatePing(it.timeTaken.toInt())
+                                    Log.d("test_new_ping_t", "pingResult = ${it.timeTaken.toInt()}, ping = $ping")
+                                    if (ping == 0) updatePing(it.timeTaken.toInt())
                                 }
                             }
                             override fun onError(e: Exception?) {}
@@ -282,7 +283,7 @@ fun FavoriteServerItem(server: Server, navHostController: NavHostController) {
                     }
                 }
         ) {
-            var ping by remember { mutableIntStateOf(0) }
+            var ping by rememberSaveable { mutableIntStateOf(0) }
             fun updatePing(newPing: Int) {
                 ping = newPing
             }
@@ -292,7 +293,7 @@ fun FavoriteServerItem(server: Server, navHostController: NavHostController) {
                         override fun onResult(pingResult: PingResult?) {
                             android.os.Handler(Looper.getMainLooper()).post {
                                 pingResult?.let {
-                                    updatePing(it.timeTaken.toInt())
+                                    if (ping == 0) updatePing(it.timeTaken.toInt())
                                 }
                             }
                         }
@@ -461,7 +462,7 @@ fun ServerSearchItem(
 
                 }
         ) {
-            var ping by remember { mutableIntStateOf(0) }
+            var ping by rememberSaveable { mutableIntStateOf(0) }
 
             fun updatePing(newPing: Int) {
                 ping = newPing
@@ -475,7 +476,7 @@ fun ServerSearchItem(
                         override fun onResult(pingResult: PingResult?) {
                             pingResult?.let {
                                 Log.d("test_new_ping", "pingResult = ${it.timeTaken.toInt()}")
-                                updatePing(it.timeTaken.toInt())
+                                if (ping == 0) updatePing(it.timeTaken.toInt())
                             }
                         }
                         override fun onError(e: Exception?) {}