diff --git a/res/xml/app_lock_package_config_settings.xml b/res/xml/app_lock_package_config_settings.xml index 81f3491f7d6..42d2368a3b7 100644 --- a/res/xml/app_lock_package_config_settings.xml +++ b/res/xml/app_lock_package_config_settings.xml @@ -34,8 +34,7 @@ + android:summary="@string/hide_from_launcher_summary" /> { return withContext(Dispatchers.IO) { - appLockManager.packageData.map { it.packageName }.toSet() + appLockManager.packageData.filter { + it.shouldProtectApp == true + }.map { + it.packageName + }.toSet() } } @@ -116,11 +120,7 @@ class AppLockPackageListFragment : DashboardFragment() { isChecked = isProtected setOnPreferenceChangeListener { _, newValue -> lifecycleScope.launch(Dispatchers.IO) { - if (newValue as Boolean) { - appLockManager.addPackage(packageInfo.packageName) - } else { - appLockManager.removePackage(packageInfo.packageName) - } + appLockManager.setShouldProtectApp(packageInfo.packageName, newValue as Boolean) } return@setOnPreferenceChangeListener true } diff --git a/src/com/android/settings/security/applock/AppLockPackageProtectionPC.kt b/src/com/android/settings/security/applock/AppLockPackageProtectionPC.kt index 34fd2cf5b4a..22548443330 100644 --- a/src/com/android/settings/security/applock/AppLockPackageProtectionPC.kt +++ b/src/com/android/settings/security/applock/AppLockPackageProtectionPC.kt @@ -43,9 +43,9 @@ class AppLockPackageProtectionPC( init { coroutineScope.launch { isProtected = withContext(Dispatchers.Default) { - appLockManager.packageData.any { + appLockManager.packageData.find { it.packageName == packageName - } + }?.shouldProtectApp == true } preference?.let { updateState(it) @@ -61,11 +61,7 @@ class AppLockPackageProtectionPC( if (isProtected == checked) return false isProtected = checked coroutineScope.launch(Dispatchers.Default) { - if (isProtected) { - appLockManager.addPackage(packageName) - } else { - appLockManager.removePackage(packageName) - } + appLockManager.setShouldProtectApp(packageName, isProtected) } return true } diff --git a/src/com/android/settings/security/applock/AppLockSettingsPreferenceController.kt b/src/com/android/settings/security/applock/AppLockSettingsPreferenceController.kt index 9e3d9240480..80113f3e795 100644 --- a/src/com/android/settings/security/applock/AppLockSettingsPreferenceController.kt +++ b/src/com/android/settings/security/applock/AppLockSettingsPreferenceController.kt @@ -98,7 +98,9 @@ class AppLockSettingsPreferenceController( preference.apply { if (getAvailabilityStatus() == AVAILABLE) { setEnabled(true) - summary = getSummaryForListSize(appLockManager.packageData.size) + summary = getSummaryForListSize(appLockManager.packageData.filter { + it.shouldProtectApp == true + }.size) } else { setEnabled(false) summary = mContext.getString(R.string.disabled_because_no_backup_security)