Minor import fixes
- Remove legacy transform_utils
- Update imports
- Fix a few more imports to relative path
Bug: 311642700
Test: npm run test:unit:ci
Change-Id: Iea0e47f8c0f7167cc7d72e846520104980f152aa
diff --git a/tools/winscope/src/common/geometry/transform_utils.ts b/tools/winscope/src/common/geometry/transform_utils.ts
index b6844fa..5ef9eef 100644
--- a/tools/winscope/src/common/geometry/transform_utils.ts
+++ b/tools/winscope/src/common/geometry/transform_utils.ts
@@ -14,10 +14,7 @@
* limitations under the License.
*/
-import {
- IDENTITY_MATRIX,
- TransformMatrix,
-} from 'common/geometry/transform_matrix';
+import {IDENTITY_MATRIX, TransformMatrix} from './transform_matrix';
export enum TransformTypeFlags {
EMPTY = 0x0,
diff --git a/tools/winscope/src/messaging/progress_listener_stub.ts b/tools/winscope/src/messaging/progress_listener_stub.ts
index f980c08..6ba5da0 100644
--- a/tools/winscope/src/messaging/progress_listener_stub.ts
+++ b/tools/winscope/src/messaging/progress_listener_stub.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import {ProgressListener} from 'messaging/progress_listener';
+import {ProgressListener} from './progress_listener';
export class ProgressListenerStub implements ProgressListener {
onProgressUpdate() {
diff --git a/tools/winscope/src/parsers/operations/set_formatters_test.ts b/tools/winscope/src/parsers/operations/set_formatters_test.ts
index fed6cf0..f1210c3 100644
--- a/tools/winscope/src/parsers/operations/set_formatters_test.ts
+++ b/tools/winscope/src/parsers/operations/set_formatters_test.ts
@@ -15,6 +15,7 @@
*/
import {assertDefined} from 'common/assert_utils';
+import {TransformTypeFlags} from 'common/geometry/transform_utils';
import {TimestampConverterUtils} from 'common/time/test_utils';
import {
TamperedMessageType,
@@ -23,7 +24,6 @@
import root from 'protos/test/fake_proto/json';
import {PropertyTreeBuilder} from 'test/unit/property_tree_builder';
import {TreeNodeUtils} from 'test/unit/tree_node_utils';
-import {TransformTypeFlags} from 'trace/surface_flinger/transform_utils';
import {EMPTY_OBJ_STRING, LAYER_ID_FORMATTER} from 'trace/tree_node/formatters';
import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
import {SetFormatters} from './set_formatters';
diff --git a/tools/winscope/src/parsers/surface_flinger/operations/update_transforms.ts b/tools/winscope/src/parsers/surface_flinger/operations/update_transforms.ts
index 94626f0..8389b55 100644
--- a/tools/winscope/src/parsers/surface_flinger/operations/update_transforms.ts
+++ b/tools/winscope/src/parsers/surface_flinger/operations/update_transforms.ts
@@ -14,7 +14,9 @@
* limitations under the License.
*/
-import {Transform} from 'trace/surface_flinger/transform_utils';
+import {assertDefined} from 'common/assert_utils';
+import {TransformMatrix} from 'common/geometry/transform_matrix';
+import {Transform, TransformType} from 'common/geometry/transform_utils';
import {Operation} from 'trace/tree_node/operations/operation';
import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
import {DEFAULT_PROPERTY_TREE_NODE_FACTORY} from 'trace/tree_node/property_tree_node_factory';
@@ -54,7 +56,10 @@
this.adjustDeprecatedTransformNode(transformNode);
- const newMatrix = Transform.from(transformNode, positionNode).matrix;
+ const newMatrix = UpdateTransforms.createTransform(
+ transformNode,
+ positionNode,
+ ).matrix;
transformNode.addOrReplaceChild(
DEFAULT_PROPERTY_TREE_NODE_FACTORY.makeCalculatedProperty(
transformNode.id,
@@ -92,4 +97,47 @@
DEFAULT_PROPERTY_TREE_NODE_FACTORY.makeProtoProperty(id, 'dsdy', dsdy),
);
}
+
+ static createTransform(
+ transformNode: PropertyTreeNode,
+ position?: PropertyTreeNode,
+ ): Transform {
+ if (transformNode.getAllChildren().length === 0) return Transform.EMPTY;
+
+ const transformType = transformNode.getChildByName('type')?.getValue() ?? 0;
+ const matrixNode = transformNode.getChildByName('matrix');
+
+ if (matrixNode) {
+ return new Transform(
+ transformType,
+ TransformMatrix.from({
+ dsdx: assertDefined(matrixNode.getChildByName('dsdx')).getValue(),
+ dtdx: assertDefined(matrixNode.getChildByName('dtdx')).getValue(),
+ tx: assertDefined(matrixNode.getChildByName('tx')).getValue(),
+ dtdy: assertDefined(matrixNode.getChildByName('dtdy')).getValue(),
+ dsdy: assertDefined(matrixNode.getChildByName('dsdy')).getValue(),
+ ty: assertDefined(matrixNode.getChildByName('ty')).getValue(),
+ }),
+ );
+ }
+
+ const x = position?.getChildByName('x')?.getValue() ?? 0;
+ const y = position?.getChildByName('y')?.getValue() ?? 0;
+
+ if (TransformType.isSimpleTransform(transformType)) {
+ return TransformType.getDefaultTransform(transformType, x, y);
+ }
+
+ return new Transform(
+ transformType,
+ TransformMatrix.from({
+ dsdx: transformNode.getChildByName('dsdx')?.getValue() ?? 0,
+ dtdx: transformNode.getChildByName('dtdx')?.getValue() ?? 0,
+ tx: x,
+ dtdy: transformNode.getChildByName('dtdy')?.getValue() ?? 0,
+ dsdy: transformNode.getChildByName('dsdy')?.getValue() ?? 0,
+ ty: y,
+ }),
+ );
+ }
}
diff --git a/tools/winscope/src/parsers/surface_flinger/operations/update_transforms_test.ts b/tools/winscope/src/parsers/surface_flinger/operations/update_transforms_test.ts
index 1126a6b..c6e6efb 100644
--- a/tools/winscope/src/parsers/surface_flinger/operations/update_transforms_test.ts
+++ b/tools/winscope/src/parsers/surface_flinger/operations/update_transforms_test.ts
@@ -15,9 +15,9 @@
*/
import {assertDefined} from 'common/assert_utils';
+import {TransformTypeFlags} from 'common/geometry/transform_utils';
import {PropertyTreeBuilder} from 'test/unit/property_tree_builder';
import {TreeNodeUtils} from 'test/unit/tree_node_utils';
-import {TransformTypeFlags} from 'trace/surface_flinger/transform_utils';
import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
import {UpdateTransforms} from './update_transforms';
diff --git a/tools/winscope/src/test/unit/tree_node_utils.ts b/tools/winscope/src/test/unit/tree_node_utils.ts
index 4cf96d3..a716ff4 100644
--- a/tools/winscope/src/test/unit/tree_node_utils.ts
+++ b/tools/winscope/src/test/unit/tree_node_utils.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import {TransformTypeFlags} from 'trace/surface_flinger/transform_utils';
+import {TransformTypeFlags} from 'common/geometry/transform_utils';
import {HierarchyTreeNode} from 'trace/tree_node/hierarchy_tree_node';
import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
import {DEFAULT_PROPERTY_TREE_NODE_FACTORY} from 'trace/tree_node/property_tree_node_factory';
diff --git a/tools/winscope/src/trace/surface_flinger/transform_utils.ts b/tools/winscope/src/trace/surface_flinger/transform_utils.ts
deleted file mode 100644
index 833ada4..0000000
--- a/tools/winscope/src/trace/surface_flinger/transform_utils.ts
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import {assertDefined} from 'common/assert_utils';
-import {
- IDENTITY_MATRIX,
- TransformMatrix,
-} from 'common/geometry/transform_matrix';
-import {PropertyTreeNode} from 'trace/tree_node/property_tree_node';
-
-export enum TransformTypeFlags {
- EMPTY = 0x0,
- TRANSLATE_VAL = 0x0001,
- ROTATE_VAL = 0x0002,
- SCALE_VAL = 0x0004,
- FLIP_H_VAL = 0x0100,
- FLIP_V_VAL = 0x0200,
- ROT_90_VAL = 0x0400,
- ROT_INVALID_VAL = 0x8000,
-}
-
-export class Transform {
- static EMPTY = new Transform(TransformTypeFlags.EMPTY, IDENTITY_MATRIX);
-
- constructor(
- public type: TransformTypeFlags,
- public matrix: TransformMatrix,
- ) {}
-
- static from(
- transformNode: PropertyTreeNode,
- position?: PropertyTreeNode,
- ): Transform {
- if (transformNode.getAllChildren().length === 0) return Transform.EMPTY;
-
- const transformType = transformNode.getChildByName('type')?.getValue() ?? 0;
- const matrixNode = transformNode.getChildByName('matrix');
-
- if (matrixNode) {
- return new Transform(
- transformType,
- TransformMatrix.from({
- dsdx: assertDefined(matrixNode.getChildByName('dsdx')).getValue(),
- dtdx: assertDefined(matrixNode.getChildByName('dtdx')).getValue(),
- tx: assertDefined(matrixNode.getChildByName('tx')).getValue(),
- dtdy: assertDefined(matrixNode.getChildByName('dtdy')).getValue(),
- dsdy: assertDefined(matrixNode.getChildByName('dsdy')).getValue(),
- ty: assertDefined(matrixNode.getChildByName('ty')).getValue(),
- }),
- );
- }
-
- const x = position?.getChildByName('x')?.getValue() ?? 0;
- const y = position?.getChildByName('y')?.getValue() ?? 0;
-
- if (TransformType.isSimpleTransform(transformType)) {
- return TransformType.getDefaultTransform(transformType, x, y);
- }
-
- return new Transform(
- transformType,
- TransformMatrix.from({
- dsdx: transformNode.getChildByName('dsdx')?.getValue() ?? 0,
- dtdx: transformNode.getChildByName('dtdx')?.getValue() ?? 0,
- tx: x,
- dtdy: transformNode.getChildByName('dtdy')?.getValue() ?? 0,
- dsdy: transformNode.getChildByName('dsdy')?.getValue() ?? 0,
- ty: y,
- }),
- );
- }
-}
-
-export class TransformType {
- static getTypeFlags(type: TransformTypeFlags): string {
- const typeFlags: string[] = [];
-
- if (
- TransformType.isFlagClear(
- type,
- TransformTypeFlags.SCALE_VAL |
- TransformTypeFlags.ROTATE_VAL |
- TransformTypeFlags.TRANSLATE_VAL,
- )
- ) {
- typeFlags.push('IDENTITY');
- }
-
- if (TransformType.isFlagSet(type, TransformTypeFlags.SCALE_VAL)) {
- typeFlags.push('SCALE');
- }
-
- if (TransformType.isFlagSet(type, TransformTypeFlags.TRANSLATE_VAL)) {
- typeFlags.push('TRANSLATE');
- }
-
- if (TransformType.isFlagSet(type, TransformTypeFlags.ROT_INVALID_VAL)) {
- typeFlags.push('ROT_INVALID');
- } else if (
- TransformType.isFlagSet(
- type,
- TransformTypeFlags.ROT_90_VAL |
- TransformTypeFlags.FLIP_V_VAL |
- TransformTypeFlags.FLIP_H_VAL,
- )
- ) {
- typeFlags.push('ROT_270');
- } else if (
- TransformType.isFlagSet(
- type,
- TransformTypeFlags.FLIP_V_VAL | TransformTypeFlags.FLIP_H_VAL,
- )
- ) {
- typeFlags.push('ROT_180');
- } else {
- if (TransformType.isFlagSet(type, TransformTypeFlags.ROT_90_VAL)) {
- typeFlags.push('ROT_90');
- }
- if (TransformType.isFlagSet(type, TransformTypeFlags.FLIP_V_VAL)) {
- typeFlags.push('FLIP_V');
- }
- if (TransformType.isFlagSet(type, TransformTypeFlags.FLIP_H_VAL)) {
- typeFlags.push('FLIP_H');
- }
- }
-
- if (typeFlags.length === 0) {
- throw TransformType.makeUnknownTransformTypeError(type);
- }
- return typeFlags.join('|');
- }
-
- static getDefaultTransform(
- type: TransformTypeFlags,
- x: number,
- y: number,
- ): Transform {
- // IDENTITY
- if (!type) {
- return new Transform(
- type,
- TransformMatrix.from({
- dsdx: 1,
- dtdx: 0,
- tx: x,
- dtdy: 0,
- dsdy: 1,
- ty: y,
- }),
- );
- }
-
- // ROT_270 = ROT_90|FLIP_H|FLIP_V
- if (
- TransformType.isFlagSet(
- type,
- TransformTypeFlags.ROT_90_VAL |
- TransformTypeFlags.FLIP_V_VAL |
- TransformTypeFlags.FLIP_H_VAL,
- )
- ) {
- return new Transform(
- type,
- TransformMatrix.from({
- dsdx: 0,
- dtdx: -1,
- tx: x,
- dtdy: 1,
- dsdy: 0,
- ty: y,
- }),
- );
- }
-
- // ROT_180 = FLIP_H|FLIP_V
- if (
- TransformType.isFlagSet(
- type,
- TransformTypeFlags.FLIP_V_VAL | TransformTypeFlags.FLIP_H_VAL,
- )
- ) {
- return new Transform(
- type,
- TransformMatrix.from({
- dsdx: -1,
- dtdx: 0,
- tx: x,
- dtdy: 0,
- dsdy: -1,
- ty: y,
- }),
- );
- }
-
- // ROT_90
- if (TransformType.isFlagSet(type, TransformTypeFlags.ROT_90_VAL)) {
- return new Transform(
- type,
- TransformMatrix.from({
- dsdx: 0,
- dtdx: 1,
- tx: x,
- dtdy: -1,
- dsdy: 0,
- ty: y,
- }),
- );
- }
-
- // IDENTITY
- if (
- TransformType.isFlagClear(
- type,
- TransformTypeFlags.SCALE_VAL | TransformTypeFlags.ROTATE_VAL,
- )
- ) {
- return new Transform(
- type,
- TransformMatrix.from({
- dsdx: 1,
- dtdx: 0,
- tx: x,
- dtdy: 0,
- dsdy: 1,
- ty: y,
- }),
- );
- }
-
- throw TransformType.makeUnknownTransformTypeError(type);
- }
-
- static makeUnknownTransformTypeError(type: TransformTypeFlags): Error {
- return new Error(`Unknown transform type ${type} found in SF trace entry`);
- }
-
- static isSimpleTransform(type: TransformTypeFlags): boolean {
- return TransformType.isFlagClear(
- type,
- TransformTypeFlags.ROT_INVALID_VAL | TransformTypeFlags.SCALE_VAL,
- );
- }
-
- private static isFlagSet(type: TransformTypeFlags, bits: number): boolean {
- type = type || 0;
- return (type & bits) === bits;
- }
-
- private static isFlagClear(type: TransformTypeFlags, bits: number): boolean {
- return (type & bits) === 0;
- }
-}
diff --git a/tools/winscope/src/trace/trace_rect_builder.ts b/tools/winscope/src/trace/trace_rect_builder.ts
index 44d3b17..63e290e 100644
--- a/tools/winscope/src/trace/trace_rect_builder.ts
+++ b/tools/winscope/src/trace/trace_rect_builder.ts
@@ -17,7 +17,7 @@
import {CornerRadii} from 'common/geometry/corner_radii';
import {Region} from 'common/geometry/region';
import {TransformMatrix} from 'common/geometry/transform_matrix';
-import {Transform} from 'trace/surface_flinger/transform_utils';
+import {Transform} from 'common/geometry/transform_utils';
import {TraceRect} from './trace_rect';
export class TraceRectBuilder {
diff --git a/tools/winscope/src/trace/tree_node/formatters.ts b/tools/winscope/src/trace/tree_node/formatters.ts
index 2847a83..532c4bc 100644
--- a/tools/winscope/src/trace/tree_node/formatters.ts
+++ b/tools/winscope/src/trace/tree_node/formatters.ts
@@ -14,11 +14,11 @@
* limitations under the License.
*/
+import {TransformType} from 'common/geometry/transform_utils';
import {Timestamp} from 'common/time/time';
import {TimeDuration} from 'common/time/time_duration';
import {RawDataUtils} from 'parsers/raw_data_utils';
import {CujType} from 'trace/cujs/cuj_type';
-import {TransformType} from 'trace/surface_flinger/transform_utils';
import {PropertyTreeNode} from './property_tree_node';
const EMPTY_OBJ_STRING = '{empty}';
diff --git a/tools/winscope/src/trace/tree_node/formatters_test.ts b/tools/winscope/src/trace/tree_node/formatters_test.ts
index 355aa9c..8bb1ee4 100644
--- a/tools/winscope/src/trace/tree_node/formatters_test.ts
+++ b/tools/winscope/src/trace/tree_node/formatters_test.ts
@@ -16,9 +16,9 @@
import {assertDefined} from 'common/assert_utils';
import {IDENTITY_MATRIX} from 'common/geometry/transform_matrix';
+import {TransformTypeFlags} from 'common/geometry/transform_utils';
import {PropertyTreeBuilder} from 'test/unit/property_tree_builder';
import {TreeNodeUtils} from 'test/unit/tree_node_utils';
-import {TransformTypeFlags} from 'trace/surface_flinger/transform_utils';
import {
BUFFER_FORMATTER,
COLOR_FORMATTER,
diff --git a/tools/winscope/src/viewers/common/ui_rect_factory_test.ts b/tools/winscope/src/viewers/common/ui_rect_factory_test.ts
index 59cb0cb..1d946bb 100644
--- a/tools/winscope/src/viewers/common/ui_rect_factory_test.ts
+++ b/tools/winscope/src/viewers/common/ui_rect_factory_test.ts
@@ -15,9 +15,9 @@
*/
import {assertDefined} from 'common/assert_utils';
+import {Transform} from 'common/geometry/transform_utils';
import {HierarchyTreeBuilder} from 'test/unit/hierarchy_tree_builder';
import {PropertyTreeBuilder} from 'test/unit/property_tree_builder';
-import {Transform} from 'trace/surface_flinger/transform_utils';
import {TraceRectBuilder} from 'trace/trace_rect_builder';
import {HierarchyTreeNode} from 'trace/tree_node/hierarchy_tree_node';
import {UiRect} from 'viewers/components/rects/ui_rect';
diff --git a/tools/winscope/src/viewers/components/rects/canvas_test.ts b/tools/winscope/src/viewers/components/rects/canvas_test.ts
index 5c436a7..8fc9cd3 100644
--- a/tools/winscope/src/viewers/components/rects/canvas_test.ts
+++ b/tools/winscope/src/viewers/components/rects/canvas_test.ts
@@ -21,12 +21,12 @@
import {Distance} from 'common/geometry/distance';
import {Point3D} from 'common/geometry/point3d';
import {IDENTITY_MATRIX} from 'common/geometry/transform_matrix';
-import * as THREE from 'three';
-import {CSS2DObject} from 'three/examples/jsm/renderers/CSS2DRenderer';
import {
TransformType,
TransformTypeFlags,
-} from 'trace/surface_flinger/transform_utils';
+} from 'common/geometry/transform_utils';
+import * as THREE from 'three';
+import {CSS2DObject} from 'three/examples/jsm/renderers/CSS2DRenderer';
import {ViewerEvents} from 'viewers/common/viewer_events';
import {Camera} from './camera';
import {Canvas} from './canvas';
diff --git a/tools/winscope/src/viewers/viewer_input/presenter_test.ts b/tools/winscope/src/viewers/viewer_input/presenter_test.ts
index 98c604a..c3bd985 100644
--- a/tools/winscope/src/viewers/viewer_input/presenter_test.ts
+++ b/tools/winscope/src/viewers/viewer_input/presenter_test.ts
@@ -15,6 +15,7 @@
*/
import {assertDefined} from 'common/assert_utils';
+import {Transform} from 'common/geometry/transform_utils';
import {InMemoryStorage} from 'common/store/in_memory_storage';
import {TimestampConverterUtils} from 'common/time/test_utils';
import {TimeUtils} from 'common/time/time_utils';
@@ -30,7 +31,6 @@
import {InputColumnType} from 'trace/input/input_column_type';
import {InputEventType} from 'trace/input/input_event_type';
import {Parser} from 'trace/parser';
-import {Transform} from 'trace/surface_flinger/transform_utils';
import {Trace} from 'trace/trace';
import {TRACE_INFO} from 'trace/trace_info';
import {TraceRectBuilder} from 'trace/trace_rect_builder';