From 84f8961e67d073bea2a1c146a219ff56fbfcf4fd 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 Change-Id: I6aa0516fa4f6443b6d4dff873baf3b08ff9189f0 Merged-In: I6aa0516fa4f6443b6d4dff873baf3b08ff9189f0 --- src/com/android/settings/RegulatoryInfoDisplayActivity.kt | 2 +- .../ui/fragment/FingerprintSettingsRenameDialog.kt | 4 ++-- .../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 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/com/android/settings/RegulatoryInfoDisplayActivity.kt b/src/com/android/settings/RegulatoryInfoDisplayActivity.kt index ffacb9c192a..fdf66c36b2b 100644 --- a/src/com/android/settings/RegulatoryInfoDisplayActivity.kt +++ b/src/com/android/settings/RegulatoryInfoDisplayActivity.kt @@ -46,7 +46,7 @@ class RegulatoryInfoDisplayActivity : Activity() { getRegulatoryInfo()?.let { val view = layoutInflater.inflate(R.layout.regulatory_info, null) - val image = view.findViewById(R.id.regulatoryInfo) + val image = view.requireViewById(R.id.regulatoryInfo) image.setImageDrawable(it) builder.setView(view) builder.show() diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsRenameDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsRenameDialog.kt index a08b3db5b75..9542ed83371 100644 --- a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsRenameDialog.kt +++ b/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsRenameDialog.kt @@ -106,8 +106,8 @@ class FingerprintSettingsRenameDialog : InstrumentedDialogFragment() { val dialog = FingerprintSettingsRenameDialog() val onClick = DialogInterface.OnClickListener { _, _ -> - val dialogTextField = - dialog.requireDialog().findViewById(R.id.fingerprint_rename_field) as ImeAwareEditText + val dialogTextField = dialog.requireDialog() + .requireViewById(R.id.fingerprint_rename_field) as ImeAwareEditText val newName = dialogTextField.text.toString() if (!TextUtils.equals(newName, fp.name)) { Log.d(TAG, "rename $fp.name to $newName for $dialog") 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 2e9d94514db..3200b81934b 100644 --- a/src/com/android/settings/spa/app/appinfo/AppButtons.kt +++ b/src/com/android/settings/spa/app/appinfo/AppButtons.kt @@ -45,7 +45,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 c38d6cf498f..a9d16ae26a5 100644 --- a/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt +++ b/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt @@ -118,7 +118,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 0603f2ac93d..ddc7e178bf7 100644 --- a/src/com/android/settings/spa/app/appinfo/ClonePageAppButtons.kt +++ b/src/com/android/settings/spa/app/appinfo/ClonePageAppButtons.kt @@ -41,7 +41,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 {