private fun checkInternetConnection(completion: (Boolean) -> Unit) {
coroutineScope.launch {
val isConnected = try {
val url = URL(NetworkReachabilityConfig.getTestUrl())
val connection = url.openConnection() as HttpURLConnection
connection.requestMethod = "HEAD"
connection.connectTimeout = 3000 // 3 seconds timeout
connection.readTimeout = 3000 // 3 seconds timeout
connection.connect()
connection.responseCode in 200..399
} catch (e: Exception) {
false
}
withContext(Dispatchers.Main) { completion(isConnected) }
}
}