1 /*
2  *  Copyright (C) 2022 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 
18 package com.android.systemui.keyguard.domain.model
19 
20 import com.android.systemui.common.shared.model.Icon
21 import com.android.systemui.keyguard.shared.quickaffordance.ActivationState
22 
23 /**
24  * Models a "quick affordance" in the keyguard bottom area (for example, a button on the
25  * lock-screen).
26  */
27 sealed class KeyguardQuickAffordanceModel {
28     /** No affordance should show up. */
29     object Hidden : KeyguardQuickAffordanceModel()
30 
31     /** A affordance is visible. */
32     data class Visible(
33         /** Identifier for the affordance this is modeling. */
34         val configKey: String,
35         /** An icon for the affordance. */
36         val icon: Icon,
37         /** The activation state of the affordance. */
38         val activationState: ActivationState,
39     ) : KeyguardQuickAffordanceModel()
40 }
41