Update transactions transformations to be log-like
Test: N/A
Change-Id: I7a82f4812980e559dcbea69854691534221030f5
diff --git a/tools/winscope/src/App.vue b/tools/winscope/src/App.vue
index 0f6a2ac..3006507 100644
--- a/tools/winscope/src/App.vue
+++ b/tools/winscope/src/App.vue
@@ -57,7 +57,7 @@
import DataAdb from './DataAdb.vue'
import FileType from './mixins/FileType.js'
-const APP_NAME = "Winscope"
+const APP_NAME = "Winscope";
export default {
name: 'app',
diff --git a/tools/winscope/src/transform_transaction.js b/tools/winscope/src/transform_transaction.js
index 66e7c70..2873dbb 100644
--- a/tools/winscope/src/transform_transaction.js
+++ b/tools/winscope/src/transform_transaction.js
@@ -17,51 +17,52 @@
import { transform, nanos_to_string } from './transform.js'
function transform_transaction(transaction) {
- return transform({
- obj: transaction,
- kind: 'transaction',
- children: [[transaction.surfaceChange, transform_entry_type('surfaceChange')],
- [transaction.displayChange, transform_entry_type('displayChange')]],
- rects: [],
- visible: false,
- })
-}
+ const transactions = [];
-function transform_entry_type(transactionType) {
- function return_transform(item) {
- return Object.freeze({
- obj: item,
- kind: transactionType,
- collapsed: false,
- rects: [],
- visible: false,
- name: item.name || item.id || nanos_to_string(item.when),
- });
+ for (const surfaceChange of transaction.surfaceChange) {
+ transactions.push(Object.freeze({
+ type: 'surfaceChange',
+ obj: surfaceChange,
+ }));
}
- return transactionType === 'transaction' ? transform_transaction : return_transform;
+ for (const displayChange of transaction.displayChange) {
+ transactions.push(Object.freeze({
+ type: 'displayChange',
+ obj: displayChange,
+ }));
+ }
+
+ return transactions;
}
function transform_entry(entry) {
- var transactionType = entry.increment;
- return transform({
- obj: entry,
- kind: 'entry',
- name: nanos_to_string(entry.timeStamp),
- children: [[[entry[transactionType]], transform_entry_type(transactionType)]],
- timestamp: entry.timeStamp,
- });
+ const type = entry.increment;
+ const timestamp = entry.timeStamp;
+ const time = nanos_to_string(timestamp);
+
+ switch (type) {
+ case "transaction":
+ return Object.freeze({
+ type,
+ transactions: transform_transaction(entry.transaction),
+ time,
+ timestamp,
+ });
+
+ default:
+ return Object.freeze({
+ type,
+ obj: entry[type],
+ time,
+ timestamp,
+ })
+ }
}
function transform_transaction_trace(entries) {
- var r = transform({
- obj: entries,
- kind: 'entries',
- name: 'transactionstrace',
- children: [
- [entries.increment, transform_entry],
- ],
- })
- return r;
+ const data = entries.increment.map(transform_entry);
+
+ return { children: data };
}
export { transform_transaction_trace };