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