• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright 2020, 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// Imports all the compiled common Flicker library classes and exports them
18// as clean es6 modules rather than having them be commonjs modules
19
20// WM
21const WindowManagerTrace = require('flicker').com.android.server.wm.traces.
22    common.windowmanager.WindowManagerTrace;
23const WindowManagerState = require('flicker').com.android.server.wm.traces.
24    common.windowmanager.WindowManagerState;
25const Activity = require('flicker').com.android.server.wm.traces.common.
26    windowmanager.windows.Activity;
27const Configuration = require('flicker').com.android.server.wm.traces.common.
28    windowmanager.windows.Configuration;
29const ConfigurationContainer = require('flicker').com.android.server.wm.traces.
30    common.windowmanager.windows.ConfigurationContainer;
31const DisplayArea = require('flicker').com.android.server.wm.traces.common.
32    windowmanager.windows.DisplayArea;
33const DisplayContent = require('flicker').com.android.server.wm.traces.common.
34    windowmanager.windows.DisplayContent;
35const KeyguardControllerState = require('flicker').com.android.server.wm.
36    traces.common.windowmanager.windows.KeyguardControllerState;
37const RootWindowContainer = require('flicker').com.android.server.wm.traces.
38    common.windowmanager.windows.RootWindowContainer;
39const Task = require('flicker').com.android.server.wm.traces.common.
40    windowmanager.windows.Task;
41const TaskFragment = require('flicker').com.android.server.wm.traces.common.
42    windowmanager.windows.TaskFragment;
43const WindowConfiguration = require('flicker').com.android.server.wm.traces.
44    common.windowmanager.windows.WindowConfiguration;
45const WindowContainer = require('flicker').com.android.server.wm.traces.common.
46    windowmanager.windows.WindowContainer;
47const WindowLayoutParams= require('flicker').com.android.server.wm.traces.
48    common.windowmanager.windows.WindowLayoutParams;
49const WindowManagerPolicy = require('flicker').com.android.server.wm.traces.
50    common.windowmanager.windows.WindowManagerPolicy;
51const WindowState = require('flicker').com.android.server.wm.traces.common.
52    windowmanager.windows.WindowState;
53const WindowToken = require('flicker').com.android.server.wm.traces.common.
54    windowmanager.windows.WindowToken;
55
56// SF
57const Layer = require('flicker').com.android.server.wm.traces.common.
58    layers.Layer;
59const BaseLayerTraceEntry = require('flicker').com.android.server.wm.traces.common.
60    layers.BaseLayerTraceEntry;
61const LayerTraceEntry = require('flicker').com.android.server.wm.traces.common.
62    layers.LayerTraceEntry;
63const LayerTraceEntryBuilder = require('flicker').com.android.server.wm.traces.
64    common.layers.LayerTraceEntryBuilder;
65const LayersTrace = require('flicker').com.android.server.wm.traces.common.
66    layers.LayersTrace;
67const Matrix22 = require('flicker').com.android.server.wm.traces.common
68    .Matrix22;
69const Matrix33 = require('flicker').com.android.server.wm.traces.common
70    .Matrix33;
71const Transform = require('flicker').com.android.server.wm.traces.common.
72    layers.Transform;
73const Display = require('flicker').com.android.server.wm.traces.common.
74    layers.Display;
75
76// Common
77const Size = require('flicker').com.android.server.wm.traces.common.Size;
78const ActiveBuffer = require('flicker').com.android.server.wm.traces.common
79    .ActiveBuffer;
80const Color3 = require('flicker').com.android.server.wm.traces.common.Color3;
81const Color = require('flicker').com.android.server.wm.traces.common.Color;
82const Point = require('flicker').com.android.server.wm.traces.common.Point;
83const Rect = require('flicker').com.android.server.wm.traces.common.Rect;
84const RectF = require('flicker').com.android.server.wm.traces.common.RectF;
85const Region = require('flicker').com.android.server.wm.traces.common.region.Region;
86
87//Tags
88const Tag = require('flicker').com.android.server.wm.traces.common.tags.Tag;
89const TagState = require('flicker').com.android.server.wm.traces.common.tags.TagState;
90const TagTrace = require('flicker').com.android.server.wm.traces.common.tags.TagTrace;
91
92//Errors
93const Error = require('flicker').com.android.server.wm.traces.common.errors.Error;
94const ErrorState = require('flicker').com.android.server.wm.traces.common.errors.ErrorState;
95const ErrorTrace = require('flicker').com.android.server.wm.traces.common.errors.ErrorTrace;
96
97// Service
98const TaggingEngine = require('flicker').com.android.server.wm.traces.common.service.TaggingEngine;
99
100const EMPTY_BUFFER = new ActiveBuffer(0, 0, 0, 0);
101const EMPTY_COLOR3 = new Color3(-1, -1, -1);
102const EMPTY_COLOR = new Color(-1, -1, -1, 0);
103const EMPTY_RECT = new Rect(0, 0, 0, 0);
104const EMPTY_RECTF = new RectF(0, 0, 0, 0);
105const EMPTY_POINT = new Point(0, 0);
106const EMPTY_MATRIX22 = new Matrix22(0, 0, 0, 0, 0, 0);
107const EMPTY_MATRIX33 = new Matrix33(0, 0, 0, 0, 0, 0);
108const EMPTY_TRANSFORM = new Transform(0, EMPTY_MATRIX33);
109
110function toSize(proto) {
111  if (proto == null) {
112    return EMPTY_BOUNDS;
113  }
114  const width = proto.width ?? proto.w ?? 0;
115  const height = proto.height ?? proto.h ?? 0;
116  if (width || height) {
117    return new Size(width, height);
118  }
119  return EMPTY_BOUNDS;
120}
121
122function toActiveBuffer(proto) {
123  const width = proto?.width ?? 0;
124  const height = proto?.height ?? 0;
125  const stride = proto?.stride ?? 0;
126  const format = proto?.format ?? 0;
127
128  if (width || height || stride || format) {
129    return new ActiveBuffer(width, height, stride, format);
130  }
131  return EMPTY_BUFFER;
132}
133
134function toColor3(proto) {
135  if (proto == null) {
136    return EMPTY_COLOR;
137  }
138  const r = proto.r ?? 0;
139  const g = proto.g ?? 0;
140  const b = proto.b ?? 0;
141  if (r || g || b) {
142    return new Color3(r, g, b);
143  }
144  return EMPTY_COLOR3;
145}
146
147function toColor(proto) {
148  if (proto == null) {
149    return EMPTY_COLOR;
150  }
151  const r = proto.r ?? 0;
152  const g = proto.g ?? 0;
153  const b = proto.b ?? 0;
154  const a = proto.a ?? 0;
155  if (r || g || b || a) {
156    return new Color(r, g, b, a);
157  }
158  return EMPTY_COLOR;
159}
160
161function toPoint(proto) {
162  if (proto == null) {
163    return null;
164  }
165  const x = proto.x ?? 0;
166  const y = proto.y ?? 0;
167  if (x || y) {
168    return new Point(x, y);
169  }
170  return EMPTY_POINT;
171}
172
173function toRect(proto) {
174  if (proto == null) {
175    return EMPTY_RECT;
176  }
177
178  const left = proto?.left ?? 0;
179  const top = proto?.top ?? 0;
180  const right = proto?.right ?? 0;
181  const bottom = proto?.bottom ?? 0;
182  if (left || top || right || bottom) {
183    return new Rect(left, top, right, bottom);
184  }
185  return EMPTY_RECT;
186}
187
188function toRectF(proto) {
189  if (proto == null) {
190    return EMPTY_RECTF;
191  }
192
193  const left = proto?.left ?? 0;
194  const top = proto?.top ?? 0;
195  const right = proto?.right ?? 0;
196  const bottom = proto?.bottom ?? 0;
197  if (left || top || right || bottom) {
198    return new RectF(left, top, right, bottom);
199  }
200  return EMPTY_RECTF;
201}
202
203function toRegion(proto) {
204  if (proto == null) {
205    return null;
206  }
207
208  const rects = [];
209  for (let x = 0; x < proto.rect.length; x++) {
210    const rect = proto.rect[x];
211    const parsedRect = toRect(rect);
212    rects.push(parsedRect);
213  }
214
215  return new Region(rects);
216}
217
218function toTransform(proto) {
219  if (proto == null) {
220    return EMPTY_TRANSFORM;
221  }
222  const dsdx = proto.dsdx ?? 0;
223  const dtdx = proto.dtdx ?? 0;
224  const tx = proto.tx ?? 0;
225  const dsdy = proto.dsdy ?? 0;
226  const dtdy = proto.dtdy ?? 0;
227  const ty = proto.ty ?? 0;
228
229  if (dsdx || dtdx || tx || dsdy || dtdy || ty) {
230    const matrix = new Matrix33(dsdx, dtdx, tx, dsdy, dtdy, ty);
231    return new Transform(proto.type ?? 0, matrix);
232  }
233
234  if (proto.type) {
235    return new Transform(proto.type ?? 0, EMPTY_MATRIX33);
236  }
237  return EMPTY_TRANSFORM;
238}
239
240function toMatrix22(proto) {
241  if (proto == null) {
242    return EMPTY_MATRIX22;
243  }
244  const dsdx = proto.dsdx ?? 0;
245  const dtdx = proto.dtdx ?? 0;
246  const dsdy = proto.dsdy ?? 0;
247  const dtdy = proto.dtdy ?? 0;
248
249  if (dsdx || dtdx || dsdy || dtdy) {
250    return new Matrix22(dsdx, dtdx, dsdy, dtdy);
251  }
252
253  return EMPTY_MATRIX22;
254}
255
256export {
257  Activity,
258  Configuration,
259  ConfigurationContainer,
260  DisplayArea,
261  DisplayContent,
262  KeyguardControllerState,
263  RootWindowContainer,
264  Task,
265  TaskFragment,
266  WindowConfiguration,
267  WindowContainer,
268  WindowState,
269  WindowToken,
270  WindowLayoutParams,
271  WindowManagerPolicy,
272  WindowManagerTrace,
273  WindowManagerState,
274  // SF
275  BaseLayerTraceEntry,
276  Layer,
277  LayerTraceEntry,
278  LayerTraceEntryBuilder,
279  LayersTrace,
280  Transform,
281  Matrix22,
282  Matrix33,
283  Display,
284  // Tags
285  Tag,
286  TagState,
287  TagTrace,
288  // Errors
289  Error,
290  ErrorState,
291  ErrorTrace,
292  // Common
293  Size,
294  ActiveBuffer,
295  Color,
296  Color3,
297  Point,
298  Rect,
299  RectF,
300  Region,
301  // Service
302  TaggingEngine,
303  toSize,
304  toActiveBuffer,
305  toColor,
306  toColor3,
307  toPoint,
308  toRect,
309  toRectF,
310  toRegion,
311  toMatrix22,
312  toTransform,
313};
314