Fix some nullability errors when calling Android APIs.
Bug: 344882050
Test: N/A
Change-Id: I14e6eec68d199267cb63e07fed928016c3d47c83
diff --git a/health/connect/connect-client/src/main/java/androidx/health/connect/client/HealthConnectClient.kt b/health/connect/connect-client/src/main/java/androidx/health/connect/client/HealthConnectClient.kt
index e4a1e12..a5e0b5c 100644
--- a/health/connect/connect-client/src/main/java/androidx/health/connect/client/HealthConnectClient.kt
+++ b/health/connect/connect-client/src/main/java/androidx/health/connect/client/HealthConnectClient.kt
@@ -480,7 +480,7 @@
} catch (e: PackageManager.NameNotFoundException) {
return false
}
- return packageInfo.applicationInfo.enabled &&
+ return (packageInfo.applicationInfo?.enabled == true) &&
(packageName != DEFAULT_PROVIDER_PACKAGE_NAME ||
PackageInfoCompat.getLongVersionCode(packageInfo) >= versionCode) &&
hasBindableService(packageManager, packageName)
diff --git a/health/connect/connect-client/src/main/java/androidx/health/connect/client/impl/HealthConnectClientUpsideDownImpl.kt b/health/connect/connect-client/src/main/java/androidx/health/connect/client/impl/HealthConnectClientUpsideDownImpl.kt
index 63c020f..7c0c569 100644
--- a/health/connect/connect-client/src/main/java/androidx/health/connect/client/impl/HealthConnectClientUpsideDownImpl.kt
+++ b/health/connect/connect-client/src/main/java/androidx/health/connect/client/impl/HealthConnectClientUpsideDownImpl.kt
@@ -337,12 +337,14 @@
.getPackageInfo(context.packageName, PackageInfoFlags.of(GET_PERMISSIONS.toLong()))
.let {
return buildSet {
- for (i in it.requestedPermissions.indices) {
+ val requestedPermissions = it.requestedPermissions ?: emptyArray()
+ for (i in requestedPermissions.indices) {
if (
- it.requestedPermissions[i].startsWith(PERMISSION_PREFIX) &&
- it.requestedPermissionsFlags[i] and REQUESTED_PERMISSION_GRANTED > 0
+ requestedPermissions[i].startsWith(PERMISSION_PREFIX) &&
+ it.requestedPermissionsFlags!![i] and REQUESTED_PERMISSION_GRANTED >
+ 0
) {
- add(it.requestedPermissions[i])
+ add(requestedPermissions[i])
}
}
}
@@ -350,12 +352,14 @@
}
override suspend fun revokeAllPermissions() {
- val allHealthPermissions =
+ val requestedPermissions =
context.packageManager
.getPackageInfo(context.packageName, PackageInfoFlags.of(GET_PERMISSIONS.toLong()))
- .requestedPermissions
- .filter { it.startsWith(PERMISSION_PREFIX) }
- revokePermissionsFunction(allHealthPermissions)
+ .requestedPermissions ?: emptyArray()
+ val allHealthPermissions = requestedPermissions.filter { it.startsWith(PERMISSION_PREFIX) }
+ if (allHealthPermissions.isNotEmpty()) {
+ revokePermissionsFunction(allHealthPermissions)
+ }
}
private suspend fun <T> wrapPlatformException(function: suspend () -> T): T {