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.car.customization.tool.domain
18 
19 /**
20  * The base of all of the actions available in the tool.
21  *
22  * As a naming convention, all actions should include a verb in the name and end with
23  * the "Action" suffix.
24  */
25 internal interface Action
26 
27 /**
28  * Toggles the UI state of the tool from closed to open and vice-versa.
29  *
30  * When the tool is "closed" only the entry point button is visible to the user.
31  */
32 internal object ToggleUiAction : Action
33 
34 /**
35  * The action that is triggered when a refresh of the State is necessary.
36  *
37  * Since there are no reactive listeners on system properties available (like RRO state)
38  * this actions polls an update from the system.
39  */
40 internal object ReloadStateAction : Action
41