Skip to content

Commit f981c5b

Browse files
committed
Reduce minSdk from 24 to 21
by using a deprecated network API for direct check, and a version switch for the callback.
1 parent 13287a6 commit f981c5b

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ android {
99

1010
defaultConfig {
1111
applicationId = "org.thequestionmark.questionmark"
12-
minSdk = 24
12+
minSdk = 21
1313
targetSdk = 34
1414
versionCode = 30102
1515
versionName = "3.1.2"

app/src/main/java/org/thequestionmark/questionmark/MainActivity.kt

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import android.net.ConnectivityManager
77
import android.net.ConnectivityManager.NetworkCallback
88
import android.net.Network
99
import android.net.NetworkCapabilities
10+
import android.net.NetworkRequest
11+
import android.os.Build
1012
import android.os.Bundle
1113
import android.util.Log
1214
import android.view.KeyEvent
@@ -22,6 +24,7 @@ import com.journeyapps.barcodescanner.ScanOptions
2224
import org.json.JSONObject
2325
import java.net.URL
2426

27+
2528
class MainActivity : ComponentActivity() {
2629

2730
// Site entry-point. Only URLs on this domain are considered local for the app.
@@ -73,15 +76,11 @@ class MainActivity : ComponentActivity() {
7376
return super.onKeyDown(keyCode, event)
7477
}
7578

79+
@Suppress("DEPRECATION")
7680
private fun isNetworkAvailable(): Boolean {
7781
val connectivityManager = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager
78-
val nw = connectivityManager.activeNetwork ?: return false
79-
val actNw = connectivityManager.getNetworkCapabilities(nw)
80-
return actNw != null && (actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || actNw.hasTransport(
81-
NetworkCapabilities.TRANSPORT_CELLULAR
82-
) || actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) || actNw.hasTransport(
83-
NetworkCapabilities.TRANSPORT_VPN
84-
))
82+
val ni = connectivityManager.activeNetworkInfo ?: return false
83+
return ni.isConnected
8584
}
8685

8786
@Suppress("UNUSED_PARAMETER")
@@ -218,7 +217,14 @@ class MainActivity : ComponentActivity() {
218217
runOnUiThread { setOnline(false) }
219218
}
220219
}
221-
connectivityManager.registerDefaultNetworkCallback(networkCallback)
220+
// https://stackoverflow.com/a/58468010
221+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
222+
connectivityManager.registerDefaultNetworkCallback(networkCallback)
223+
} else {
224+
val request = NetworkRequest.Builder()
225+
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).build()
226+
connectivityManager.registerNetworkCallback(request, networkCallback)
227+
}
222228
}
223229

224230
private fun setOnline(online: Boolean) {

0 commit comments

Comments
 (0)