1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel
18 
19 /**
20  * A class to represent a high level step for FingerprintSettings. This is typically to perform an
21  * action like launching an activity.
22  */
23 sealed class NextStepViewModel
24 
25 data class EnrollFirstFingerprint(
26   val userId: Int,
27   val gateKeeperPasswordHandle: Long?,
28   val challenge: Long?,
29   val challengeToken: ByteArray?,
30 ) : NextStepViewModel()
31 
32 data class EnrollAdditionalFingerprint(val userId: Int, val challengeToken: ByteArray?) :
33   NextStepViewModel()
34 
35 data class FinishSettings(val reason: String) : NextStepViewModel()
36 
37 data class FinishSettingsWithResult(val result: Int, val reason: String) : NextStepViewModel()
38 
39 object ShowSettings : NextStepViewModel()
40 
41 object LaunchedActivity : NextStepViewModel()
42 
43 data class LaunchConfirmDeviceCredential(val userId: Int) : NextStepViewModel()
44