1/* 2 * Copyright 2024 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 17import {TraceEntry} from 'trace/trace'; 18import {TraceType} from 'trace/trace_type'; 19import {HierarchyTreeNode} from 'trace/tree_node/hierarchy_tree_node'; 20import {PropertyTreeNode} from 'trace/tree_node/property_tree_node'; 21import {DisplayIdentifier} from 'viewers/common/display_identifier'; 22import {RectShowState} from 'viewers/common/rect_show_state'; 23import {TextFilter} from 'viewers/common/text_filter'; 24import { 25 LogEntry, 26 LogField, 27 LogHeader, 28 UiDataLog, 29} from 'viewers/common/ui_data_log'; 30import {UiPropertyTreeNode} from 'viewers/common/ui_property_tree_node'; 31import {UserOptions} from 'viewers/common/user_options'; 32import {UiRect} from 'viewers/components/rects/ui_rect'; 33 34export class UiData implements UiDataLog { 35 constructor( 36 public headers: LogHeader[], 37 public entries: LogEntry[], 38 public selectedIndex: undefined | number, 39 public scrollToIndex: undefined | number, 40 public currentIndex: undefined | number, 41 public propertiesTree: undefined | UiPropertyTreeNode, 42 ) {} 43 44 highlightedProperty: string = ''; 45 dispatchPropertiesTree: UiPropertyTreeNode | undefined; 46 47 rectsToDraw: UiRect[] | undefined; 48 rectIdToShowState: Map<string, RectShowState> | undefined; 49 highlightedRect = ''; 50 rectsUserOptions: UserOptions | undefined; 51 displays: DisplayIdentifier[] = []; 52 isDarkMode = false; 53 propertiesFilter = new TextFilter(); 54 dispatchPropertiesFilter = new TextFilter(); 55 56 readonly dependencies: TraceType[] = [TraceType.INPUT_EVENT_MERGED]; 57 58 static createEmpty(): UiData { 59 return new UiData([], [], undefined, undefined, undefined, undefined); 60 } 61} 62 63export class InputEntry implements LogEntry { 64 constructor( 65 public traceEntry: TraceEntry<PropertyTreeNode>, 66 public fields: LogField[], 67 public propertiesTree: PropertyTreeNode | undefined, 68 public dispatchPropertiesTree: PropertyTreeNode | undefined, 69 public surfaceFlingerEntry: TraceEntry<HierarchyTreeNode> | undefined, 70 ) {} 71} 72