• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.common.traces.events
18 
19 import kotlin.js.JsExport
20 
21 /**
22  * From com.android.internal.jank.InteractionJankMonitor.
23  *
24  * NOTE: Make sure order is the same as in {@see com.android.internal.jank.InteractionJankMonitor}.
25  */
26 @JsExport
27 enum class CujType {
28     CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE,
29     CUJ_NOTIFICATION_SHADE_EXPAND_COLLAPSE_LOCK,
30     CUJ_NOTIFICATION_SHADE_SCROLL_FLING,
31     CUJ_NOTIFICATION_SHADE_ROW_EXPAND,
32     CUJ_NOTIFICATION_SHADE_ROW_SWIPE,
33     CUJ_NOTIFICATION_SHADE_QS_EXPAND_COLLAPSE,
34     CUJ_NOTIFICATION_SHADE_QS_SCROLL_SWIPE,
35     CUJ_LAUNCHER_APP_LAUNCH_FROM_RECENTS,
36     CUJ_LAUNCHER_APP_LAUNCH_FROM_ICON,
37     CUJ_LAUNCHER_APP_CLOSE_TO_HOME,
38     CUJ_LAUNCHER_APP_CLOSE_TO_PIP,
39     CUJ_LAUNCHER_QUICK_SWITCH,
40     CUJ_NOTIFICATION_HEADS_UP_APPEAR,
41     CUJ_NOTIFICATION_HEADS_UP_DISAPPEAR,
42     CUJ_NOTIFICATION_ADD,
43     CUJ_NOTIFICATION_REMOVE,
44     CUJ_NOTIFICATION_APP_START,
45     CUJ_LOCKSCREEN_PASSWORD_APPEAR,
46     CUJ_LOCKSCREEN_PATTERN_APPEAR,
47     CUJ_LOCKSCREEN_PIN_APPEAR,
48     CUJ_LOCKSCREEN_PASSWORD_DISAPPEAR,
49     CUJ_LOCKSCREEN_PATTERN_DISAPPEAR,
50     CUJ_LOCKSCREEN_PIN_DISAPPEAR,
51     CUJ_LOCKSCREEN_TRANSITION_FROM_AOD,
52     CUJ_LOCKSCREEN_TRANSITION_TO_AOD,
53     CUJ_LAUNCHER_OPEN_ALL_APPS,
54     CUJ_LAUNCHER_ALL_APPS_SCROLL,
55     CUJ_LAUNCHER_APP_LAUNCH_FROM_WIDGET,
56     CUJ_SETTINGS_PAGE_SCROLL,
57     CUJ_LOCKSCREEN_UNLOCK_ANIMATION,
58     CUJ_SHADE_APP_LAUNCH_FROM_HISTORY_BUTTON,
59     CUJ_SHADE_APP_LAUNCH_FROM_MEDIA_PLAYER,
60     CUJ_SHADE_APP_LAUNCH_FROM_QS_TILE,
61     CUJ_SHADE_APP_LAUNCH_FROM_SETTINGS_BUTTON,
62     CUJ_STATUS_BAR_APP_LAUNCH_FROM_CALL_CHIP,
63     CUJ_PIP_TRANSITION,
64     CUJ_WALLPAPER_TRANSITION,
65     CUJ_USER_SWITCH,
66     CUJ_SPLASHSCREEN_AVD,
67     CUJ_SPLASHSCREEN_EXIT_ANIM,
68     CUJ_SCREEN_OFF,
69     CUJ_SCREEN_OFF_SHOW_AOD,
70     CUJ_ONE_HANDED_ENTER_TRANSITION,
71     CUJ_ONE_HANDED_EXIT_TRANSITION,
72     CUJ_UNFOLD_ANIM,
73     CUJ_SUW_LOADING_TO_SHOW_INFO_WITH_ACTIONS,
74     CUJ_SUW_SHOW_FUNCTION_SCREEN_WITH_ACTIONS,
75     CUJ_SUW_LOADING_TO_NEXT_FLOW,
76     CUJ_SUW_LOADING_SCREEN_FOR_STATUS,
77     CUJ_SPLIT_SCREEN_ENTER, // Setup to enter splitscreen in launcher layer
78     CUJ_SPLIT_SCREEN_EXIT,
79     CUJ_LOCKSCREEN_LAUNCH_CAMERA,
80     CUJ_SPLIT_SCREEN_RESIZE,
81     CUJ_SETTINGS_SLIDER,
82     CUJ_TAKE_SCREENSHOT,
83     CUJ_VOLUME_CONTROL,
84     CUJ_BIOMETRIC_PROMPT_TRANSITION,
85     CUJ_SETTINGS_TOGGLE,
86     CUJ_SHADE_DIALOG_OPEN,
87     CUJ_USER_DIALOG_OPEN,
88     CUJ_TASKBAR_EXPAND,
89     CUJ_TASKBAR_COLLAPSE,
90     CUJ_SHADE_CLEAR_ALL,
91     CUJ_LAUNCHER_UNLOCK_ENTRANCE_ANIMATION,
92     CUJ_LOCKSCREEN_OCCLUSION,
93     CUJ_RECENTS_SCROLLING,
94     CUJ_LAUNCHER_APP_SWIPE_TO_RECENTS,
95     CUJ_LAUNCHER_CLOSE_ALL_APPS_SWIPE,
96     CUJ_LAUNCHER_CLOSE_ALL_APPS_TO_HOME,
97     CUJ_IME_INSETS_ANIMATION,
98 
99     // KEEP AS LAST TYPE
100     // used to handle new types that haven't been added here yet but might be dumped by the platform
101     UNKNOWN;
102 
103     companion object {
fromnull104         fun from(eventId: Int): CujType {
105             // -1 to account for unknown event type
106             if (eventId >= values().size - 1) {
107                 return UNKNOWN
108             }
109             return values()[eventId]
110         }
111     }
112 }
113