xref: /aosp_15_r20/platform_testing/libraries/flicker/utils/src/android/tools/traces/events/CujType.kt (revision dd0948b35e70be4c0246aabd6c72554a5eb8b22a)
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 android.tools.traces.events
18 
19 interface ICujType {
20     val id: Int
21     val name: String
22 }
23 
24 data class UnknownCuj(override val id: Int) : ICujType {
25     override val name: String = "UnknownCuj($id)"
26 }
27 
28 /**
29  * From com.android.internal.jank.InteractionJankMonitor.
30  *
31  * NOTE: Make sure order is the same as in {@see com.android.internal.jank.InteractionJankMonitor}.
32  */
33 // TODO: Can we re-use to enum generated from the proto stats/enums/jank/enums.proto?
34 enum class CujType(override val id: Int) : ICujType {
35     CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE(0),
36     CUJ_NOTIFICATION_SHADE_SCROLL_FLING(2),
37     CUJ_NOTIFICATION_SHADE_ROW_EXPAND(3),
38     CUJ_NOTIFICATION_SHADE_ROW_SWIPE(4),
39     CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE(5),
40     CUJ_NOTIFICATION_SHADE_QS_SCROLL_SWIPE(6),
41     CUJ_LAUNCHER_APP_LAUNCH_FROM_RECENTS(7),
42     CUJ_LAUNCHER_APP_LAUNCH_FROM_ICON(8),
43     CUJ_LAUNCHER_APP_CLOSE_TO_HOME(9),
44     CUJ_LAUNCHER_APP_CLOSE_TO_PIP(10),
45     CUJ_LAUNCHER_QUICK_SWITCH(11),
46     CUJ_NOTIFICATION_HEADS_UP_APPEAR(12),
47     CUJ_NOTIFICATION_HEADS_UP_DISAPPEAR(13),
48     CUJ_NOTIFICATION_ADD(14),
49     CUJ_NOTIFICATION_REMOVE(15),
50     CUJ_NOTIFICATION_APP_START(16),
51     CUJ_LOCKSCREEN_PASSWORD_APPEAR(17),
52     CUJ_LOCKSCREEN_PATTERN_APPEAR(18),
53     CUJ_LOCKSCREEN_PIN_APPEAR(19),
54     CUJ_LOCKSCREEN_PASSWORD_DISAPPEAR(20),
55     CUJ_LOCKSCREEN_PATTERN_DISAPPEAR(21),
56     CUJ_LOCKSCREEN_PIN_DISAPPEAR(22),
57     CUJ_LOCKSCREEN_TRANSITION_FROM_AOD(23),
58     CUJ_LOCKSCREEN_TRANSITION_TO_AOD(24),
59     CUJ_LAUNCHER_OPEN_ALL_APPS(25),
60     CUJ_LAUNCHER_ALL_APPS_SCROLL(26),
61     CUJ_LAUNCHER_APP_LAUNCH_FROM_WIDGET(27),
62     CUJ_SETTINGS_PAGE_SCROLL(28),
63     CUJ_LOCKSCREEN_UNLOCK_ANIMATION(29),
64     CUJ_SHADE_APP_LAUNCH_FROM_HISTORY_BUTTON(30),
65     CUJ_SHADE_APP_LAUNCH_FROM_MEDIA_PLAYER(31),
66     CUJ_SHADE_APP_LAUNCH_FROM_QS_TILE(32),
67     CUJ_SHADE_APP_LAUNCH_FROM_SETTINGS_BUTTON(33),
68     CUJ_STATUS_BAR_APP_LAUNCH_FROM_CALL_CHIP(34),
69     CUJ_PIP_TRANSITION(35),
70     CUJ_WALLPAPER_TRANSITION(36),
71     CUJ_USER_SWITCH(37),
72     CUJ_SPLASHSCREEN_AVD(38),
73     CUJ_SPLASHSCREEN_EXIT_ANIM(39),
74     CUJ_SCREEN_OFF(40),
75     CUJ_SCREEN_OFF_SHOW_AOD(41),
76     CUJ_ONE_HANDED_ENTER_TRANSITION(42),
77     CUJ_ONE_HANDED_EXIT_TRANSITION(43),
78     CUJ_UNFOLD_ANIM(44),
79     CUJ_SUW_LOADING_TO_SHOW_INFO_WITH_ACTIONS(45),
80     CUJ_SUW_SHOW_FUNCTION_SCREEN_WITH_ACTIONS(46),
81     CUJ_SUW_LOADING_TO_NEXT_FLOW(47),
82     CUJ_SUW_LOADING_SCREEN_FOR_STATUS(48),
83     CUJ_SPLIT_SCREEN_ENTER(49),
84     CUJ_SPLIT_SCREEN_EXIT(50),
85     CUJ_LOCKSCREEN_LAUNCH_CAMERA(51),
86     CUJ_SPLIT_SCREEN_RESIZE(52),
87     CUJ_SETTINGS_SLIDER(53),
88     CUJ_TAKE_SCREENSHOT(54),
89     CUJ_VOLUME_CONTROL(55),
90     CUJ_BIOMETRIC_PROMPT_TRANSITION(56),
91     CUJ_SETTINGS_TOGGLE(57),
92     CUJ_SHADE_DIALOG_OPEN(58),
93     CUJ_USER_DIALOG_OPEN(59),
94     CUJ_TASKBAR_EXPAND(60),
95     CUJ_TASKBAR_COLLAPSE(61),
96     CUJ_SHADE_CLEAR_ALL(62),
97     CUJ_LAUNCHER_UNLOCK_ENTRANCE_ANIMATION(63),
98     CUJ_LOCKSCREEN_OCCLUSION(64),
99     CUJ_RECENTS_SCROLLING(65),
100     CUJ_LAUNCHER_APP_SWIPE_TO_RECENTS(66),
101     CUJ_LAUNCHER_CLOSE_ALL_APPS_SWIPE(67),
102     CUJ_LAUNCHER_CLOSE_ALL_APPS_TO_HOME(68),
103     CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION(70),
104     CUJ_LAUNCHER_OPEN_SEARCH_RESULT(71),
105 
106     // 72 - 77 are reserved for b/281564325.
107 
108     CUJ_LAUNCHER_APP_CLOSE_TO_HOME_FALLBACK(78),
109     CUJ_SHADE_EXPAND_FROM_STATUS_BAR(79),
110     CUJ_IME_INSETS_SHOW_ANIMATION(80),
111     CUJ_IME_INSETS_HIDE_ANIMATION(81),
112     CUJ_SPLIT_SCREEN_DOUBLE_TAP_DIVIDER(82),
113     CUJ_LAUNCHER_UNFOLD_ANIM(83),
114     CUJ_PREDICTIVE_BACK_CROSS_ACTIVITY(84),
115     CUJ_PREDICTIVE_BACK_CROSS_TASK(85),
116     CUJ_PREDICTIVE_BACK_HOME(86),
117     // 87 is reserved - previously assigned to deprecated CUJ_LAUNCHER_SEARCH_QSB_OPEN.
118     CUJ_BACK_PANEL_ARROW(88),
119     CUJ_LAUNCHER_CLOSE_ALL_APPS_BACK(89),
120     CUJ_LAUNCHER_SEARCH_QSB_WEB_SEARCH(90),
121     CUJ_LAUNCHER_LAUNCH_APP_PAIR_FROM_WORKSPACE(91),
122     CUJ_LAUNCHER_LAUNCH_APP_PAIR_FROM_TASKBAR(92),
123     CUJ_LAUNCHER_SAVE_APP_PAIR(93),
124     CUJ_LAUNCHER_ALL_APPS_SEARCH_BACK(95),
125     CUJ_LAUNCHER_TASKBAR_ALL_APPS_CLOSE_BACK(96),
126     CUJ_LAUNCHER_TASKBAR_ALL_APPS_SEARCH_BACK(97),
127     CUJ_LAUNCHER_WIDGET_PICKER_CLOSE_BACK(98),
128     CUJ_LAUNCHER_WIDGET_PICKER_SEARCH_BACK(99),
129     CUJ_LAUNCHER_WIDGET_BOTTOM_SHEET_CLOSE_BACK(100),
130     CUJ_LAUNCHER_WIDGET_EDU_SHEET_CLOSE_BACK(101),
131     CUJ_LAUNCHER_PRIVATE_SPACE_LOCK(102),
132     CUJ_LAUNCHER_PRIVATE_SPACE_UNLOCK(103),
133     CUJ_DESKTOP_MODE_MAXIMIZE_WINDOW(104),
134     CUJ_FOLD_ANIM(105),
135     CUJ_DESKTOP_MODE_RESIZE_WINDOW(106),
136     CUJ_DESKTOP_MODE_ENTER_MODE(107),
137     CUJ_DESKTOP_MODE_EXIT_MODE(108),
138     CUJ_DESKTOP_MODE_MINIMIZE_WINDOW(109),
139     CUJ_DESKTOP_MODE_DRAG_WINDOW(110),
140     CUJ_DESKTOP_MODE_SNAP_RESIZE(118);
141 
142     companion object {
fromnull143         fun from(eventId: Int): ICujType =
144             values().firstOrNull { it.id == eventId } ?: UnknownCuj(eventId)
145     }
146 }
147