refactor: use `PendingIntentCompat` for `UsbManager`

pull/1141/head^2
andrekir 2024-07-25 18:06:44 -03:00
rodzic 4f5c6a5fd1
commit 921ef709d6
2 zmienionych plików z 10 dodań i 14 usunięć

Wyświetl plik

@ -1,13 +1,12 @@
package com.geeksville.mesh.repository.usb
import android.app.PendingIntent
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.hardware.usb.UsbDevice
import android.hardware.usb.UsbManager
import com.geeksville.mesh.util.PendingIntentCompat
import androidx.core.app.PendingIntentCompat
import com.geeksville.mesh.util.registerReceiverCompat
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
@ -21,16 +20,19 @@ internal fun UsbManager.requestPermission(
): Flow<Boolean> = callbackFlow {
val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val granted = intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)
trySend(granted)
close()
if (ACTION_USB_PERMISSION == intent.action) {
val granted = intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)
trySend(granted)
close()
}
}
}
val permissionIntent = PendingIntent.getBroadcast(
val permissionIntent = PendingIntentCompat.getBroadcast(
context,
0,
Intent(ACTION_USB_PERMISSION),
PendingIntentCompat.FLAG_MUTABLE
Intent(ACTION_USB_PERMISSION).apply { `package` = context.packageName },
0,
true
)
val filter = IntentFilter(ACTION_USB_PERMISSION)
context.registerReceiverCompat(receiver, filter)

Wyświetl plik

@ -18,12 +18,6 @@ import androidx.core.content.IntentCompat
import androidx.core.os.ParcelCompat
object PendingIntentCompat {
val FLAG_MUTABLE = if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
PendingIntent.FLAG_MUTABLE
} else {
0
}
val FLAG_IMMUTABLE = if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
PendingIntent.FLAG_IMMUTABLE
} else {