From 506f4e6dcf403e70916bccea94832e6c116cbe7a Mon Sep 17 00:00:00 2001 From: Dhina17 <dhinalogu@gmail.com> Date: Sat, 23 Mar 2024 05:53:46 +0000 Subject: [PATCH] applock: Handle null-safety errors for 14 QPR2 Change-Id: I668712bc9e0fe9faf068f756a15483a118fabe44 --- .../applock/AppLockBiometricPreferenceController.kt | 3 ++- .../security/applock/AppLockCredentialActivity.kt | 3 ++- .../security/applock/AppLockPackageConfigFragment.kt | 6 +++--- .../security/applock/AppLockPackageListFragment.kt | 8 +++++--- .../applock/AppLockSettingsPreferenceController.kt | 3 ++- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/security/applock/AppLockBiometricPreferenceController.kt b/src/com/android/settings/security/applock/AppLockBiometricPreferenceController.kt index 6202213..b347a56 100644 --- a/src/com/android/settings/security/applock/AppLockBiometricPreferenceController.kt +++ b/src/com/android/settings/security/applock/AppLockBiometricPreferenceController.kt @@ -1,5 +1,6 @@ /* * Copyright (C) 2022 FlamingoOS Project + * Copyright (C) 2024 The LibreMobileOS Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -55,7 +56,7 @@ class AppLockBiometricPreferenceController( } override fun getAvailabilityStatus(): Int { - val result = biometricManager.canAuthenticate(BIOMETRIC_STRONG) + val result = biometricManager?.canAuthenticate(BIOMETRIC_STRONG) return if (result == BiometricManager.BIOMETRIC_SUCCESS) AVAILABLE else CONDITIONALLY_UNAVAILABLE } diff --git a/src/com/android/settings/security/applock/AppLockCredentialActivity.kt b/src/com/android/settings/security/applock/AppLockCredentialActivity.kt index 5cdf620..46f1a71 100644 --- a/src/com/android/settings/security/applock/AppLockCredentialActivity.kt +++ b/src/com/android/settings/security/applock/AppLockCredentialActivity.kt @@ -1,6 +1,7 @@ /* * Copyright (C) 2014 The Android Open Source Project * Copyright (C) 2022 FlamingoOS Project + * Copyright (C) 2024 The LibreMobileOS Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -75,7 +76,7 @@ class AppLockCredentialActivity : FragmentActivity() { override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { waitingForBiometricCallback = false - appLockManager.unlockPackage(packageName) + packageName?.let { appLockManager.unlockPackage(it) } ConfirmDeviceCredentialUtils.checkForPendingIntent(this@AppLockCredentialActivity) setResult(Activity.RESULT_OK) finish() diff --git a/src/com/android/settings/security/applock/AppLockPackageConfigFragment.kt b/src/com/android/settings/security/applock/AppLockPackageConfigFragment.kt index c2b139a..ea8509d 100644 --- a/src/com/android/settings/security/applock/AppLockPackageConfigFragment.kt +++ b/src/com/android/settings/security/applock/AppLockPackageConfigFragment.kt @@ -1,5 +1,6 @@ /* * Copyright (C) 2022 FlamingoOS Project + * Copyright (C) 2024 The LibreMobileOS Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -52,8 +53,7 @@ class AppLockPackageConfigFragment : DashboardFragment() { requireActivity(), this, header?.findViewById(R.id.entity_header) - ).setRecyclerView(listView, settingsLifecycle) - .setPackageName(packageInfo.packageName) + ).setPackageName(packageInfo.packageName) .setButtonActions( EntityHeaderController.ActionType.ACTION_NONE, EntityHeaderController.ActionType.ACTION_NONE @@ -61,7 +61,7 @@ class AppLockPackageConfigFragment : DashboardFragment() { .bindHeaderButtons() .setLabel(appEntry) .setIcon(appEntry) - .done(requireActivity(), false /* rebindActions */) + .done(false /* rebindActions */) } override protected fun createPreferenceControllers( diff --git a/src/com/android/settings/security/applock/AppLockPackageListFragment.kt b/src/com/android/settings/security/applock/AppLockPackageListFragment.kt index 080038f..3ae60be 100644 --- a/src/com/android/settings/security/applock/AppLockPackageListFragment.kt +++ b/src/com/android/settings/security/applock/AppLockPackageListFragment.kt @@ -1,5 +1,6 @@ /* * Copyright (C) 2022 FlamingoOS Project + * Copyright (C) 2024 The LibreMobileOS Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -66,7 +67,8 @@ class AppLockPackageListFragment : DashboardFragment() { pm.getInstalledPackages( PackageInfoFlags.of(PackageManager.MATCH_ALL.toLong()) ).filter { - !it.applicationInfo.isSystemApp() || whiteListedPackages.contains(it.packageName) + !(it.applicationInfo?.isSystemApp() == true) + || whiteListedPackages.contains(it.packageName) }.sortedWith { first, second -> getLabel(first).compareTo(getLabel(second)) } @@ -100,14 +102,14 @@ class AppLockPackageListFragment : DashboardFragment() { } private fun getLabel(packageInfo: PackageInfo) = - packageInfo.applicationInfo.loadLabel(pm).toString() + packageInfo.applicationInfo?.loadLabel(pm).toString() private fun createPreference(packageInfo: PackageInfo, isProtected: Boolean): Preference { val label = getLabel(packageInfo) return PrimarySwitchPreference(requireContext()).apply { key = packageInfo.packageName title = label - icon = packageInfo.applicationInfo.loadIcon(pm) + icon = packageInfo.applicationInfo?.loadIcon(pm) setIconSize(ICON_SIZE_SMALL) isChecked = isProtected setOnPreferenceChangeListener { _, newValue -> diff --git a/src/com/android/settings/security/applock/AppLockSettingsPreferenceController.kt b/src/com/android/settings/security/applock/AppLockSettingsPreferenceController.kt index 0e611b1..1daa698 100644 --- a/src/com/android/settings/security/applock/AppLockSettingsPreferenceController.kt +++ b/src/com/android/settings/security/applock/AppLockSettingsPreferenceController.kt @@ -1,5 +1,6 @@ /* * Copyright (C) 2022 FlamingoOS Project + * Copyright (C) 2024 The LibreMobileOS Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -119,7 +120,7 @@ class AppLockSettingsPreferenceController( val title = mContext.getString(R.string.app_lock_authentication_dialog_title) val intent = Intent().apply { setClassName(SETTINGS_PACKAGE_NAME, - ConfirmDeviceCredentialActivity::class.qualifiedName) + ConfirmDeviceCredentialActivity::class.qualifiedName!!) putExtra(KeyguardManager.EXTRA_TITLE, title) } securityPromptLauncher.launch(intent) -- GitLab