|  | @@ -29,6 +29,7 @@ import androidx.compose.material3.MaterialTheme
 | 
												
													
														
															|  |  import androidx.compose.material3.Surface
 |  |  import androidx.compose.material3.Surface
 | 
												
													
														
															|  |  import androidx.compose.material3.Text
 |  |  import androidx.compose.material3.Text
 | 
												
													
														
															|  |  import androidx.compose.runtime.Composable
 |  |  import androidx.compose.runtime.Composable
 | 
												
													
														
															|  | 
 |  | +import androidx.compose.runtime.LaunchedEffect
 | 
												
													
														
															|  |  import androidx.compose.runtime.getValue
 |  |  import androidx.compose.runtime.getValue
 | 
												
													
														
															|  |  import androidx.compose.runtime.livedata.observeAsState
 |  |  import androidx.compose.runtime.livedata.observeAsState
 | 
												
													
														
															|  |  import androidx.compose.runtime.mutableIntStateOf
 |  |  import androidx.compose.runtime.mutableIntStateOf
 | 
												
											
												
													
														
															|  | @@ -76,6 +77,7 @@ import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
 | 
												
													
														
															|  |  import com.vpn.fastestvpnservice.viewmodels.SearchListViewModel
 |  |  import com.vpn.fastestvpnservice.viewmodels.SearchListViewModel
 | 
												
													
														
															|  |  import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
 |  |  import com.vpn.fastestvpnservice.viewmodels.ServerListViewModel
 | 
												
													
														
															|  |  import com.vpn.fastestvpnservice.viewmodels.SplashViewModel
 |  |  import com.vpn.fastestvpnservice.viewmodels.SplashViewModel
 | 
												
													
														
															|  | 
 |  | +import kotlinx.coroutines.delay
 | 
												
													
														
															|  |  import java.lang.Exception
 |  |  import java.lang.Exception
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  |  @Composable
 |  |  @Composable
 | 
												
											
												
													
														
															|  | @@ -138,18 +140,30 @@ fun ServerItem(server: Server, navHostController: NavHostController, serverPing:
 | 
												
													
														
															|  |                  }
 |  |                  }
 | 
												
													
														
															|  |          ) {
 |  |          ) {
 | 
												
													
														
															|  |              var ping by remember { mutableIntStateOf(0) }
 |  |              var ping by remember { mutableIntStateOf(0) }
 | 
												
													
														
															|  | -//            Ping.onAddress(server.ip as String).setTimeOutMillis(1000).doPing(
 |  | 
 | 
												
													
														
															|  | -//                object : Ping.PingListener{
 |  | 
 | 
												
													
														
															|  | -//                    override fun onResult(pingResult: PingResult?) {
 |  | 
 | 
												
													
														
															|  | -//                        android.os.Handler(Looper.getMainLooper()).post {
 |  | 
 | 
												
													
														
															|  | -//                            ping = pingResult?.timeTaken?.toInt()!!
 |  | 
 | 
												
													
														
															|  | -//                        }
 |  | 
 | 
												
													
														
															|  | -//                    }
 |  | 
 | 
												
													
														
															|  | -//
 |  | 
 | 
												
													
														
															|  | -//                    override fun onError(e: Exception?) {}
 |  | 
 | 
												
													
														
															|  | -//                    override fun onFinished(pingStats: PingStats?) {}
 |  | 
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +            fun updatePing(newPing: Int) {
 | 
												
													
														
															|  | 
 |  | +                ping = newPing
 | 
												
													
														
															|  | 
 |  | +            }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +            LaunchedEffect(key1 = Unit) {
 | 
												
													
														
															|  | 
 |  | +                Log.d("test_new_ping", "Inside LE")
 | 
												
													
														
															|  | 
 |  | +//                while (true) {
 | 
												
													
														
															|  | 
 |  | +                    Ping.onAddress(server.ip as String).setTimeOutMillis(1000).doPing(
 | 
												
													
														
															|  | 
 |  | +                        object : Ping.PingListener{
 | 
												
													
														
															|  | 
 |  | +                            override fun onResult(pingResult: PingResult?) {
 | 
												
													
														
															|  | 
 |  | +                                pingResult?.let {
 | 
												
													
														
															|  | 
 |  | +                                    Log.d("test_new_ping", "pingResult = ${it.timeTaken.toInt()}")
 | 
												
													
														
															|  | 
 |  | +                                    updatePing(it.timeTaken.toInt())
 | 
												
													
														
															|  | 
 |  | +                                }
 | 
												
													
														
															|  | 
 |  | +                            }
 | 
												
													
														
															|  | 
 |  | +                            override fun onError(e: Exception?) {}
 | 
												
													
														
															|  | 
 |  | +                            override fun onFinished(pingStats: PingStats?) {}
 | 
												
													
														
															|  | 
 |  | +                        }
 | 
												
													
														
															|  | 
 |  | +                    )
 | 
												
													
														
															|  | 
 |  | +//                    delay(3 * 1000)
 | 
												
													
														
															|  |  //                }
 |  |  //                }
 | 
												
													
														
															|  | -//            )
 |  | 
 | 
												
													
														
															|  | 
 |  | +            }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  |              val icon = if (server.enable == 1) Utils.getDrawable(context, server.iso)
 |  |              val icon = if (server.enable == 1) Utils.getDrawable(context, server.iso)
 | 
												
													
														
															|  |              else Utils.getDrawableGray(context, server.iso)
 |  |              else Utils.getDrawableGray(context, server.iso)
 | 
												
													
														
															|  |  
 |  |  
 | 
												
											
												
													
														
															|  | @@ -174,7 +188,7 @@ fun ServerItem(server: Server, navHostController: NavHostController, serverPing:
 | 
												
													
														
															|  |                      .align(Alignment.CenterVertically)
 |  |                      .align(Alignment.CenterVertically)
 | 
												
													
														
															|  |                  )
 |  |                  )
 | 
												
													
														
															|  |              Spacer(modifier = Modifier.weight(1F))
 |  |              Spacer(modifier = Modifier.weight(1F))
 | 
												
													
														
															|  | -            Text(text = "$serverPing ms",
 |  | 
 | 
												
													
														
															|  | 
 |  | +            Text(text = "$ping ms",
 | 
												
													
														
															|  |                  style = MaterialTheme.typography.displayMedium,
 |  |                  style = MaterialTheme.typography.displayMedium,
 | 
												
													
														
															|  |                  color = colorResource(id = R.color.blue_text),
 |  |                  color = colorResource(id = R.color.blue_text),
 | 
												
													
														
															|  |                  modifier = Modifier
 |  |                  modifier = Modifier
 | 
												
											
												
													
														
															|  | @@ -277,18 +291,25 @@ fun FavoriteServerItem(server: Server, navHostController: NavHostController) {
 | 
												
													
														
															|  |                  }
 |  |                  }
 | 
												
													
														
															|  |          ) {
 |  |          ) {
 | 
												
													
														
															|  |              var ping by remember { mutableIntStateOf(0) }
 |  |              var ping by remember { mutableIntStateOf(0) }
 | 
												
													
														
															|  | -//            Ping.onAddress(server.ip as String).setTimeOutMillis(1000).doPing(
 |  | 
 | 
												
													
														
															|  | -//                object : Ping.PingListener{
 |  | 
 | 
												
													
														
															|  | -//                    override fun onResult(pingResult: PingResult?) {
 |  | 
 | 
												
													
														
															|  | -//                        android.os.Handler(Looper.getMainLooper()).post {
 |  | 
 | 
												
													
														
															|  | -//                            ping = pingResult?.timeTaken?.toInt()!!
 |  | 
 | 
												
													
														
															|  | -//                        }
 |  | 
 | 
												
													
														
															|  | -//                    }
 |  | 
 | 
												
													
														
															|  | -//
 |  | 
 | 
												
													
														
															|  | -//                    override fun onError(e: Exception?) {}
 |  | 
 | 
												
													
														
															|  | -//                    override fun onFinished(pingStats: PingStats?) {}
 |  | 
 | 
												
													
														
															|  | -//                }
 |  | 
 | 
												
													
														
															|  | -//            )
 |  | 
 | 
												
													
														
															|  | 
 |  | +            fun updatePing(newPing: Int) {
 | 
												
													
														
															|  | 
 |  | +                ping = newPing
 | 
												
													
														
															|  | 
 |  | +            }
 | 
												
													
														
															|  | 
 |  | +            LaunchedEffect(key1 = Unit) {
 | 
												
													
														
															|  | 
 |  | +                Ping.onAddress(server.ip as String).setTimeOutMillis(1000).doPing(
 | 
												
													
														
															|  | 
 |  | +                    object : Ping.PingListener{
 | 
												
													
														
															|  | 
 |  | +                        override fun onResult(pingResult: PingResult?) {
 | 
												
													
														
															|  | 
 |  | +                            android.os.Handler(Looper.getMainLooper()).post {
 | 
												
													
														
															|  | 
 |  | +                                pingResult?.let {
 | 
												
													
														
															|  | 
 |  | +                                    updatePing(it.timeTaken.toInt())
 | 
												
													
														
															|  | 
 |  | +                                }
 | 
												
													
														
															|  | 
 |  | +                            }
 | 
												
													
														
															|  | 
 |  | +                        }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +                        override fun onError(e: Exception?) {}
 | 
												
													
														
															|  | 
 |  | +                        override fun onFinished(pingStats: PingStats?) {}
 | 
												
													
														
															|  | 
 |  | +                    }
 | 
												
													
														
															|  | 
 |  | +                )
 | 
												
													
														
															|  | 
 |  | +            }
 | 
												
													
														
															|  |              val icon = if (server.enable == 1) Utils.getDrawable(context, server.iso)
 |  |              val icon = if (server.enable == 1) Utils.getDrawable(context, server.iso)
 | 
												
													
														
															|  |              else Utils.getDrawableGray(context, server.iso)
 |  |              else Utils.getDrawableGray(context, server.iso)
 | 
												
													
														
															|  |  
 |  |  
 | 
												
											
												
													
														
															|  | @@ -315,7 +336,7 @@ fun FavoriteServerItem(server: Server, navHostController: NavHostController) {
 | 
												
													
														
															|  |                      .align(Alignment.CenterVertically)
 |  |                      .align(Alignment.CenterVertically)
 | 
												
													
														
															|  |              )
 |  |              )
 | 
												
													
														
															|  |              Spacer(modifier = Modifier.weight(1F))
 |  |              Spacer(modifier = Modifier.weight(1F))
 | 
												
													
														
															|  | -            Text(text = "${server.ping} ms",
 |  | 
 | 
												
													
														
															|  | 
 |  | +            Text(text = "$ping ms",
 | 
												
													
														
															|  |                  color = colorResource(id = R.color.blue_text),
 |  |                  color = colorResource(id = R.color.blue_text),
 | 
												
													
														
															|  |                  style = MaterialTheme.typography.displayMedium,
 |  |                  style = MaterialTheme.typography.displayMedium,
 | 
												
													
														
															|  |                  modifier = Modifier
 |  |                  modifier = Modifier
 | 
												
											
												
													
														
															|  | @@ -431,8 +452,7 @@ fun ServerSearchItem(
 | 
												
													
														
															|  |                          if (!isServerCallbackShown) {
 |  |                          if (!isServerCallbackShown) {
 | 
												
													
														
															|  |                              onServerDisable()
 |  |                              onServerDisable()
 | 
												
													
														
															|  |                          }
 |  |                          }
 | 
												
													
														
															|  | -                    }
 |  | 
 | 
												
													
														
															|  | -                    else {
 |  | 
 | 
												
													
														
															|  | 
 |  | +                    } else {
 | 
												
													
														
															|  |                          navHostController.navigate(
 |  |                          navHostController.navigate(
 | 
												
													
														
															|  |                              Screen.Subscription.route
 |  |                              Screen.Subscription.route
 | 
												
													
														
															|  |                          )
 |  |                          )
 | 
												
											
												
													
														
															|  | @@ -441,18 +461,29 @@ fun ServerSearchItem(
 | 
												
													
														
															|  |                  }
 |  |                  }
 | 
												
													
														
															|  |          ) {
 |  |          ) {
 | 
												
													
														
															|  |              var ping by remember { mutableIntStateOf(0) }
 |  |              var ping by remember { mutableIntStateOf(0) }
 | 
												
													
														
															|  | -//            Ping.onAddress(server.ip as String).setTimeOutMillis(1000).doPing(
 |  | 
 | 
												
													
														
															|  | -//                object : Ping.PingListener{
 |  | 
 | 
												
													
														
															|  | -//                    override fun onResult(pingResult: PingResult?) {
 |  | 
 | 
												
													
														
															|  | -//                        android.os.Handler(Looper.getMainLooper()).post {
 |  | 
 | 
												
													
														
															|  | -//                            ping = pingResult?.timeTaken?.toInt()!!
 |  | 
 | 
												
													
														
															|  | -//                        }
 |  | 
 | 
												
													
														
															|  | -//                    }
 |  | 
 | 
												
													
														
															|  | -//
 |  | 
 | 
												
													
														
															|  | -//                    override fun onError(e: Exception?) {}
 |  | 
 | 
												
													
														
															|  | -//                    override fun onFinished(pingStats: PingStats?) {}
 |  | 
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +            fun updatePing(newPing: Int) {
 | 
												
													
														
															|  | 
 |  | +                ping = newPing
 | 
												
													
														
															|  | 
 |  | +            }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +            LaunchedEffect(key1 = Unit) {
 | 
												
													
														
															|  | 
 |  | +                Log.d("test_new_ping", "Inside LE")
 | 
												
													
														
															|  | 
 |  | +//                while (true) {
 | 
												
													
														
															|  | 
 |  | +                Ping.onAddress(server.ip as String).setTimeOutMillis(1000).doPing(
 | 
												
													
														
															|  | 
 |  | +                    object : Ping.PingListener{
 | 
												
													
														
															|  | 
 |  | +                        override fun onResult(pingResult: PingResult?) {
 | 
												
													
														
															|  | 
 |  | +                            pingResult?.let {
 | 
												
													
														
															|  | 
 |  | +                                Log.d("test_new_ping", "pingResult = ${it.timeTaken.toInt()}")
 | 
												
													
														
															|  | 
 |  | +                                updatePing(it.timeTaken.toInt())
 | 
												
													
														
															|  | 
 |  | +                            }
 | 
												
													
														
															|  | 
 |  | +                        }
 | 
												
													
														
															|  | 
 |  | +                        override fun onError(e: Exception?) {}
 | 
												
													
														
															|  | 
 |  | +                        override fun onFinished(pingStats: PingStats?) {}
 | 
												
													
														
															|  | 
 |  | +                    }
 | 
												
													
														
															|  | 
 |  | +                )
 | 
												
													
														
															|  | 
 |  | +//                    delay(3 * 1000)
 | 
												
													
														
															|  |  //                }
 |  |  //                }
 | 
												
													
														
															|  | -//            )
 |  | 
 | 
												
													
														
															|  | 
 |  | +            }
 | 
												
													
														
															|  |              val icon = if (server.enable == 1) Utils.getDrawable(context, server.iso)
 |  |              val icon = if (server.enable == 1) Utils.getDrawable(context, server.iso)
 | 
												
													
														
															|  |              else Utils.getDrawableGray(context, server.iso)
 |  |              else Utils.getDrawableGray(context, server.iso)
 | 
												
													
														
															|  |  
 |  |  
 | 
												
											
												
													
														
															|  | @@ -477,7 +508,7 @@ fun ServerSearchItem(
 | 
												
													
														
															|  |                      .align(Alignment.CenterVertically)
 |  |                      .align(Alignment.CenterVertically)
 | 
												
													
														
															|  |              )
 |  |              )
 | 
												
													
														
															|  |              Spacer(modifier = Modifier.weight(1F))
 |  |              Spacer(modifier = Modifier.weight(1F))
 | 
												
													
														
															|  | -            Text(text = "${server.ping} ms",
 |  | 
 | 
												
													
														
															|  | 
 |  | +            Text(text = "$ping ms",
 | 
												
													
														
															|  |                  color = colorResource(id = R.color.blue_text),
 |  |                  color = colorResource(id = R.color.blue_text),
 | 
												
													
														
															|  |                  style = MaterialTheme.typography.displayMedium,
 |  |                  style = MaterialTheme.typography.displayMedium,
 | 
												
													
														
															|  |                  modifier = Modifier
 |  |                  modifier = Modifier
 |