chore: update `targetSdk` to API 34

pull/1144/head^2
andrekir 2024-07-21 09:59:37 -03:00 zatwierdzone przez Andre K
rodzic de180f2d35
commit e31b7d4911
8 zmienionych plików z 25 dodań i 6 usunięć

Wyświetl plik

@ -114,7 +114,7 @@ jobs:
timeout-minutes: 30
strategy:
matrix:
api-level: [26, 33]
api-level: [26, 34]
steps:
- uses: actions/checkout@v4

Wyświetl plik

@ -37,7 +37,7 @@ android {
defaultConfig {
applicationId "com.geeksville.mesh"
minSdkVersion 21 // The oldest emulator image I have tried is 22 (though 21 probably works)
targetSdk 33
targetSdk 34
versionCode 30315 // format is Mmmss (where M is 1+the numeric major number
versionName "2.3.15"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

Wyświetl plik

@ -47,6 +47,7 @@
<!-- We run our mesh code as a foreground service - FIXME, find a way to stop doing this -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" />
<!-- Needed to open our bluetooth connection to our paired device (after reboot) -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
@ -101,11 +102,13 @@
android:value="false" />
<!-- we need bind job service for oreo -->
<!--
<service
android:name="com.geeksville.mesh.service.SoftwareUpdateService"
android:enabled="true"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE" />
-->
<!-- This is the public API for doing mesh radio operations from android apps -->
<service

Wyświetl plik

@ -6,6 +6,7 @@ import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import androidx.annotation.RequiresPermission
import com.geeksville.mesh.util.registerReceiverCompat
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow
@ -24,7 +25,7 @@ internal fun BluetoothDevice.createBond(context: Context): Flow<Int> = callbackF
}
}
val filter = IntentFilter(BluetoothDevice.ACTION_BOND_STATE_CHANGED)
context.registerReceiver(receiver, filter)
context.registerReceiverCompat(receiver, filter)
createBond()
awaitClose { context.unregisterReceiver(receiver) }

Wyświetl plik

@ -14,6 +14,7 @@ import androidx.lifecycle.coroutineScope
import com.geeksville.mesh.android.Logging
import com.geeksville.mesh.CoroutineDispatchers
import com.geeksville.mesh.android.hasBluetoothPermission
import com.geeksville.mesh.util.registerReceiverCompat
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
@ -46,7 +47,7 @@ class BluetoothRepository @Inject constructor(
processLifecycle.coroutineScope.launch(dispatchers.default) {
updateBluetoothState()
bluetoothBroadcastReceiverLazy.get().let { receiver ->
application.registerReceiver(receiver, receiver.intentFilter)
application.registerReceiverCompat(receiver, receiver.intentFilter)
}
}
}

Wyświetl plik

@ -8,6 +8,7 @@ import android.content.IntentFilter
import android.hardware.usb.UsbDevice
import android.hardware.usb.UsbManager
import com.geeksville.mesh.util.PendingIntentCompat
import com.geeksville.mesh.util.registerReceiverCompat
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow
@ -32,7 +33,7 @@ internal fun UsbManager.requestPermission(
PendingIntentCompat.FLAG_MUTABLE
)
val filter = IntentFilter(ACTION_USB_PERMISSION)
context.registerReceiver(receiver, filter)
context.registerReceiverCompat(receiver, filter)
requestPermission(device, permissionIntent)
awaitClose { context.unregisterReceiver(receiver) }

Wyświetl plik

@ -7,6 +7,7 @@ import androidx.lifecycle.Lifecycle
import androidx.lifecycle.coroutineScope
import com.geeksville.mesh.android.Logging
import com.geeksville.mesh.CoroutineDispatchers
import com.geeksville.mesh.util.registerReceiverCompat
import com.hoho.android.usbserial.driver.UsbSerialDriver
import com.hoho.android.usbserial.driver.UsbSerialProber
import kotlinx.coroutines.ExperimentalCoroutinesApi
@ -62,7 +63,7 @@ class UsbRepository @Inject constructor(
processLifecycle.coroutineScope.launch(dispatchers.default) {
refreshStateInternal()
usbBroadcastReceiverLazy.get().let { receiver ->
application.registerReceiver(receiver, receiver.intentFilter)
application.registerReceiverCompat(receiver, receiver.intentFilter)
}
}
}

Wyświetl plik

@ -5,11 +5,15 @@ import android.bluetooth.BluetoothDevice
import android.bluetooth.le.ScanResult
import android.companion.AssociationInfo
import android.companion.CompanionDeviceManager
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.os.Parcel
import android.os.Parcelable
import androidx.core.content.ContextCompat
import androidx.core.content.IntentCompat
import androidx.core.os.ParcelCompat
@ -40,6 +44,14 @@ fun PackageManager.getPackageInfoCompat(packageName: String, flags: Int = 0): Pa
@Suppress("DEPRECATION") getPackageInfo(packageName, flags)
}
fun Context.registerReceiverCompat(
receiver: BroadcastReceiver,
filter: IntentFilter,
flag: Int = ContextCompat.RECEIVER_NOT_EXPORTED,
) {
ContextCompat.registerReceiver(this, receiver, filter, flag)
}
fun Intent.getAssociationResult(): String? = when {
android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU ->
getParcelableExtraCompat<AssociationInfo>(CompanionDeviceManager.EXTRA_ASSOCIATION)