Winscope: Use int-based enums to differentiate log field types
Using a string-based enum that doubles as the display name of the field
type means we cannot have two different types that have the same display
name with different characteristics.
Bug: 332714237
Bug: 210460522
Test: presubmit
Flag: NONE dev tool only
Change-Id: Icac1a459da6ef69734fbd8ce0d29970f64ce297d
diff --git a/tools/winscope/src/viewers/common/abstract_log_viewer_presenter.ts b/tools/winscope/src/viewers/common/abstract_log_viewer_presenter.ts
index 92f1d64..80449ce 100644
--- a/tools/winscope/src/viewers/common/abstract_log_viewer_presenter.ts
+++ b/tools/winscope/src/viewers/common/abstract_log_viewer_presenter.ts
@@ -31,7 +31,7 @@
import {PropertiesPresenter} from 'viewers/common/properties_presenter';
import {UserOptions} from 'viewers/common/user_options';
import {LogPresenter} from './log_presenter';
-import {LogFieldName, UiDataLog} from './ui_data_log';
+import {LogFieldType, UiDataLog} from './ui_data_log';
import {
LogFilterChangeDetail,
TimestampClickDetail,
@@ -65,7 +65,7 @@
ViewerEvents.LogFilterChange,
async (event) => {
const detail: LogFilterChangeDetail = (event as CustomEvent).detail;
- await this.onFilterChange(detail.name, detail.value);
+ await this.onFilterChange(detail.type, detail.value);
},
);
htmlElement.addEventListener(ViewerEvents.LogEntryClick, async (event) => {
@@ -105,8 +105,8 @@
);
}
- async onFilterChange(name: LogFieldName, value: string[] | string) {
- this.logPresenter.applyFilterChange(name, value);
+ async onFilterChange(type: LogFieldType, value: string[] | string) {
+ this.logPresenter.applyFilterChange(type, value);
await this.updatePropertiesTree();
this.uiData.currentIndex = this.logPresenter.getCurrentIndex();
this.uiData.selectedIndex = this.logPresenter.getSelectedIndex();
diff --git a/tools/winscope/src/viewers/common/abstract_log_viewer_presenter_test.ts b/tools/winscope/src/viewers/common/abstract_log_viewer_presenter_test.ts
index 30b4a9b..b142d05 100644
--- a/tools/winscope/src/viewers/common/abstract_log_viewer_presenter_test.ts
+++ b/tools/winscope/src/viewers/common/abstract_log_viewer_presenter_test.ts
@@ -21,7 +21,7 @@
AbstractLogViewerPresenter,
NotifyLogViewCallbackType,
} from './abstract_log_viewer_presenter';
-import {LogEntry, LogFieldName, LogFieldValue, UiDataLog} from './ui_data_log';
+import {LogEntry, LogFieldType, LogFieldValue, UiDataLog} from './ui_data_log';
export abstract class AbstractLogViewerPresenterTest {
execute() {
@@ -98,11 +98,11 @@
}
if (this.shouldExecuteFilterTests) {
- for (const [logFieldName, expectedOptions] of assertDefined(
+ for (const [logFieldType, expectedOptions] of assertDefined(
this.expectedInitialFilterOptions,
)) {
const options = assertDefined(
- uiData.filters?.find((f) => f.name === logFieldName)?.options,
+ uiData.filters?.find((f) => f.type === logFieldType)?.options,
);
if (Array.isArray(expectedOptions)) {
expect(options).toEqual(expectedOptions);
@@ -141,19 +141,19 @@
if (this.shouldExecuteFilterTests) {
it('filters entries', async () => {
- for (const [name, valuesToSet] of assertDefined(
+ for (const [type, valuesToSet] of assertDefined(
this.filterValuesToSet,
)) {
const expected = assertDefined(
- this.expectedFieldValuesAfterFilter?.get(name),
+ this.expectedFieldValuesAfterFilter?.get(type),
);
for (let i = 0; i < valuesToSet.length; i++) {
const filterValues = valuesToSet[i];
const expectedFieldValues = expected[i];
- await presenter.onFilterChange(name, filterValues);
+ await presenter.onFilterChange(type, filterValues);
const fieldValues = uiData.entries.map((entry) =>
- assertDefined(this.getFieldValue(entry, name)),
+ assertDefined(this.getFieldValue(entry, type)),
);
if (Array.isArray(expectedFieldValues)) {
expect(new Set(fieldValues)).toEqual(
@@ -162,7 +162,7 @@
} else {
expect(fieldValues.length).toEqual(expectedFieldValues);
}
- await presenter.onFilterChange(name, []);
+ await presenter.onFilterChange(type, []);
}
}
});
@@ -289,8 +289,8 @@
}
}
- getFieldValue(entry: LogEntry, logFieldName: LogFieldName) {
- return entry.fields.find((f) => f.name === logFieldName)?.value;
+ getFieldValue(entry: LogEntry, logFieldType: LogFieldType) {
+ return entry.fields.find((f) => f.type === logFieldType)?.value;
}
checkSelectedEntryUiData(uiData: UiDataLog, newIndex: number | undefined) {
@@ -323,13 +323,13 @@
abstract readonly expectedIndexOfSecondPositionUpdate: number;
abstract readonly logEntryClickIndex: number;
- readonly expectedInitialFilterOptions?: Map<LogFieldName, string[] | number>;
- readonly filterValuesToSet?: Map<LogFieldName, Array<string[] | string>>;
+ readonly expectedInitialFilterOptions?: Map<LogFieldType, string[] | number>;
+ readonly filterValuesToSet?: Map<LogFieldType, Array<string[] | string>>;
readonly expectedFieldValuesAfterFilter?: Map<
- LogFieldName,
+ LogFieldType,
Array<LogFieldValue[] | number>
>;
- readonly filterNameForCurrentIndexTest?: LogFieldName;
+ readonly filterNameForCurrentIndexTest?: LogFieldType;
readonly filterChangeForCurrentIndexTest?: string[];
readonly expectedCurrentIndexAfterFilterChange?: number;
readonly secondFilterChangeForCurrentIndexTest?: string[];
diff --git a/tools/winscope/src/viewers/common/log_component.ts b/tools/winscope/src/viewers/common/log_component.ts
index 64ff62a..0e9cbb5 100644
--- a/tools/winscope/src/viewers/common/log_component.ts
+++ b/tools/winscope/src/viewers/common/log_component.ts
@@ -40,7 +40,8 @@
LogEntry,
LogField,
LogFieldClassNames,
- LogFieldName,
+ LogFieldNames,
+ LogFieldType,
LogFieldValue,
LogFilter,
} from './ui_data_log';
@@ -50,29 +51,29 @@
template: `
<div class="entries">
<div class="headers" *ngIf="headers.length > 0">
- <div *ngFor="let header of headers" class="mat-body-2" [class]="getLogFieldClass(header)">{{header}}</div>
+ <div *ngFor="let header of headers" class="mat-body-2" [class]="getLogFieldClass(header)">{{getLogFieldName(header)}}</div>
</div>
<div class="filters" *ngIf="filters.length > 0">
<div *ngIf="showTraceEntryTimes" class="time"></div>
- <div class="filter" *ngFor="let filter of filters" [class]="getLogFieldClass(filter.name)">
+ <div class="filter" *ngFor="let filter of filters" [class]="getLogFieldClass(filter.type)">
<select-with-filter
*ngIf="filter.options?.length > 0"
- [label]="filter.name"
+ [label]="getLogFieldName(filter.type)"
[options]="filter.options"
- [outerFilterWidth]="getOuterFilterWidth(filter.name)"
- [innerFilterWidth]="getInnerFilterWidth(filter.name)"
- (selectChange)="onFilterChange($event, filter.name)">
+ [outerFilterWidth]="getOuterFilterWidth(filter.type)"
+ [innerFilterWidth]="getInnerFilterWidth(filter.type)"
+ (selectChange)="onFilterChange($event, filter.type)">
</select-with-filter>
<mat-form-field *ngIf="filter.options === undefined" appearance="fill" (keydown.enter)="$event.target.blur()">
- <mat-label>{{filter.name}}</mat-label>
+ <mat-label>{{filter.type}}</mat-label>
<input
matInput
- [name]="filter.name"
+ [name]="getLogFieldName(filter.type)"
[ngModel]="emptyFilterValue"
- (ngModelChange)="onFilterChange($event, filter.name)" />
+ (ngModelChange)="onFilterChange($event, filter.type)" />
</mat-form-field>
</div>
@@ -137,7 +138,7 @@
</button>
</div>
- <div [class]="getLogFieldClass(field.name)" *ngFor="let field of entry.fields; index as i">
+ <div [class]="getLogFieldClass(field.type)" *ngFor="let field of entry.fields; index as i">
<span class="mat-body-1" *ngIf="!showTimestampButton(field.value)">{{ field.value }}</span>
<button
*ngIf="showTimestampButton(field.value)"
@@ -170,7 +171,7 @@
@Input() selectedIndex: number | undefined;
@Input() scrollToIndex: number | undefined;
@Input() currentIndex: number | undefined;
- @Input() headers: LogFieldName[] = [];
+ @Input() headers: LogFieldType[] = [];
@Input() filters: LogFilter[] = [];
@Input() entries: LogEntry[] = [];
@Input() showCurrentTimeButton = true;
@@ -186,8 +187,12 @@
return value instanceof Timestamp;
}
- getLogFieldClass(fieldName: LogFieldName) {
- return LogFieldClassNames.get(fieldName);
+ getLogFieldClass(fieldType: LogFieldType) {
+ return LogFieldClassNames.get(fieldType);
+ }
+
+ getLogFieldName(fieldType: LogFieldType) {
+ return LogFieldNames.get(fieldType);
}
ngOnChanges() {
@@ -200,11 +205,11 @@
}
}
- onFilterChange(event: MatSelectChange | string, filterName: LogFieldName) {
+ onFilterChange(event: MatSelectChange | string, filterType: LogFieldType) {
const value = event instanceof MatSelectChange ? event.value : event;
this.emitEvent(
ViewerEvents.LogFilterChange,
- new LogFilterChangeDetail(filterName, value),
+ new LogFilterChangeDetail(filterType, value),
);
}
@@ -229,7 +234,7 @@
onTimestampClick(event: MouseEvent, entry: LogEntry, field: LogField) {
event.stopPropagation();
- if (field.name === LogFieldName.DISPATCH_TIME) {
+ if (field.type === LogFieldType.DISPATCH_TIME) {
this.onTraceEntryTimestampClick(event, entry);
} else {
this.onRawTimestampClick(field.value as Timestamp);
@@ -263,42 +268,42 @@
return index === this.selectedIndex;
}
- getOuterFilterWidth(name: LogFieldName): string | undefined {
- switch (name) {
- case LogFieldName.TRANSACTION_ID:
+ getOuterFilterWidth(type: LogFieldType): string | undefined {
+ switch (type) {
+ case LogFieldType.TRANSACTION_ID:
return '125';
- case LogFieldName.VSYNC_ID:
+ case LogFieldType.VSYNC_ID:
return '110';
- case LogFieldName.LAYER_OR_DISPLAY_ID:
+ case LogFieldType.LAYER_OR_DISPLAY_ID:
return '125';
- case LogFieldName.FLAGS:
+ case LogFieldType.FLAGS:
return '250';
- case LogFieldName.LOG_LEVEL:
+ case LogFieldType.LOG_LEVEL:
return '100';
- case LogFieldName.TAG:
+ case LogFieldType.TAG:
return '100';
- case LogFieldName.SOURCE_FILE:
+ case LogFieldType.SOURCE_FILE:
return '300';
default:
return '75';
}
}
- getInnerFilterWidth(name: LogFieldName): string | undefined {
- switch (name) {
- case LogFieldName.TRANSACTION_ID:
+ getInnerFilterWidth(type: LogFieldType): string | undefined {
+ switch (type) {
+ case LogFieldType.TRANSACTION_ID:
return '125';
- case LogFieldName.VSYNC_ID:
+ case LogFieldType.VSYNC_ID:
return '90';
- case LogFieldName.TRANSACTION_TYPE:
+ case LogFieldType.TRANSACTION_TYPE:
return '175';
- case LogFieldName.LAYER_OR_DISPLAY_ID:
+ case LogFieldType.LAYER_OR_DISPLAY_ID:
return '100';
- case LogFieldName.FLAGS:
+ case LogFieldType.FLAGS:
return '250';
- case LogFieldName.TAG:
+ case LogFieldType.TAG:
return '150';
- case LogFieldName.SOURCE_FILE:
+ case LogFieldType.SOURCE_FILE:
return '300';
default:
return '100';
diff --git a/tools/winscope/src/viewers/common/log_component_test.ts b/tools/winscope/src/viewers/common/log_component_test.ts
index 03d6103..92ac0de 100644
--- a/tools/winscope/src/viewers/common/log_component_test.ts
+++ b/tools/winscope/src/viewers/common/log_component_test.ts
@@ -43,7 +43,7 @@
import {PropertiesComponent} from 'viewers/components/properties_component';
import {SelectWithFilterComponent} from 'viewers/components/select_with_filter_component';
import {LogComponent} from './log_component';
-import {LogEntry, LogFieldName} from './ui_data_log';
+import {LogEntry, LogFieldType} from './ui_data_log';
describe('LogComponent', () => {
describe('Main component', () => {
@@ -249,14 +249,14 @@
const fieldTime = TimestampConverterUtils.makeElapsedTimestamp(2n);
const fields1 = [
- {name: LogFieldName.TAG, value: 'Test tag 1'},
- {name: LogFieldName.VSYNC_ID, value: 123},
- {name: LogFieldName.SEND_TIME, value: fieldTime},
+ {type: LogFieldType.TAG, value: 'Test tag 1'},
+ {type: LogFieldType.VSYNC_ID, value: 123},
+ {type: LogFieldType.SEND_TIME, value: fieldTime},
];
const fields2 = [
- {name: LogFieldName.TAG, value: 'Test tag 2'},
- {name: LogFieldName.VSYNC_ID, value: 1234},
- {name: LogFieldName.SEND_TIME, value: fieldTime},
+ {type: LogFieldType.TAG, value: 'Test tag 2'},
+ {type: LogFieldType.VSYNC_ID, value: 1234},
+ {type: LogFieldType.SEND_TIME, value: fieldTime},
];
const trace = new TraceBuilder<PropertyTreeNode>()
@@ -275,8 +275,8 @@
const entries = [entry1, entry2];
const filters = [
- {name: LogFieldName.TAG, options: ['Test tag 1', 'Test tag 2']},
- {name: LogFieldName.VSYNC_ID},
+ {type: LogFieldType.TAG, options: ['Test tag 1', 'Test tag 2']},
+ {type: LogFieldType.VSYNC_ID},
];
component.entries = entries;
@@ -294,7 +294,7 @@
}
component.entries = allEntries.filter((entry) => {
const entryValue = assertDefined(
- entry.fields.find((f) => f.name === detail.name),
+ entry.fields.find((f) => f.type === detail.type),
).value.toString();
if (Array.isArray(detail.value)) {
return detail.value.includes(entryValue);
diff --git a/tools/winscope/src/viewers/common/log_presenter.ts b/tools/winscope/src/viewers/common/log_presenter.ts
index 06bc9c5..3526371 100644
--- a/tools/winscope/src/viewers/common/log_presenter.ts
+++ b/tools/winscope/src/viewers/common/log_presenter.ts
@@ -18,14 +18,14 @@
import {Timestamp} from 'common/time';
import {TraceEntry} from 'trace/trace';
import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
-import {LogEntry, LogFieldName, LogFilter} from './ui_data_log';
+import {LogEntry, LogFieldType, LogFilter} from './ui_data_log';
export class LogPresenter {
private allEntries: LogEntry[] = [];
private filteredEntries: LogEntry[] = [];
private filters: LogFilter[] = [];
- private headers: LogFieldName[] = [];
- private filterValues = new Map<LogFieldName, string | string[]>();
+ private headers: LogFieldType[] = [];
+ private filterValues = new Map<LogFieldType, string | string[]>();
private currentEntry: TraceEntry<PropertyTreeNode> | undefined;
private selectedIndex: number | undefined;
private scrollToIndex: number | undefined;
@@ -39,17 +39,17 @@
this.updateFilteredEntries();
}
- setHeaders(headers: LogFieldName[]) {
+ setHeaders(headers: LogFieldType[]) {
this.headers = headers;
}
- getHeaders(): LogFieldName[] {
+ getHeaders(): LogFieldType[] {
return this.headers;
}
setFilters(filters: LogFilter[]) {
this.filters = filters;
- this.filterValues = new Map<LogFieldName, string | string[]>();
+ this.filterValues = new Map<LogFieldType, string | string[]>();
this.updateFilteredEntries();
this.resetIndices();
}
@@ -109,11 +109,11 @@
this.resetIndices();
}
- applyFilterChange(name: LogFieldName, value: string[] | string) {
+ applyFilterChange(type: LogFieldType, value: string[] | string) {
if (value.length > 0) {
- this.filterValues.set(name, value);
+ this.filterValues.set(type, value);
} else {
- this.filterValues.delete(name);
+ this.filterValues.delete(type);
}
this.updateFilteredEntries();
if (this.storeCurrentIndex) {
@@ -145,9 +145,9 @@
private updateFilteredEntries() {
this.filteredEntries = this.allEntries.filter((entry) => {
- for (const [filterName, filterValue] of this.filterValues) {
+ for (const [filterType, filterValue] of this.filterValues) {
const entryValue = entry.fields.find(
- (f) => f.name === filterName,
+ (f) => f.type === filterType,
)?.value;
if (entryValue === undefined || entryValue instanceof Timestamp) {
@@ -156,7 +156,7 @@
const entryValueStr = entryValue.toString();
- if (Array.isArray(filterValue) && filterName === LogFieldName.FLAGS) {
+ if (Array.isArray(filterValue) && filterType === LogFieldType.FLAGS) {
if (!filterValue.some((flag) => entryValueStr.includes(flag))) {
return false;
}
diff --git a/tools/winscope/src/viewers/common/ui_data_log.ts b/tools/winscope/src/viewers/common/ui_data_log.ts
index 461509a..ac59948 100644
--- a/tools/winscope/src/viewers/common/ui_data_log.ts
+++ b/tools/winscope/src/viewers/common/ui_data_log.ts
@@ -26,14 +26,14 @@
scrollToIndex: undefined | number;
filters?: LogFilter[];
- headers?: LogFieldName[];
+ headers?: LogFieldType[];
currentIndex?: undefined | number;
propertiesTree?: undefined | UiPropertyTreeNode;
propertiesUserOptions?: UserOptions;
}
export interface LogFilter {
- name: LogFieldName;
+ type: LogFieldType;
options?: string[];
}
@@ -44,7 +44,7 @@
}
export interface LogField {
- name: LogFieldName;
+ type: LogFieldType;
value: LogFieldValue;
icon?: string;
iconColor?: string;
@@ -52,48 +52,71 @@
export type LogFieldValue = string | number | Timestamp;
-export enum LogFieldName {
- TRANSACTION_ID = 'TX ID',
- VSYNC_ID = 'VSYNC ID',
- PID = 'PID',
- UID = 'UID',
- TRANSACTION_TYPE = 'TYPE',
- LAYER_OR_DISPLAY_ID = 'LAYER/DISP ID',
- FLAGS = 'Flags',
- LOG_LEVEL = 'Log level',
- TAG = 'Tag',
- SOURCE_FILE = 'Source files',
- TEXT = 'Search text',
- TRANSITION_ID = 'Id',
- TRANSITION_TYPE = 'Type',
- SEND_TIME = 'Send Time',
- DISPATCH_TIME = 'Dispatch Time',
- DURATION = 'Duration',
- STATUS = 'Status',
- CUJ_TYPE = 'Type',
- START_TIME = 'Start Time',
- END_TIME = 'End Time',
+export enum LogFieldType {
+ TRANSACTION_ID,
+ VSYNC_ID,
+ PID,
+ UID,
+ TRANSACTION_TYPE,
+ LAYER_OR_DISPLAY_ID,
+ FLAGS,
+ LOG_LEVEL,
+ TAG,
+ SOURCE_FILE,
+ TEXT,
+ TRANSITION_ID,
+ TRANSITION_TYPE,
+ SEND_TIME,
+ DISPATCH_TIME,
+ DURATION,
+ STATUS,
+ CUJ_TYPE,
+ START_TIME,
+ END_TIME,
}
-export const LogFieldClassNames: ReadonlyMap<LogFieldName, string> = new Map([
- [LogFieldName.TRANSACTION_ID, 'transaction-id'],
- [LogFieldName.VSYNC_ID, 'vsyncid'],
- [LogFieldName.PID, 'pid'],
- [LogFieldName.UID, 'uid'],
- [LogFieldName.TRANSACTION_TYPE, 'transaction-type'],
- [LogFieldName.LAYER_OR_DISPLAY_ID, 'layer-or-display-id'],
- [LogFieldName.FLAGS, 'flags'],
- [LogFieldName.LOG_LEVEL, 'log-level'],
- [LogFieldName.TAG, 'tag'],
- [LogFieldName.SOURCE_FILE, 'source-file'],
- [LogFieldName.TEXT, 'text'],
- [LogFieldName.TRANSITION_ID, 'transition-id'],
- [LogFieldName.TRANSITION_TYPE, 'transition-type'],
- [LogFieldName.CUJ_TYPE, 'jank_cuj-type'],
- [LogFieldName.SEND_TIME, 'send-time time'],
- [LogFieldName.DISPATCH_TIME, 'dispatch-time time'],
- [LogFieldName.START_TIME, 'start-time time'],
- [LogFieldName.END_TIME, 'end-time time'],
- [LogFieldName.DURATION, 'duration'],
- [LogFieldName.STATUS, 'status'],
+export const LogFieldNames: ReadonlyMap<LogFieldType, string> = new Map([
+ [LogFieldType.TRANSACTION_ID, 'TX ID'],
+ [LogFieldType.VSYNC_ID, 'VSYNC ID'],
+ [LogFieldType.PID, 'PID'],
+ [LogFieldType.UID, 'UID'],
+ [LogFieldType.TRANSACTION_TYPE, 'TYPE'],
+ [LogFieldType.LAYER_OR_DISPLAY_ID, 'LAYER/DISP ID'],
+ [LogFieldType.FLAGS, 'Flags'],
+ [LogFieldType.LOG_LEVEL, 'Log level'],
+ [LogFieldType.TAG, 'Tag'],
+ [LogFieldType.SOURCE_FILE, 'Source files'],
+ [LogFieldType.TEXT, 'Search text'],
+ [LogFieldType.TRANSITION_ID, 'Id'],
+ [LogFieldType.TRANSITION_TYPE, 'Type'],
+ [LogFieldType.SEND_TIME, 'Send Time'],
+ [LogFieldType.DISPATCH_TIME, 'Dispatch Time'],
+ [LogFieldType.DURATION, 'Duration'],
+ [LogFieldType.STATUS, 'Status'],
+ [LogFieldType.CUJ_TYPE, 'Type'],
+ [LogFieldType.START_TIME, 'Start Time'],
+ [LogFieldType.END_TIME, 'End Time'],
+]);
+
+export const LogFieldClassNames: ReadonlyMap<LogFieldType, string> = new Map([
+ [LogFieldType.TRANSACTION_ID, 'transaction-id'],
+ [LogFieldType.VSYNC_ID, 'vsyncid'],
+ [LogFieldType.PID, 'pid'],
+ [LogFieldType.UID, 'uid'],
+ [LogFieldType.TRANSACTION_TYPE, 'transaction-type'],
+ [LogFieldType.LAYER_OR_DISPLAY_ID, 'layer-or-display-id'],
+ [LogFieldType.FLAGS, 'flags'],
+ [LogFieldType.LOG_LEVEL, 'log-level'],
+ [LogFieldType.TAG, 'tag'],
+ [LogFieldType.SOURCE_FILE, 'source-file'],
+ [LogFieldType.TEXT, 'text'],
+ [LogFieldType.TRANSITION_ID, 'transition-id'],
+ [LogFieldType.TRANSITION_TYPE, 'transition-type'],
+ [LogFieldType.CUJ_TYPE, 'jank_cuj-type'],
+ [LogFieldType.SEND_TIME, 'send-time time'],
+ [LogFieldType.DISPATCH_TIME, 'dispatch-time time'],
+ [LogFieldType.START_TIME, 'start-time time'],
+ [LogFieldType.END_TIME, 'end-time time'],
+ [LogFieldType.DURATION, 'duration'],
+ [LogFieldType.STATUS, 'status'],
]);
diff --git a/tools/winscope/src/viewers/common/viewer_events.ts b/tools/winscope/src/viewers/common/viewer_events.ts
index 1243207..b8f6f32 100644
--- a/tools/winscope/src/viewers/common/viewer_events.ts
+++ b/tools/winscope/src/viewers/common/viewer_events.ts
@@ -17,7 +17,7 @@
import {Timestamp} from 'common/time';
import {TraceEntry} from 'trace/trace';
import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
-import {LogFieldName} from './ui_data_log';
+import {LogFieldType} from './ui_data_log';
export enum ViewerEvents {
HighlightedNodeChange = 'HighlightedNodeChange',
@@ -58,5 +58,5 @@
}
export class LogFilterChangeDetail {
- constructor(public name: LogFieldName, public value: string[] | string) {}
+ constructor(public type: LogFieldType, public value: string[] | string) {}
}
diff --git a/tools/winscope/src/viewers/viewer_jank_cujs/presenter.ts b/tools/winscope/src/viewers/viewer_jank_cujs/presenter.ts
index 09ab5df..1dc6882 100644
--- a/tools/winscope/src/viewers/viewer_jank_cujs/presenter.ts
+++ b/tools/winscope/src/viewers/viewer_jank_cujs/presenter.ts
@@ -24,16 +24,16 @@
} from 'viewers/common/abstract_log_viewer_presenter';
import {LogPresenter} from 'viewers/common/log_presenter';
import {PropertiesPresenter} from 'viewers/common/properties_presenter';
-import {LogField, LogFieldName} from 'viewers/common/ui_data_log';
+import {LogField, LogFieldType} from 'viewers/common/ui_data_log';
import {CujEntry, CujStatus, CujType, UiData} from './ui_data';
export class Presenter extends AbstractLogViewerPresenter {
static readonly FIELD_NAMES = [
- LogFieldName.CUJ_TYPE,
- LogFieldName.START_TIME,
- LogFieldName.END_TIME,
- LogFieldName.DURATION,
- LogFieldName.STATUS,
+ LogFieldType.CUJ_TYPE,
+ LogFieldType.START_TIME,
+ LogFieldType.END_TIME,
+ LogFieldType.DURATION,
+ LogFieldType.STATUS,
];
private static readonly VALUE_NA = 'N/A';
@@ -102,23 +102,23 @@
const fields: LogField[] = [
{
- name: LogFieldName.CUJ_TYPE,
+ type: LogFieldType.CUJ_TYPE,
value: `${CujType[cujTypeId]} (${cujTypeId})`,
},
{
- name: LogFieldName.START_TIME,
+ type: LogFieldType.START_TIME,
value: startTs ?? Presenter.VALUE_NA,
},
{
- name: LogFieldName.END_TIME,
+ type: LogFieldType.END_TIME,
value: endTs ?? Presenter.VALUE_NA,
},
{
- name: LogFieldName.DURATION,
+ type: LogFieldType.DURATION,
value: timeDiff?.format() ?? Presenter.VALUE_NA,
},
{
- name: LogFieldName.STATUS,
+ type: LogFieldType.STATUS,
value: status ?? Presenter.VALUE_NA,
icon: statusIcon,
iconColor: statusIconColor,
diff --git a/tools/winscope/src/viewers/viewer_jank_cujs/ui_data.ts b/tools/winscope/src/viewers/viewer_jank_cujs/ui_data.ts
index ea4aa95..5c13dcb 100644
--- a/tools/winscope/src/viewers/viewer_jank_cujs/ui_data.ts
+++ b/tools/winscope/src/viewers/viewer_jank_cujs/ui_data.ts
@@ -19,14 +19,14 @@
import {
LogEntry,
LogField,
- LogFieldName,
+ LogFieldType,
UiDataLog,
} from 'viewers/common/ui_data_log';
import {UiPropertyTreeNode} from 'viewers/common/ui_property_tree_node';
export class UiData implements UiDataLog {
constructor(
- public headers: LogFieldName[],
+ public headers: LogFieldType[],
public entries: LogEntry[],
public selectedIndex: undefined | number,
public scrollToIndex: undefined | number,
diff --git a/tools/winscope/src/viewers/viewer_jank_cujs/viewer_jank_cujs_component_test.ts b/tools/winscope/src/viewers/viewer_jank_cujs/viewer_jank_cujs_component_test.ts
index 7a54ccb..fcd758c 100644
--- a/tools/winscope/src/viewers/viewer_jank_cujs/viewer_jank_cujs_component_test.ts
+++ b/tools/winscope/src/viewers/viewer_jank_cujs/viewer_jank_cujs_component_test.ts
@@ -32,7 +32,7 @@
import {TraceType} from 'trace/trace_type';
import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
import {LogComponent} from 'viewers/common/log_component';
-import {LogEntry, LogField, LogFieldName} from 'viewers/common/ui_data_log';
+import {LogEntry, LogField, LogFieldType} from 'viewers/common/ui_data_log';
import {CollapsedSectionsComponent} from 'viewers/components/collapsed_sections_component';
import {CollapsibleSectionTitleComponent} from 'viewers/components/collapsible_section_title_component';
import {PropertiesComponent} from 'viewers/components/properties_component';
@@ -127,25 +127,25 @@
): LogEntry {
const fields: LogField[] = [
{
- name: LogFieldName.CUJ_TYPE,
+ type: LogFieldType.CUJ_TYPE,
value: `${CujType[cujTypeId]} (${cujTypeId})`,
},
{
- name: LogFieldName.START_TIME,
+ type: LogFieldType.START_TIME,
value: TimestampConverterUtils.makeElapsedTimestamp(
BigInt(startTsNanos),
),
},
{
- name: LogFieldName.END_TIME,
+ type: LogFieldType.END_TIME,
value: TimestampConverterUtils.makeElapsedTimestamp(BigInt(endTsNanos)),
},
{
- name: LogFieldName.DURATION,
+ type: LogFieldType.DURATION,
value: new TimeDuration(BigInt(endTsNanos - startTsNanos)).format(),
},
{
- name: LogFieldName.STATUS,
+ type: LogFieldType.STATUS,
value: status,
icon: 'check',
iconColor: 'green',
diff --git a/tools/winscope/src/viewers/viewer_protolog/presenter.ts b/tools/winscope/src/viewers/viewer_protolog/presenter.ts
index ba1cb5e..0ec82e1 100644
--- a/tools/winscope/src/viewers/viewer_protolog/presenter.ts
+++ b/tools/winscope/src/viewers/viewer_protolog/presenter.ts
@@ -22,15 +22,15 @@
NotifyLogViewCallbackType,
} from 'viewers/common/abstract_log_viewer_presenter';
import {LogPresenter} from 'viewers/common/log_presenter';
-import {LogField, LogFieldName, LogFilter} from 'viewers/common/ui_data_log';
+import {LogField, LogFieldType, LogFilter} from 'viewers/common/ui_data_log';
import {ProtologEntry, UiData} from './ui_data';
export class Presenter extends AbstractLogViewerPresenter {
- static readonly FIELD_NAMES = [
- LogFieldName.LOG_LEVEL,
- LogFieldName.TAG,
- LogFieldName.SOURCE_FILE,
- LogFieldName.TEXT,
+ static readonly FIELD_TYPES = [
+ LogFieldType.LOG_LEVEL,
+ LogFieldType.TAG,
+ LogFieldType.SOURCE_FILE,
+ LogFieldType.TEXT,
];
private isInitialized = false;
@@ -50,19 +50,19 @@
const allEntries = await this.makeAllUiDataMessages();
const filters: LogFilter[] = [];
- for (const name of Presenter.FIELD_NAMES) {
- if (name === LogFieldName.TEXT) {
+ for (const type of Presenter.FIELD_TYPES) {
+ if (type === LogFieldType.TEXT) {
filters.push({
- name,
+ type,
});
} else {
filters.push({
- name,
+ type,
options: this.getUniqueMessageValues(
allEntries,
(entry: ProtologEntry) =>
assertDefined(
- entry.fields.find((f) => f.name === name),
+ entry.fields.find((f) => f.type === type),
).value.toString(),
),
});
@@ -87,25 +87,25 @@
const messageNode = await entry.getValue();
const fields: LogField[] = [
{
- name: LogFieldName.LOG_LEVEL,
+ type: LogFieldType.LOG_LEVEL,
value: assertDefined(
messageNode.getChildByName('level'),
).formattedValue(),
},
{
- name: LogFieldName.TAG,
+ type: LogFieldType.TAG,
value: assertDefined(
messageNode.getChildByName('tag'),
).formattedValue(),
},
{
- name: LogFieldName.SOURCE_FILE,
+ type: LogFieldType.SOURCE_FILE,
value: assertDefined(
messageNode.getChildByName('at'),
).formattedValue(),
},
{
- name: LogFieldName.TEXT,
+ type: LogFieldType.TEXT,
value: assertDefined(
messageNode.getChildByName('text'),
).formattedValue(),
diff --git a/tools/winscope/src/viewers/viewer_protolog/presenter_test.ts b/tools/winscope/src/viewers/viewer_protolog/presenter_test.ts
index 35080dd..5dfc06a 100644
--- a/tools/winscope/src/viewers/viewer_protolog/presenter_test.ts
+++ b/tools/winscope/src/viewers/viewer_protolog/presenter_test.ts
@@ -27,7 +27,7 @@
import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
import {NotifyLogViewCallbackType} from 'viewers/common/abstract_log_viewer_presenter';
import {AbstractLogViewerPresenterTest} from 'viewers/common/abstract_log_viewer_presenter_test';
-import {LogFieldName, LogFieldValue} from 'viewers/common/ui_data_log';
+import {LogFieldType, LogFieldValue} from 'viewers/common/ui_data_log';
import {Presenter} from './presenter';
class PresenterProtologTest extends AbstractLogViewerPresenterTest {
@@ -43,39 +43,39 @@
override readonly totalOutputEntries = 3;
override readonly expectedIndexOfSecondPositionUpdate = 1;
override readonly expectedInitialFilterOptions = new Map<
- LogFieldName,
+ LogFieldType,
string[] | number
>([
- [LogFieldName.LOG_LEVEL, ['level0', 'level1', 'level2']],
- [LogFieldName.TAG, ['tag0', 'tag1', 'tag2']],
- [LogFieldName.SOURCE_FILE, ['sourcefile0', 'sourcefile1', 'sourcefile2']],
+ [LogFieldType.LOG_LEVEL, ['level0', 'level1', 'level2']],
+ [LogFieldType.TAG, ['tag0', 'tag1', 'tag2']],
+ [LogFieldType.SOURCE_FILE, ['sourcefile0', 'sourcefile1', 'sourcefile2']],
]);
override readonly filterValuesToSet = new Map<
- LogFieldName,
+ LogFieldType,
Array<string | string[]>
>([
- [LogFieldName.LOG_LEVEL, [[], ['level1'], ['level0', 'level1', 'level2']]],
- [LogFieldName.TAG, [[], ['tag1'], ['tag0', 'tag1', 'tag2']]],
+ [LogFieldType.LOG_LEVEL, [[], ['level1'], ['level0', 'level1', 'level2']]],
+ [LogFieldType.TAG, [[], ['tag1'], ['tag0', 'tag1', 'tag2']]],
[
- LogFieldName.SOURCE_FILE,
+ LogFieldType.SOURCE_FILE,
[[], ['sourcefile1'], ['sourcefile0', 'sourcefile1', 'sourcefile2']],
],
- [LogFieldName.TEXT, [[], 'text', 'text0', 'text1']],
+ [LogFieldType.TEXT, [[], 'text', 'text0', 'text1']],
]);
override readonly expectedFieldValuesAfterFilter = new Map<
- LogFieldName,
+ LogFieldType,
Array<LogFieldValue[] | number>
>([
[
- LogFieldName.LOG_LEVEL,
+ LogFieldType.LOG_LEVEL,
[this.totalOutputEntries, ['level1'], ['level0', 'level1', 'level2']],
],
[
- LogFieldName.TAG,
+ LogFieldType.TAG,
[this.totalOutputEntries, ['tag1'], ['tag0', 'tag1', 'tag2']],
],
[
- LogFieldName.SOURCE_FILE,
+ LogFieldType.SOURCE_FILE,
[
this.totalOutputEntries,
['sourcefile1'],
@@ -83,7 +83,7 @@
],
],
[
- LogFieldName.TEXT,
+ LogFieldType.TEXT,
[
this.totalOutputEntries,
['text0', 'text1', 'text2'],
@@ -93,7 +93,7 @@
],
]);
override readonly logEntryClickIndex = 10;
- override readonly filterNameForCurrentIndexTest = LogFieldName.LOG_LEVEL;
+ override readonly filterNameForCurrentIndexTest = LogFieldType.LOG_LEVEL;
override readonly filterChangeForCurrentIndexTest = ['level1'];
override readonly expectedCurrentIndexAfterFilterChange = 0;
override readonly secondFilterChangeForCurrentIndexTest = [
diff --git a/tools/winscope/src/viewers/viewer_protolog/scroll_strategy/protolog_scroll_strategy.ts b/tools/winscope/src/viewers/viewer_protolog/scroll_strategy/protolog_scroll_strategy.ts
index 4a8f2ee..22d085b 100644
--- a/tools/winscope/src/viewers/viewer_protolog/scroll_strategy/protolog_scroll_strategy.ts
+++ b/tools/winscope/src/viewers/viewer_protolog/scroll_strategy/protolog_scroll_strategy.ts
@@ -15,7 +15,7 @@
*/
import {assertDefined} from 'common/assert_utils';
-import {LogFieldName} from 'viewers/common/ui_data_log';
+import {LogFieldType} from 'viewers/common/ui_data_log';
import {VariableHeightScrollStrategy} from 'viewers/common/variable_height_scroll_strategy';
import {ProtologEntry} from 'viewers/viewer_protolog/ui_data';
@@ -27,7 +27,7 @@
protected override predictScrollItemHeight(entry: ProtologEntry): number {
const textHeight = this.subItemHeight(
- assertDefined(entry.fields.find((f) => f.name === LogFieldName.TEXT))
+ assertDefined(entry.fields.find((f) => f.type === LogFieldType.TEXT))
.value as string,
this.textCharsPerRow,
);
@@ -37,7 +37,7 @@
);
const sourceFileHeight = this.subItemHeight(
assertDefined(
- entry.fields.find((f) => f.name === LogFieldName.SOURCE_FILE),
+ entry.fields.find((f) => f.type === LogFieldType.SOURCE_FILE),
).value as string,
this.sourceFileCharsPerRow,
);
diff --git a/tools/winscope/src/viewers/viewer_protolog/viewer_protolog_component_test.ts b/tools/winscope/src/viewers/viewer_protolog/viewer_protolog_component_test.ts
index c3d59c7..5ccf769 100644
--- a/tools/winscope/src/viewers/viewer_protolog/viewer_protolog_component_test.ts
+++ b/tools/winscope/src/viewers/viewer_protolog/viewer_protolog_component_test.ts
@@ -36,7 +36,7 @@
import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
import {LogComponent} from 'viewers/common/log_component';
import {executeScrollComponentTests} from 'viewers/common/scroll_component_test_utils';
-import {LogFieldName} from 'viewers/common/ui_data_log';
+import {LogFieldType} from 'viewers/common/ui_data_log';
import {SelectWithFilterComponent} from 'viewers/components/select_with_filter_component';
import {ProtologScrollDirective} from './scroll_strategy/protolog_scroll_directive';
import {ProtologEntry, UiData} from './ui_data';
@@ -158,16 +158,16 @@
for (let i = 0; i < 200; i++) {
const message = new ProtologEntry(trace.getEntry(0), [
{
- name: LogFieldName.LOG_LEVEL,
+ type: LogFieldType.LOG_LEVEL,
value: i % 2 === 0 ? allLogLevels[0] : allLogLevels[1],
},
- {name: LogFieldName.TAG, value: i % 2 === 0 ? allTags[0] : allTags[1]},
+ {type: LogFieldType.TAG, value: i % 2 === 0 ? allTags[0] : allTags[1]},
{
- name: LogFieldName.SOURCE_FILE,
+ type: LogFieldType.SOURCE_FILE,
value: i % 2 === 0 ? allSourceFiles[0] : allSourceFiles[1],
},
{
- name: LogFieldName.TEXT,
+ type: LogFieldType.TEXT,
value: i % 2 === 0 ? shortMessage : longMessage,
},
]);
@@ -175,10 +175,10 @@
}
return new UiData(
[
- {name: LogFieldName.LOG_LEVEL, options: allLogLevels},
- {name: LogFieldName.TAG, options: allTags},
- {name: LogFieldName.SOURCE_FILE, options: allSourceFiles},
- {name: LogFieldName.TEXT},
+ {type: LogFieldType.LOG_LEVEL, options: allLogLevels},
+ {type: LogFieldType.TAG, options: allTags},
+ {type: LogFieldType.SOURCE_FILE, options: allSourceFiles},
+ {type: LogFieldType.TEXT},
],
messages,
150,
diff --git a/tools/winscope/src/viewers/viewer_transactions/presenter.ts b/tools/winscope/src/viewers/viewer_transactions/presenter.ts
index b7054bd..f057d7f 100644
--- a/tools/winscope/src/viewers/viewer_transactions/presenter.ts
+++ b/tools/winscope/src/viewers/viewer_transactions/presenter.ts
@@ -24,20 +24,20 @@
} from 'viewers/common/abstract_log_viewer_presenter';
import {LogPresenter} from 'viewers/common/log_presenter';
import {PropertiesPresenter} from 'viewers/common/properties_presenter';
-import {LogField, LogFieldName, LogFilter} from 'viewers/common/ui_data_log';
+import {LogField, LogFieldType, LogFilter} from 'viewers/common/ui_data_log';
import {UserOptions} from 'viewers/common/user_options';
import {SetRootDisplayNames} from './operations/set_root_display_name';
import {TransactionsEntry, TransactionsEntryType, UiData} from './ui_data';
export class Presenter extends AbstractLogViewerPresenter {
- private static readonly FIELD_NAMES = [
- LogFieldName.TRANSACTION_ID,
- LogFieldName.VSYNC_ID,
- LogFieldName.PID,
- LogFieldName.UID,
- LogFieldName.TRANSACTION_TYPE,
- LogFieldName.LAYER_OR_DISPLAY_ID,
- LogFieldName.FLAGS,
+ private static readonly FIELD_TYPES = [
+ LogFieldType.TRANSACTION_ID,
+ LogFieldType.VSYNC_ID,
+ LogFieldType.PID,
+ LogFieldType.UID,
+ LogFieldType.TRANSACTION_TYPE,
+ LogFieldType.LAYER_OR_DISPLAY_ID,
+ LogFieldType.FLAGS,
];
private static readonly VALUE_NA = 'N/A';
private isInitialized = false;
@@ -80,15 +80,15 @@
const allEntries = await this.makeUiDataEntries();
const filters: LogFilter[] = [];
- for (const name of Presenter.FIELD_NAMES) {
- if (name === LogFieldName.FLAGS) {
+ for (const type of Presenter.FIELD_TYPES) {
+ if (type === LogFieldType.FLAGS) {
filters.push({
- name,
+ type,
options: this.getUniqueUiDataEntryValues(
allEntries,
(entry: TransactionsEntry) =>
assertDefined(
- entry.fields.find((f) => f.name === name)?.value as string,
+ entry.fields.find((f) => f.type === type)?.value as string,
)
.split('|')
.map((flag) => flag.trim()),
@@ -96,12 +96,12 @@
});
} else {
filters.push({
- name,
+ type,
options: this.getUniqueUiDataEntryValues(
allEntries,
(entry: TransactionsEntry) =>
assertDefined(
- entry.fields.find((f) => f.name === name),
+ entry.fields.find((f) => f.type === type),
).value.toString(),
),
});
@@ -152,22 +152,22 @@
for (const layerState of layerChanges) {
const fields: LogField[] = [
- {name: LogFieldName.TRANSACTION_ID, value: transactionId},
- {name: LogFieldName.VSYNC_ID, value: vsyncId},
- {name: LogFieldName.PID, value: pid},
- {name: LogFieldName.UID, value: uid},
+ {type: LogFieldType.TRANSACTION_ID, value: transactionId},
+ {type: LogFieldType.VSYNC_ID, value: vsyncId},
+ {type: LogFieldType.PID, value: pid},
+ {type: LogFieldType.UID, value: uid},
{
- name: LogFieldName.TRANSACTION_TYPE,
+ type: LogFieldType.TRANSACTION_TYPE,
value: TransactionsEntryType.LAYER_CHANGED,
},
{
- name: LogFieldName.LAYER_OR_DISPLAY_ID,
+ type: LogFieldType.LAYER_OR_DISPLAY_ID,
value: assertDefined(
layerState.getChildByName('layerId'),
).formattedValue(),
},
{
- name: LogFieldName.FLAGS,
+ type: LogFieldType.FLAGS,
value: assertDefined(
layerState.getChildByName('what'),
).formattedValue(),
@@ -181,22 +181,22 @@
).getAllChildren();
for (const displayState of displayChanges) {
const fields: LogField[] = [
- {name: LogFieldName.TRANSACTION_ID, value: transactionId},
- {name: LogFieldName.VSYNC_ID, value: vsyncId},
- {name: LogFieldName.PID, value: pid},
- {name: LogFieldName.UID, value: uid},
+ {type: LogFieldType.TRANSACTION_ID, value: transactionId},
+ {type: LogFieldType.VSYNC_ID, value: vsyncId},
+ {type: LogFieldType.PID, value: pid},
+ {type: LogFieldType.UID, value: uid},
{
- name: LogFieldName.TRANSACTION_TYPE,
+ type: LogFieldType.TRANSACTION_TYPE,
value: TransactionsEntryType.DISPLAY_CHANGED,
},
{
- name: LogFieldName.LAYER_OR_DISPLAY_ID,
+ type: LogFieldType.LAYER_OR_DISPLAY_ID,
value: assertDefined(
displayState.getChildByName('id'),
).formattedValue(),
},
{
- name: LogFieldName.FLAGS,
+ type: LogFieldType.FLAGS,
value: assertDefined(
displayState.getChildByName('what'),
).formattedValue(),
@@ -207,16 +207,16 @@
if (layerChanges.length === 0 && displayChanges.length === 0) {
const fields: LogField[] = [
- {name: LogFieldName.TRANSACTION_ID, value: transactionId},
- {name: LogFieldName.VSYNC_ID, value: vsyncId},
- {name: LogFieldName.PID, value: pid},
- {name: LogFieldName.UID, value: uid},
+ {type: LogFieldType.TRANSACTION_ID, value: transactionId},
+ {type: LogFieldType.VSYNC_ID, value: vsyncId},
+ {type: LogFieldType.PID, value: pid},
+ {type: LogFieldType.UID, value: uid},
{
- name: LogFieldName.TRANSACTION_TYPE,
+ type: LogFieldType.TRANSACTION_TYPE,
value: TransactionsEntryType.NO_OP,
},
- {name: LogFieldName.LAYER_OR_DISPLAY_ID, value: ''},
- {name: LogFieldName.FLAGS, value: ''},
+ {type: LogFieldType.LAYER_OR_DISPLAY_ID, value: ''},
+ {type: LogFieldType.FLAGS, value: ''},
];
entries.push(new TransactionsEntry(entry, fields, undefined));
}
@@ -226,21 +226,21 @@
entryNode.getChildByName('addedLayers'),
).getAllChildren()) {
const fields: LogField[] = [
- {name: LogFieldName.TRANSACTION_ID, value: ''},
- {name: LogFieldName.VSYNC_ID, value: vsyncId},
- {name: LogFieldName.PID, value: Presenter.VALUE_NA},
- {name: LogFieldName.UID, value: Presenter.VALUE_NA},
+ {type: LogFieldType.TRANSACTION_ID, value: ''},
+ {type: LogFieldType.VSYNC_ID, value: vsyncId},
+ {type: LogFieldType.PID, value: Presenter.VALUE_NA},
+ {type: LogFieldType.UID, value: Presenter.VALUE_NA},
{
- name: LogFieldName.TRANSACTION_TYPE,
+ type: LogFieldType.TRANSACTION_TYPE,
value: TransactionsEntryType.LAYER_ADDED,
},
{
- name: LogFieldName.LAYER_OR_DISPLAY_ID,
+ type: LogFieldType.LAYER_OR_DISPLAY_ID,
value: assertDefined(
layerCreationArgs.getChildByName('layerId'),
).formattedValue(),
},
- {name: LogFieldName.FLAGS, value: ''},
+ {type: LogFieldType.FLAGS, value: ''},
];
entries.push(new TransactionsEntry(entry, fields, layerCreationArgs));
}
@@ -249,19 +249,19 @@
entryNode.getChildByName('destroyedLayers'),
).getAllChildren()) {
const fields: LogField[] = [
- {name: LogFieldName.TRANSACTION_ID, value: ''},
- {name: LogFieldName.VSYNC_ID, value: vsyncId},
- {name: LogFieldName.PID, value: Presenter.VALUE_NA},
- {name: LogFieldName.UID, value: Presenter.VALUE_NA},
+ {type: LogFieldType.TRANSACTION_ID, value: ''},
+ {type: LogFieldType.VSYNC_ID, value: vsyncId},
+ {type: LogFieldType.PID, value: Presenter.VALUE_NA},
+ {type: LogFieldType.UID, value: Presenter.VALUE_NA},
{
- name: LogFieldName.TRANSACTION_TYPE,
+ type: LogFieldType.TRANSACTION_TYPE,
value: TransactionsEntryType.LAYER_DESTROYED,
},
{
- name: LogFieldName.LAYER_OR_DISPLAY_ID,
+ type: LogFieldType.LAYER_OR_DISPLAY_ID,
value: destroyedLayerId.formattedValue(),
},
- {name: LogFieldName.FLAGS, value: ''},
+ {type: LogFieldType.FLAGS, value: ''},
];
entries.push(new TransactionsEntry(entry, fields, destroyedLayerId));
}
@@ -270,22 +270,22 @@
entryNode.getChildByName('addedDisplays'),
).getAllChildren()) {
const fields: LogField[] = [
- {name: LogFieldName.TRANSACTION_ID, value: ''},
- {name: LogFieldName.VSYNC_ID, value: vsyncId},
- {name: LogFieldName.PID, value: Presenter.VALUE_NA},
- {name: LogFieldName.UID, value: Presenter.VALUE_NA},
+ {type: LogFieldType.TRANSACTION_ID, value: ''},
+ {type: LogFieldType.VSYNC_ID, value: vsyncId},
+ {type: LogFieldType.PID, value: Presenter.VALUE_NA},
+ {type: LogFieldType.UID, value: Presenter.VALUE_NA},
{
- name: LogFieldName.TRANSACTION_TYPE,
+ type: LogFieldType.TRANSACTION_TYPE,
value: TransactionsEntryType.DISPLAY_ADDED,
},
{
- name: LogFieldName.LAYER_OR_DISPLAY_ID,
+ type: LogFieldType.LAYER_OR_DISPLAY_ID,
value: assertDefined(
displayState.getChildByName('id'),
).formattedValue(),
},
{
- name: LogFieldName.FLAGS,
+ type: LogFieldType.FLAGS,
value: assertDefined(
displayState.getChildByName('what'),
).formattedValue(),
@@ -298,19 +298,19 @@
entryNode.getChildByName('removedDisplays'),
).getAllChildren()) {
const fields: LogField[] = [
- {name: LogFieldName.TRANSACTION_ID, value: ''},
- {name: LogFieldName.VSYNC_ID, value: vsyncId},
- {name: LogFieldName.PID, value: Presenter.VALUE_NA},
- {name: LogFieldName.UID, value: Presenter.VALUE_NA},
+ {type: LogFieldType.TRANSACTION_ID, value: ''},
+ {type: LogFieldType.VSYNC_ID, value: vsyncId},
+ {type: LogFieldType.PID, value: Presenter.VALUE_NA},
+ {type: LogFieldType.UID, value: Presenter.VALUE_NA},
{
- name: LogFieldName.TRANSACTION_TYPE,
+ type: LogFieldType.TRANSACTION_TYPE,
value: TransactionsEntryType.DISPLAY_REMOVED,
},
{
- name: LogFieldName.LAYER_OR_DISPLAY_ID,
+ type: LogFieldType.LAYER_OR_DISPLAY_ID,
value: removedDisplayId.formattedValue(),
},
- {name: LogFieldName.FLAGS, value: ''},
+ {type: LogFieldType.FLAGS, value: ''},
];
entries.push(new TransactionsEntry(entry, fields, removedDisplayId));
}
@@ -319,19 +319,19 @@
entryNode.getChildByName('destroyedLayerHandles'),
).getAllChildren()) {
const fields: LogField[] = [
- {name: LogFieldName.TRANSACTION_ID, value: ''},
- {name: LogFieldName.VSYNC_ID, value: vsyncId},
- {name: LogFieldName.PID, value: Presenter.VALUE_NA},
- {name: LogFieldName.UID, value: Presenter.VALUE_NA},
+ {type: LogFieldType.TRANSACTION_ID, value: ''},
+ {type: LogFieldType.VSYNC_ID, value: vsyncId},
+ {type: LogFieldType.PID, value: Presenter.VALUE_NA},
+ {type: LogFieldType.UID, value: Presenter.VALUE_NA},
{
- name: LogFieldName.TRANSACTION_TYPE,
+ type: LogFieldType.TRANSACTION_TYPE,
value: TransactionsEntryType.LAYER_HANDLE_DESTROYED,
},
{
- name: LogFieldName.LAYER_OR_DISPLAY_ID,
+ type: LogFieldType.LAYER_OR_DISPLAY_ID,
value: destroyedLayerHandleId.formattedValue(),
},
- {name: LogFieldName.FLAGS, value: ''},
+ {type: LogFieldType.FLAGS, value: ''},
];
entries.push(
new TransactionsEntry(entry, fields, destroyedLayerHandleId),
diff --git a/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts b/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts
index 68bedb0..2baad40 100644
--- a/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts
+++ b/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts
@@ -26,7 +26,7 @@
import {AbstractLogViewerPresenterTest} from 'viewers/common/abstract_log_viewer_presenter_test';
import {
LogEntry,
- LogFieldName,
+ LogFieldType,
LogFieldValue,
} from 'viewers/common/ui_data_log';
import {Presenter} from './presenter';
@@ -45,16 +45,16 @@
override readonly totalOutputEntries = 1647;
override readonly expectedIndexOfSecondPositionUpdate = 13;
override readonly expectedInitialFilterOptions = new Map<
- LogFieldName,
+ LogFieldType,
string[] | number
>([
[
- LogFieldName.PID,
+ LogFieldType.PID,
['N/A', '0', '515', '1593', '2022', '2322', '2463', '3300'],
],
- [LogFieldName.UID, ['N/A', '1000', '1003', '10169', '10235', '10239']],
+ [LogFieldType.UID, ['N/A', '1000', '1003', '10169', '10235', '10239']],
[
- LogFieldName.TRANSACTION_TYPE,
+ LogFieldType.TRANSACTION_TYPE,
[
'DISPLAY_CHANGED',
'LAYER_ADDED',
@@ -64,16 +64,16 @@
'NO_OP',
],
],
- [LogFieldName.TRANSACTION_ID, 1295],
- [LogFieldName.LAYER_OR_DISPLAY_ID, 117],
+ [LogFieldType.TRANSACTION_ID, 1295],
+ [LogFieldType.LAYER_OR_DISPLAY_ID, 117],
]);
- override readonly filterValuesToSet = new Map<LogFieldName, string[][]>([
- [LogFieldName.TRANSACTION_ID, [[], ['2211908157465']]],
- [LogFieldName.VSYNC_ID, [[], ['1'], ['1', '3', '10']]],
- [LogFieldName.PID, [[], ['0'], ['0', '515']]],
- [LogFieldName.UID, [[], ['1000'], ['1000', '1003']]],
+ override readonly filterValuesToSet = new Map<LogFieldType, string[][]>([
+ [LogFieldType.TRANSACTION_ID, [[], ['2211908157465']]],
+ [LogFieldType.VSYNC_ID, [[], ['1'], ['1', '3', '10']]],
+ [LogFieldType.PID, [[], ['0'], ['0', '515']]],
+ [LogFieldType.UID, [[], ['1000'], ['1000', '1003']]],
[
- LogFieldName.TRANSACTION_TYPE,
+ LogFieldType.TRANSACTION_TYPE,
[
[],
[TransactionsEntryType.LAYER_ADDED],
@@ -83,17 +83,17 @@
],
],
],
- [LogFieldName.LAYER_OR_DISPLAY_ID, [[], ['1'], ['1', '3']]],
- [LogFieldName.FLAGS, [[], ['Crop'], ['STRING_WITH_NO_MATCHES']]],
+ [LogFieldType.LAYER_OR_DISPLAY_ID, [[], ['1'], ['1', '3']]],
+ [LogFieldType.FLAGS, [[], ['Crop'], ['STRING_WITH_NO_MATCHES']]],
]);
override readonly expectedFieldValuesAfterFilter = new Map<
- LogFieldName,
+ LogFieldType,
Array<LogFieldValue[] | number>
>([
- [LogFieldName.TRANSACTION_ID, [this.totalOutputEntries, ['2211908157465']]],
- [LogFieldName.VSYNC_ID, [this.totalOutputEntries, [1], [1, 3, 10]]],
+ [LogFieldType.TRANSACTION_ID, [this.totalOutputEntries, ['2211908157465']]],
+ [LogFieldType.VSYNC_ID, [this.totalOutputEntries, [1], [1, 3, 10]]],
[
- LogFieldName.PID,
+ LogFieldType.PID,
[
['N/A', '0', '515', '1593', '2022', '2322', '2463', '3300'],
['0'],
@@ -101,7 +101,7 @@
],
],
[
- LogFieldName.UID,
+ LogFieldType.UID,
[
['N/A', '1000', '1003', '10169', '10235', '10239'],
['1000'],
@@ -109,7 +109,7 @@
],
],
[
- LogFieldName.TRANSACTION_TYPE,
+ LogFieldType.TRANSACTION_TYPE,
[
[
TransactionsEntryType.DISPLAY_CHANGED,
@@ -127,13 +127,13 @@
],
],
[
- LogFieldName.LAYER_OR_DISPLAY_ID,
+ LogFieldType.LAYER_OR_DISPLAY_ID,
[this.totalOutputEntries, ['1'], ['1', '3']],
],
- [LogFieldName.FLAGS, [this.totalOutputEntries, 980, 0]],
+ [LogFieldType.FLAGS, [this.totalOutputEntries, 980, 0]],
]);
override readonly logEntryClickIndex = 10;
- override readonly filterNameForCurrentIndexTest = LogFieldName.PID;
+ override readonly filterNameForCurrentIndexTest = LogFieldType.PID;
override readonly filterChangeForCurrentIndexTest = ['0'];
override readonly secondFilterChangeForCurrentIndexTest = ['0', '515'];
override readonly expectedCurrentIndexAfterFilterChange = 10;
@@ -158,11 +158,11 @@
});
it('includes no op transitions', async () => {
- await presenter.onFilterChange(LogFieldName.TRANSACTION_TYPE, [
+ await presenter.onFilterChange(LogFieldType.TRANSACTION_TYPE, [
TransactionsEntryType.NO_OP,
]);
const fieldValues = assertDefined(uiData).entries.map((entry) =>
- getFieldValue(entry, LogFieldName.TRANSACTION_TYPE),
+ getFieldValue(entry, LogFieldType.TRANSACTION_TYPE),
);
expect(new Set(fieldValues)).toEqual(
new Set([TransactionsEntryType.NO_OP]),
@@ -170,15 +170,15 @@
for (const entry of assertDefined(uiData).entries) {
expect(
- getFieldValue(entry, LogFieldName.LAYER_OR_DISPLAY_ID),
+ getFieldValue(entry, LogFieldType.LAYER_OR_DISPLAY_ID),
).toEqual('');
- expect(getFieldValue(entry, LogFieldName.FLAGS)).toEqual('');
+ expect(getFieldValue(entry, LogFieldType.FLAGS)).toEqual('');
expect(entry.propertiesTree).toEqual(undefined);
}
});
- function getFieldValue(entry: LogEntry, logFieldName: LogFieldName) {
- return entry.fields.find((f) => f.name === logFieldName)?.value;
+ function getFieldValue(entry: LogEntry, logFieldName: LogFieldType) {
+ return entry.fields.find((f) => f.type === logFieldName)?.value;
}
});
}
diff --git a/tools/winscope/src/viewers/viewer_transactions/scroll_strategy/transactions_scroll_strategy.ts b/tools/winscope/src/viewers/viewer_transactions/scroll_strategy/transactions_scroll_strategy.ts
index 585b9ce..98b4664 100644
--- a/tools/winscope/src/viewers/viewer_transactions/scroll_strategy/transactions_scroll_strategy.ts
+++ b/tools/winscope/src/viewers/viewer_transactions/scroll_strategy/transactions_scroll_strategy.ts
@@ -15,7 +15,7 @@
*/
import {assertDefined} from 'common/assert_utils';
-import {LogFieldName} from 'viewers/common/ui_data_log';
+import {LogFieldType} from 'viewers/common/ui_data_log';
import {VariableHeightScrollStrategy} from 'viewers/common/variable_height_scroll_strategy';
import {TransactionsEntry} from 'viewers/viewer_transactions/ui_data';
@@ -26,7 +26,7 @@
protected override predictScrollItemHeight(entry: TransactionsEntry): number {
const flagsHeight = this.subItemHeight(
- assertDefined(entry.fields.find((f) => f.name === LogFieldName.FLAGS))
+ assertDefined(entry.fields.find((f) => f.type === LogFieldType.FLAGS))
.value as string,
this.flagCharsPerRow,
);
diff --git a/tools/winscope/src/viewers/viewer_transactions/viewer_transactions_component_test.ts b/tools/winscope/src/viewers/viewer_transactions/viewer_transactions_component_test.ts
index 5bcd7d1..565e55f 100644
--- a/tools/winscope/src/viewers/viewer_transactions/viewer_transactions_component_test.ts
+++ b/tools/winscope/src/viewers/viewer_transactions/viewer_transactions_component_test.ts
@@ -38,7 +38,7 @@
import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
import {LogComponent} from 'viewers/common/log_component';
import {executeScrollComponentTests} from 'viewers/common/scroll_component_test_utils';
-import {LogFieldName} from 'viewers/common/ui_data_log';
+import {LogFieldType} from 'viewers/common/ui_data_log';
import {UiPropertyTreeNode} from 'viewers/common/ui_property_tree_node';
import {CollapsedSectionsComponent} from 'viewers/components/collapsed_sections_component';
import {CollapsibleSectionTitleComponent} from 'viewers/components/collapsible_section_title_component';
@@ -152,16 +152,16 @@
const entry1 = new TransactionsEntry(
trace.getEntry(0),
[
- {name: LogFieldName.VSYNC_ID, value: -111},
- {name: LogFieldName.PID, value: 'PID_VALUE'},
- {name: LogFieldName.UID, value: 'UID_VALUE'},
- {name: LogFieldName.TRANSACTION_TYPE, value: 'TYPE_VALUE'},
+ {type: LogFieldType.VSYNC_ID, value: -111},
+ {type: LogFieldType.PID, value: 'PID_VALUE'},
+ {type: LogFieldType.UID, value: 'UID_VALUE'},
+ {type: LogFieldType.TRANSACTION_TYPE, value: 'TYPE_VALUE'},
{
- name: LogFieldName.LAYER_OR_DISPLAY_ID,
+ type: LogFieldType.LAYER_OR_DISPLAY_ID,
value: 'LAYER_OR_DISPLAY_ID_VALUE',
},
- {name: LogFieldName.TRANSACTION_ID, value: 'TRANSACTION_ID_VALUE'},
- {name: LogFieldName.FLAGS, value: 'flag1 | flag2'},
+ {type: LogFieldType.TRANSACTION_ID, value: 'TRANSACTION_ID_VALUE'},
+ {type: LogFieldType.FLAGS, value: 'flag1 | flag2'},
],
propertiesTree,
);
@@ -169,42 +169,42 @@
const entry2 = new TransactionsEntry(
trace.getEntry(1),
[
- {name: LogFieldName.VSYNC_ID, value: -222},
- {name: LogFieldName.PID, value: 'PID_VALUE_2'},
- {name: LogFieldName.UID, value: 'UID_VALUE_2'},
- {name: LogFieldName.TRANSACTION_TYPE, value: 'TYPE_VALUE_2'},
+ {type: LogFieldType.VSYNC_ID, value: -222},
+ {type: LogFieldType.PID, value: 'PID_VALUE_2'},
+ {type: LogFieldType.UID, value: 'UID_VALUE_2'},
+ {type: LogFieldType.TRANSACTION_TYPE, value: 'TYPE_VALUE_2'},
{
- name: LogFieldName.LAYER_OR_DISPLAY_ID,
+ type: LogFieldType.LAYER_OR_DISPLAY_ID,
value: 'LAYER_OR_DISPLAY_ID_VALUE_2',
},
- {name: LogFieldName.TRANSACTION_ID, value: 'TRANSACTION_ID_VALUE_2'},
- {name: LogFieldName.FLAGS, value: 'flag3 | flag4'},
+ {type: LogFieldType.TRANSACTION_ID, value: 'TRANSACTION_ID_VALUE_2'},
+ {type: LogFieldType.FLAGS, value: 'flag3 | flag4'},
],
propertiesTree,
);
return new UiData(
[
- {name: LogFieldName.VSYNC_ID, options: ['-111', '-222']},
- {name: LogFieldName.PID, options: ['PID_VALUE', 'PID_VALUE_2']},
- {name: LogFieldName.UID, options: ['UID_VALUE', 'UID_VALUE_2']},
+ {type: LogFieldType.VSYNC_ID, options: ['-111', '-222']},
+ {type: LogFieldType.PID, options: ['PID_VALUE', 'PID_VALUE_2']},
+ {type: LogFieldType.UID, options: ['UID_VALUE', 'UID_VALUE_2']},
{
- name: LogFieldName.TRANSACTION_TYPE,
+ type: LogFieldType.TRANSACTION_TYPE,
options: ['TYPE_VALUE', 'TYPE_VALUE_2'],
},
{
- name: LogFieldName.LAYER_OR_DISPLAY_ID,
+ type: LogFieldType.LAYER_OR_DISPLAY_ID,
options: [
'LAYER_OR_DISPLAY_ID_VALUE',
'LAYER_OR_DISPLAY_ID_VALUE_2',
],
},
{
- name: LogFieldName.TRANSACTION_ID,
+ type: LogFieldType.TRANSACTION_ID,
options: ['TRANSACTION_ID_VALUE', 'TRANSACTION_ID_VALUE_2'],
},
{
- name: LogFieldName.FLAGS,
+ type: LogFieldType.FLAGS,
options: ['flag1', 'flag2', 'flag3', 'flag4'],
},
],
@@ -250,20 +250,20 @@
const entry = new TransactionsEntry(
trace.getEntry(0),
[
- {name: LogFieldName.VSYNC_ID, value: -111},
- {name: LogFieldName.PID, value: 'PID_VALUE'},
- {name: LogFieldName.UID, value: 'UID_VALUE'},
- {name: LogFieldName.TRANSACTION_TYPE, value: 'TYPE_VALUE'},
+ {type: LogFieldType.VSYNC_ID, value: -111},
+ {type: LogFieldType.PID, value: 'PID_VALUE'},
+ {type: LogFieldType.UID, value: 'UID_VALUE'},
+ {type: LogFieldType.TRANSACTION_TYPE, value: 'TYPE_VALUE'},
{
- name: LogFieldName.LAYER_OR_DISPLAY_ID,
+ type: LogFieldType.LAYER_OR_DISPLAY_ID,
value: 'LAYER_OR_DISPLAY_ID_VALUE',
},
{
- name: LogFieldName.TRANSACTION_ID,
+ type: LogFieldType.TRANSACTION_ID,
value: 'TRANSACTION_ID_VALUE',
},
{
- name: LogFieldName.FLAGS,
+ type: LogFieldType.FLAGS,
value: i % 2 === 0 ? shortMessage : longMessage,
},
],
diff --git a/tools/winscope/src/viewers/viewer_transitions/presenter.ts b/tools/winscope/src/viewers/viewer_transitions/presenter.ts
index 7019af1..57fbbb2 100644
--- a/tools/winscope/src/viewers/viewer_transitions/presenter.ts
+++ b/tools/winscope/src/viewers/viewer_transitions/presenter.ts
@@ -27,18 +27,18 @@
} from 'viewers/common/abstract_log_viewer_presenter';
import {LogPresenter} from 'viewers/common/log_presenter';
import {PropertiesPresenter} from 'viewers/common/properties_presenter';
-import {LogField, LogFieldName} from 'viewers/common/ui_data_log';
+import {LogField, LogFieldType} from 'viewers/common/ui_data_log';
import {UpdateTransitionChangesNames} from './operations/update_transition_changes_names';
import {TransitionsEntry, TransitionStatus, UiData} from './ui_data';
export class Presenter extends AbstractLogViewerPresenter {
- static readonly FIELD_NAMES = [
- LogFieldName.TRANSITION_ID,
- LogFieldName.TRANSITION_TYPE,
- LogFieldName.SEND_TIME,
- LogFieldName.DISPATCH_TIME,
- LogFieldName.DURATION,
- LogFieldName.STATUS,
+ static readonly FIELD_TYPES = [
+ LogFieldType.TRANSITION_ID,
+ LogFieldType.TRANSITION_TYPE,
+ LogFieldType.SEND_TIME,
+ LogFieldType.DISPATCH_TIME,
+ LogFieldType.DURATION,
+ LogFieldType.STATUS,
];
private static readonly VALUE_NA = 'N/A';
@@ -99,7 +99,7 @@
const allEntries = await this.makeUiDataEntries();
this.logPresenter.setAllEntries(allEntries);
- this.logPresenter.setHeaders(Presenter.FIELD_NAMES);
+ this.logPresenter.setHeaders(Presenter.FIELD_TYPES);
this.refreshUIData(UiData.EMPTY);
this.isInitialized = true;
}
@@ -114,7 +114,7 @@
private sortTransitions(transitions: TransitionsEntry[]) {
const getId = (a: TransitionsEntry) =>
- assertDefined(a.fields.find((f) => f.name === LogFieldName.TRANSITION_ID))
+ assertDefined(a.fields.find((f) => f.type === LogFieldType.TRANSITION_ID))
.value;
transitions.sort((a: TransitionsEntry, b: TransitionsEntry) => {
return getId(a) <= getId(b) ? -1 : 1;
@@ -158,33 +158,33 @@
const fields: LogField[] = [
{
- name: LogFieldName.TRANSITION_ID,
+ type: LogFieldType.TRANSITION_ID,
value: assertDefined(transitionNode.getChildByName('id')).getValue(),
},
{
- name: LogFieldName.TRANSITION_TYPE,
+ type: LogFieldType.TRANSITION_TYPE,
value: wmDataNode.getChildByName('type')?.formattedValue() ?? 'NONE',
},
{
- name: LogFieldName.SEND_TIME,
+ type: LogFieldType.SEND_TIME,
value:
wmDataNode.getChildByName('sendTimeNs')?.getValue() ??
Presenter.VALUE_NA,
},
{
- name: LogFieldName.DISPATCH_TIME,
+ type: LogFieldType.DISPATCH_TIME,
value:
shellDataNode.getChildByName('dispatchTimeNs')?.getValue() ??
Presenter.VALUE_NA,
},
{
- name: LogFieldName.DURATION,
+ type: LogFieldType.DURATION,
value:
transitionNode.getChildByName('duration')?.formattedValue() ??
Presenter.VALUE_NA,
},
{
- name: LogFieldName.STATUS,
+ type: LogFieldType.STATUS,
value: status ?? Presenter.VALUE_NA,
icon: statusIcon,
iconColor: statusIconColor,
diff --git a/tools/winscope/src/viewers/viewer_transitions/ui_data.ts b/tools/winscope/src/viewers/viewer_transitions/ui_data.ts
index e2d6a83..03226e4 100644
--- a/tools/winscope/src/viewers/viewer_transitions/ui_data.ts
+++ b/tools/winscope/src/viewers/viewer_transitions/ui_data.ts
@@ -19,14 +19,14 @@
import {
LogEntry,
LogField,
- LogFieldName,
+ LogFieldType,
UiDataLog,
} from 'viewers/common/ui_data_log';
import {UiPropertyTreeNode} from 'viewers/common/ui_property_tree_node';
export class UiData implements UiDataLog {
constructor(
- public headers: LogFieldName[],
+ public headers: LogFieldType[],
public entries: LogEntry[],
public selectedIndex: undefined | number,
public scrollToIndex: undefined | number,
diff --git a/tools/winscope/src/viewers/viewer_transitions/viewer_transitions_component_test.ts b/tools/winscope/src/viewers/viewer_transitions/viewer_transitions_component_test.ts
index 42bf348..765f25e 100644
--- a/tools/winscope/src/viewers/viewer_transitions/viewer_transitions_component_test.ts
+++ b/tools/winscope/src/viewers/viewer_transitions/viewer_transitions_component_test.ts
@@ -30,7 +30,7 @@
import {Trace, TraceEntry} from 'trace/trace';
import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
import {LogComponent} from 'viewers/common/log_component';
-import {LogField, LogFieldName} from 'viewers/common/ui_data_log';
+import {LogField, LogFieldType} from 'viewers/common/ui_data_log';
import {CollapsedSectionsComponent} from 'viewers/components/collapsed_sections_component';
import {CollapsibleSectionTitleComponent} from 'viewers/components/collapsible_section_title_component';
import {PropertiesComponent} from 'viewers/components/properties_component';
@@ -147,7 +147,7 @@
const uiData = UiData.EMPTY;
uiData.entries = transitions;
uiData.selectedIndex = 0;
- uiData.headers = Presenter.FIELD_NAMES;
+ uiData.headers = Presenter.FIELD_TYPES;
return uiData;
}
@@ -160,31 +160,31 @@
): TransitionsEntry {
const fields: LogField[] = [
{
- name: LogFieldName.TRANSITION_ID,
+ type: LogFieldType.TRANSITION_ID,
value: id,
},
{
- name: LogFieldName.TRANSITION_TYPE,
+ type: LogFieldType.TRANSITION_TYPE,
value: 'TO_FRONT',
},
{
- name: LogFieldName.SEND_TIME,
+ type: LogFieldType.SEND_TIME,
value: TimestampConverterUtils.makeElapsedTimestamp(
BigInt(sendTimeNanos),
),
},
{
- name: LogFieldName.DISPATCH_TIME,
+ type: LogFieldType.DISPATCH_TIME,
value: TimestampConverterUtils.makeElapsedTimestamp(
BigInt(sendTimeNanos) + 5n,
),
},
{
- name: LogFieldName.DURATION,
+ type: LogFieldType.DURATION,
value: (finishTimeNanos - sendTimeNanos).toString() + 'ns',
},
{
- name: LogFieldName.STATUS,
+ type: LogFieldType.STATUS,
value: status,
icon: 'check',
iconColor: 'green',