From ee87a406cd2d9c7e9a576eae5cab6573eb7a8e93 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 14 Aug 2023 12:29:02 -0700 Subject: [PATCH] Fix kotlin nullable errors in Settings Fix kotlin nullable errors that were exposed by setting the retention of android.annotation.NonNull and android.annotation.Nullable to class retention. Bug: 294110802 Test: builds (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:753c96133a1aa9e7b6dd63fa36816d171fec0f22) Merged-In: I6aa0516fa4f6443b6d4dff873baf3b08ff9189f0 Change-Id: I6aa0516fa4f6443b6d4dff873baf3b08ff9189f0 --- .../deviceinfo/simstatus/SimEidPreferenceController.kt | 4 ++-- .../app/FullScreenIntentPermissionPreferenceController.kt | 4 ++-- src/com/android/settings/spa/app/appinfo/AppButtons.kt | 2 +- src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt | 2 +- .../android/settings/spa/app/appinfo/ClonePageAppButtons.kt | 2 +- .../android/settings/spa/app/appinfo/PackageInfoPresenter.kt | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt b/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt index e9380f5e6a4..4d1b90bb827 100644 --- a/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt +++ b/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt @@ -95,10 +95,10 @@ class SimEidPreferenceController(context: Context, preferenceKey: String) : WindowManager.LayoutParams.FLAG_SECURE ) dialog.setCanceledOnTouchOutside(false) - val textView = dialog.findViewById(R.id.esim_id_value) + val textView = dialog.requireViewById(R.id.esim_id_value) textView.text = PhoneNumberUtil.expandByTts(eid) - val qrCodeView = dialog.findViewById(R.id.esim_id_qrcode) + val qrCodeView = dialog.requireViewById(R.id.esim_id_qrcode) qrCodeView.setImageBitmap(getEidQrCode(eid)) // After "Tap to show", eid is displayed on preference. diff --git a/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceController.kt b/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceController.kt index ec997498bfe..2cc26f680bd 100644 --- a/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceController.kt +++ b/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceController.kt @@ -81,7 +81,7 @@ class FullScreenIntentPermissionPreferenceController( private fun isPermissionRequested(): Boolean { val packageInfo = packageManager.getPackageInfo(packageName, GET_PERMISSIONS) - for (requestedPermission in packageInfo.requestedPermissions) { + for (requestedPermission in packageInfo.requestedPermissions.orEmpty()) { if (USE_FULL_SCREEN_INTENT.equals(requestedPermission)) { return true } @@ -115,4 +115,4 @@ class FullScreenIntentPermissionPreferenceController( const val KEY_FSI_PERMISSION = "fsi_permission" const val TAG = "FsiPermPrefController" } -} \ No newline at end of file +} diff --git a/src/com/android/settings/spa/app/appinfo/AppButtons.kt b/src/com/android/settings/spa/app/appinfo/AppButtons.kt index e43c673324b..b93c12ac24e 100644 --- a/src/com/android/settings/spa/app/appinfo/AppButtons.kt +++ b/src/com/android/settings/spa/app/appinfo/AppButtons.kt @@ -47,7 +47,7 @@ private class AppButtonsPresenter(private val packageInfoPresenter: PackageInfoP @Composable fun getActionButtons() = packageInfoPresenter.flow.collectAsStateWithLifecycle(initialValue = null).value?.let { - getActionButtons(it.applicationInfo) + getActionButtons(checkNotNull(it.applicationInfo)) } ?: emptyList() @Composable diff --git a/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt b/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt index d59a4f72c86..8cb48fb34bc 100644 --- a/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt +++ b/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt @@ -119,7 +119,7 @@ object AppInfoSettingsProvider : SettingsPageProvider { private fun AppInfoSettings(packageInfoPresenter: PackageInfoPresenter) { LifecycleEffect(onStart = { packageInfoPresenter.reloadPackageInfo() }) val packageInfo = packageInfoPresenter.flow.collectAsStateWithLifecycle().value ?: return - val app = packageInfo.applicationInfo + val app = checkNotNull(packageInfo.applicationInfo) RegularScaffold( title = stringResource(R.string.application_info_label), actions = { diff --git a/src/com/android/settings/spa/app/appinfo/ClonePageAppButtons.kt b/src/com/android/settings/spa/app/appinfo/ClonePageAppButtons.kt index 0fb437393b0..09697bff459 100644 --- a/src/com/android/settings/spa/app/appinfo/ClonePageAppButtons.kt +++ b/src/com/android/settings/spa/app/appinfo/ClonePageAppButtons.kt @@ -43,7 +43,7 @@ private class CloneAppButtonsPresenter(private val packageInfoPresenter: Package @Composable fun getActionButtons() = packageInfoPresenter.flow.collectAsStateWithLifecycle(initialValue = null).value?.let { - getActionButtons(it.applicationInfo) + getActionButtons(checkNotNull(it.applicationInfo)) } ?: emptyList() @Composable diff --git a/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt b/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt index 52c8ad7b160..961778f19d8 100644 --- a/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt +++ b/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt @@ -77,7 +77,7 @@ class PackageInfoPresenter( DisposableBroadcastReceiverAsUser(intentFilter, userHandle) { intent -> if (packageName == intent.data?.schemeSpecificPart) { val packageInfo = flow.value - if (packageInfo != null && packageInfo.applicationInfo.isSystemApp) { + if (packageInfo != null && packageInfo.applicationInfo?.isSystemApp == true) { // System app still exists after uninstalling the updates, refresh the page. reloadPackageInfo() } else {