From 0547004c142d9cf438a1929469d99219b2439a5c Mon Sep 17 00:00:00 2001 From: ruirigel Date: Wed, 25 Sep 2024 21:56:44 +0100 Subject: [PATCH] improve code --- app/build.gradle.kts | 4 +-- .../com/example/myapplication/MainActivity.kt | 35 ++++++++++++++++++- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f5413ea..0cd9efe 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -12,8 +12,8 @@ android { applicationId = "com.example.myapplication" minSdk = 26 targetSdk = 34 - versionCode = 20240919 - versionName = "v20240919" + versionCode = 20240925 + versionName = "v20240925" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/example/myapplication/MainActivity.kt b/app/src/main/java/com/example/myapplication/MainActivity.kt index d856b7d..8f33868 100644 --- a/app/src/main/java/com/example/myapplication/MainActivity.kt +++ b/app/src/main/java/com/example/myapplication/MainActivity.kt @@ -50,13 +50,14 @@ import java.io.IOException import java.io.InputStreamReader import java.net.HttpURLConnection import java.net.URL +import java.net.UnknownHostException import java.time.LocalDateTime @Suppress("DEPRECATION") class MainActivity : AppCompatActivity() { - private val currentVersion = 20240919 + private val currentVersion = 20240925 private var timer: CountDownTimer? = null private var composer = "Track: Trell Daniels - " @@ -1362,6 +1363,17 @@ class MainActivity : AppCompatActivity() { CoroutineScope(Dispatchers.IO).launch { try { + if (!hasActiveInternetConnection()) { + withContext(Dispatchers.Main) { + Toast.makeText( + this@MainActivity, + "No active internet connection.", + Toast.LENGTH_LONG + ).show() + } + return@launch + } + val url = URL(rawUrl) val connection = url.openConnection() as HttpURLConnection connection.requestMethod = "GET" @@ -1394,6 +1406,14 @@ class MainActivity : AppCompatActivity() { } connection.disconnect() + } catch (e: UnknownHostException) { + withContext(Dispatchers.Main) { + Toast.makeText( + this@MainActivity, + "Unable to resolve host. Please check your connection.", + Toast.LENGTH_LONG + ).show() + } } catch (e: Exception) { withContext(Dispatchers.Main) { Toast.makeText(this@MainActivity, "Error: ${e.message}", Toast.LENGTH_LONG) @@ -1404,6 +1424,19 @@ class MainActivity : AppCompatActivity() { } } + private fun hasActiveInternetConnection(): Boolean { + return try { + val url = URL("https://clients3.google.com/generate_204") + val connection = url.openConnection() as HttpURLConnection + connection.requestMethod = "HEAD" + connection.connectTimeout = 2000 + connection.readTimeout = 2000 + connection.responseCode == 204 + } catch (e: Exception) { + false + } + } + private fun onTopUserOvertaken( oldUserName: String, oldScore: Int,