refactor: remove Companion Device Pairing

https://developer.android.com/develop/connectivity/bluetooth/companion-device-pairing
This commit is contained in:
andrekir 2024-08-03 07:53:59 -03:00
parent ca537becd1
commit bc05280988
6 changed files with 42 additions and 153 deletions

View file

@ -1,11 +1,9 @@
package com.geeksville.mesh.android
import android.Manifest
import android.annotation.SuppressLint
import android.app.Activity
import android.app.NotificationManager
import android.bluetooth.BluetoothManager
import android.companion.CompanionDeviceManager
import android.content.Context
import android.content.pm.PackageManager
import android.location.LocationManager
@ -21,22 +19,10 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
val Context.bluetoothManager: BluetoothManager?
get() = getSystemService(Context.BLUETOOTH_SERVICE).takeIf { hasBluetoothPermission() } as? BluetoothManager?
val Context.companionDeviceManager: CompanionDeviceManager?
@SuppressLint("NewApi")
get() = getSystemService(Context.COMPANION_DEVICE_SERVICE).takeIf { hasCompanionDeviceApi() } as? CompanionDeviceManager?
val Context.notificationManager: NotificationManager get() = requireNotNull(getSystemService(Context.NOTIFICATION_SERVICE) as? NotificationManager?)
val Context.locationManager: LocationManager get() = requireNotNull(getSystemService(Context.LOCATION_SERVICE) as? LocationManager?)
/**
* @return true if CompanionDeviceManager API is present
*/
fun Context.hasCompanionDeviceApi(): Boolean =
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
packageManager.hasSystemFeature(PackageManager.FEATURE_COMPANION_DEVICE_SETUP)
else false
/**
* @return true if the device has a GPS receiver
*/
@ -126,7 +112,7 @@ fun Context.getBluetoothPermissions(): Array<String> {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
perms.add(Manifest.permission.BLUETOOTH_SCAN)
perms.add(Manifest.permission.BLUETOOTH_CONNECT)
} else if (!hasCompanionDeviceApi()) {
} else {
perms.add(Manifest.permission.ACCESS_FINE_LOCATION)
}
return getMissingPermissions(perms)