Add PIN recovery entry in supervision PIN management page.
Bug: b/390500290 Change-Id: I942fad663d0fb731215707d7c0b18359242aecb0 Test: atest SupervisionPinRecoveryPreferenceTest Flag:android.app.supervision.flags.enable_supervision_pin_recovery_screen
This commit is contained in:
@@ -14112,4 +14112,6 @@
|
||||
<string name="supervision_pin_management_preference_summary_add">Add a PIN recovery method</string>
|
||||
<!-- Title for supervision change PIN setting entry [CHAR LIMIT=60] -->
|
||||
<string name="supervision_change_pin_preference_title">Change PIN</string>
|
||||
<!-- Title for supervision forgot PIN setting entry [CHAR LIMIT=60] -->
|
||||
<string name="supervision_add_forgot_pin_preference_title">Forgot PIN</string>
|
||||
</resources>
|
||||
|
@@ -42,6 +42,7 @@ class SupervisionPinManagementScreen : PreferenceScreenCreator {
|
||||
|
||||
override fun getPreferenceHierarchy(context: Context) =
|
||||
preferenceHierarchy(context, this) {
|
||||
+SupervisionPinRecoveryPreference()
|
||||
// TODO(b/391992481) implement the screen.
|
||||
+SupervisionChangePinPreference()
|
||||
}
|
||||
|
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (C) 2025 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.supervision
|
||||
|
||||
import android.app.supervision.flags.Flags
|
||||
import android.content.Context
|
||||
import com.android.settings.R
|
||||
import androidx.preference.Preference
|
||||
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
|
||||
import com.android.settingslib.metadata.PreferenceMetadata
|
||||
|
||||
class SupervisionPinRecoveryPreference : PreferenceMetadata,
|
||||
PreferenceAvailabilityProvider, Preference.OnPreferenceClickListener {
|
||||
override val key: String
|
||||
get() = SupervisionPinRecoveryPreference.KEY
|
||||
|
||||
override val title: Int
|
||||
get() = R.string.supervision_add_forgot_pin_preference_title
|
||||
|
||||
override fun isAvailable(context: Context) = Flags.enableSupervisionPinRecoveryScreen()
|
||||
|
||||
// TODO(b/393657542): trigger re-authentication flow to confirm user credential before PIN
|
||||
// recovery.
|
||||
override fun onPreferenceClick(preference: Preference): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val KEY = "supervision_pin_recovery"
|
||||
}
|
||||
}
|
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2025 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.supervision
|
||||
|
||||
import android.content.Context
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class SupervisionPinRecoveryPreferenceTest {
|
||||
private val context: Context = ApplicationProvider.getApplicationContext()
|
||||
|
||||
private val supervisionPinRecoveryPreference = SupervisionPinRecoveryPreference()
|
||||
|
||||
@Test
|
||||
fun getTitle() {
|
||||
assertThat(supervisionPinRecoveryPreference.getPreferenceTitle(context))
|
||||
.isEqualTo("Forgot PIN")
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user