|
@@ -29,6 +29,7 @@ import androidx.compose.material3.MaterialTheme
|
|
|
import androidx.compose.material3.Surface
|
|
|
import androidx.compose.material3.Text
|
|
|
import androidx.compose.runtime.Composable
|
|
|
+import androidx.compose.runtime.LaunchedEffect
|
|
|
import androidx.compose.runtime.getValue
|
|
|
import androidx.compose.runtime.livedata.observeAsState
|
|
|
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.ServerListViewModel
|
|
|
import com.vpn.fastestvpnservice.viewmodels.SplashViewModel
|
|
|
+import kotlinx.coroutines.delay
|
|
|
import java.lang.Exception
|
|
|
|
|
|
@Composable
|
|
@@ -138,18 +140,30 @@ fun ServerItem(server: Server, navHostController: NavHostController, serverPing:
|
|
|
}
|
|
|
) {
|
|
|
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)
|
|
|
else Utils.getDrawableGray(context, server.iso)
|
|
|
|
|
@@ -174,7 +188,7 @@ fun ServerItem(server: Server, navHostController: NavHostController, serverPing:
|
|
|
.align(Alignment.CenterVertically)
|
|
|
)
|
|
|
Spacer(modifier = Modifier.weight(1F))
|
|
|
- Text(text = "$serverPing ms",
|
|
|
+ Text(text = "$ping ms",
|
|
|
style = MaterialTheme.typography.displayMedium,
|
|
|
color = colorResource(id = R.color.blue_text),
|
|
|
modifier = Modifier
|
|
@@ -277,18 +291,25 @@ fun FavoriteServerItem(server: Server, navHostController: NavHostController) {
|
|
|
}
|
|
|
) {
|
|
|
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)
|
|
|
else Utils.getDrawableGray(context, server.iso)
|
|
|
|
|
@@ -315,7 +336,7 @@ fun FavoriteServerItem(server: Server, navHostController: NavHostController) {
|
|
|
.align(Alignment.CenterVertically)
|
|
|
)
|
|
|
Spacer(modifier = Modifier.weight(1F))
|
|
|
- Text(text = "${server.ping} ms",
|
|
|
+ Text(text = "$ping ms",
|
|
|
color = colorResource(id = R.color.blue_text),
|
|
|
style = MaterialTheme.typography.displayMedium,
|
|
|
modifier = Modifier
|
|
@@ -431,8 +452,7 @@ fun ServerSearchItem(
|
|
|
if (!isServerCallbackShown) {
|
|
|
onServerDisable()
|
|
|
}
|
|
|
- }
|
|
|
- else {
|
|
|
+ } else {
|
|
|
navHostController.navigate(
|
|
|
Screen.Subscription.route
|
|
|
)
|
|
@@ -441,18 +461,29 @@ fun ServerSearchItem(
|
|
|
}
|
|
|
) {
|
|
|
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)
|
|
|
else Utils.getDrawableGray(context, server.iso)
|
|
|
|
|
@@ -477,7 +508,7 @@ fun ServerSearchItem(
|
|
|
.align(Alignment.CenterVertically)
|
|
|
)
|
|
|
Spacer(modifier = Modifier.weight(1F))
|
|
|
- Text(text = "${server.ping} ms",
|
|
|
+ Text(text = "$ping ms",
|
|
|
color = colorResource(id = R.color.blue_text),
|
|
|
style = MaterialTheme.typography.displayMedium,
|
|
|
modifier = Modifier
|