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