Fix build on Java 19

This commit is contained in:
Daniel Tang 2023-03-12 21:23:30 -04:00 committed by Kelson
parent 660b376969
commit f0096a63f8
4 changed files with 11 additions and 30 deletions

View File

@ -42,7 +42,7 @@ object Versions {
const val io_objectbox: String = "3.5.0"
const val io_mockk: String = "1.12.0"
const val io_mockk: String = "1.13.4"
const val android_arch_lifecycle_extensions: String = "1.1.1"

View File

@ -111,7 +111,9 @@ class AllProjectConfigurer {
"IconDipSize",
"UnusedResources",
"NonConstantResourceId",
"NotifyDataSetChanged"
"NotifyDataSetChanged",
"NotificationPermission",
"MonochromeLauncherIcon"
)
lintConfig = target.rootProject.file("lintConfig.xml")
}

View File

@ -22,6 +22,7 @@ import android.net.ConnectivityManager
import android.net.NetworkInfo
import android.os.Build
import android.util.Log
import androidx.annotation.VisibleForTesting
import org.kiwix.kiwixmobile.core.R
import java.lang.Exception
import java.util.UUID
@ -41,6 +42,9 @@ object NetworkUtils {
fun isNetworkConnectionOK(networkInfo: NetworkInfo): Boolean =
networkInfo.state == NetworkInfo.State.CONNECTED
@VisibleForTesting
internal var sdkVersionForTesting = Build.VERSION.SDK_INT
/**
* check if network of type WIFI is connected
*
@ -52,7 +56,7 @@ object NetworkUtils {
fun isWiFi(context: Context): Boolean {
val connectivity = context
.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
return if (sdkVersionForTesting >= Build.VERSION_CODES.M) {
val networkInfo = connectivity.activeNetworkInfo ?: return false
networkInfo.type == ConnectivityManager.TYPE_WIFI && networkInfo.isConnected
} else {

View File

@ -21,8 +21,6 @@ package org.kiwix.kiwixmobile.core.utils
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkInfo
import android.os.Build
import android.util.Log
import io.mockk.every
import io.mockk.mockk
import io.mockk.verify
@ -31,8 +29,6 @@ import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.jupiter.api.Test
import org.kiwix.kiwixmobile.core.R
import java.lang.reflect.Field
import java.lang.reflect.Modifier
import java.util.regex.Pattern
class NetworkUtilsTest {
@ -79,11 +75,7 @@ class NetworkUtilsTest {
every { (connectivity.activeNetworkInfo) } returns networkInfo
// SDK >= 23
try {
setSDKVersion(Build.VERSION::class.java.getField("SDK_INT"), 23)
} catch (e: Exception) {
Log.d("NetworkUtilsTest", "Unable to set Build SDK Version")
}
NetworkUtils.sdkVersionForTesting = 23
// on Mobile Data
every { (networkInfo.type) } returns ConnectivityManager.TYPE_MOBILE
@ -110,11 +102,7 @@ class NetworkUtilsTest {
verify(exactly = 0) { connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI) }
// SDK < 23
try {
setSDKVersion(Build.VERSION::class.java.getField("SDK_INT"), 22)
} catch (e: Exception) {
Log.d("NetworkUtilsTest", "Unable to set Build SDK Version")
}
NetworkUtils.sdkVersionForTesting = 22
// WIFI connected
every { (connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI)) } returns networkInfo
@ -236,17 +224,4 @@ class NetworkUtilsTest {
)
)
}
// Sets the Build SDK version
@Throws(Exception::class)
private fun setSDKVersion(
field: Field,
newValue: Any
) {
field.isAccessible = true
val modifiersField = Field::class.java.getDeclaredField("modifiers")
modifiersField.isAccessible = true
modifiersField.setInt(field, field.modifiers and Modifier.FINAL.inv())
field.set(null, newValue)
}
}