Files
app_Settings/src/com/android/settings/security/screenlock/PinPrivacyPreferenceController.kt
Andreas Miko 887c955a01 Change nullability of inheriting function of PinPrivacyPreferenceController
Test: None
Bug: b/292569343
(cherry picked from commit a7d7eb9a16)
(cherry picked from commit 4ca80e6013)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:05514d0f4d5b6603da6a79881becb0b768e586a6)
Merged-In: Idbfa244921957be2bba3cd02e5e873e81e8807d8
Change-Id: Idbfa244921957be2bba3cd02e5e873e81e8807d8
2023-08-18 16:22:17 +00:00

60 lines
2.1 KiB
Kotlin

/*
* Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.security.screenlock
import android.content.Context
import android.provider.Settings
import androidx.preference.Preference
import androidx.preference.TwoStatePreference
import com.android.internal.widget.LockPatternUtils
import com.android.internal.widget.LockPatternUtils.*
import com.android.settings.core.PreferenceControllerMixin
import com.android.settingslib.core.AbstractPreferenceController
class PinPrivacyPreferenceController(
context: Context,
private val userId: Int,
private val lockPatternUtils: LockPatternUtils
) : AbstractPreferenceController(context), PreferenceControllerMixin,
Preference.OnPreferenceChangeListener {
companion object {
private const val PREF_KEY = "enhancedPinPrivacy"
}
override fun isAvailable(): Boolean {
val credentialType = lockPatternUtils.getCredentialTypeForUser(userId)
return credentialType == CREDENTIAL_TYPE_PIN
}
override fun getPreferenceKey(): String {
return PREF_KEY
}
override fun onPreferenceChange(preference: Preference, value: Any): Boolean {
lockPatternUtils.setPinEnhancedPrivacyEnabled((value as Boolean), userId)
return true
}
override fun updateState(preference: Preference) {
(preference as TwoStatePreference).isChecked = getCurrentPreferenceState()
}
private fun getCurrentPreferenceState(): Boolean {
return lockPatternUtils.isPinEnhancedPrivacyEnabled(userId)
}
}