diff --git a/tools/winscope/src/PropertiesTableView.vue b/tools/winscope/src/PropertiesTableView.vue new file mode 100644 index 000000000..bb001c6f4 --- /dev/null +++ b/tools/winscope/src/PropertiesTableView.vue @@ -0,0 +1,75 @@ + + + + + + diff --git a/tools/winscope/src/TraceView.vue b/tools/winscope/src/TraceView.vue index a2bbb97a1..498a8352f 100644 --- a/tools/winscope/src/TraceView.vue +++ b/tools/winscope/src/TraceView.vue @@ -53,23 +53,29 @@ /> -
- + +
+ +
@@ -149,6 +155,7 @@ import Rects from './Rects.vue'; import FlatCard from './components/FlatCard.vue'; import PropertiesTreeElement from './PropertiesTreeElement.vue'; import SurfaceFlingerPropertyGroups from '@/SurfaceFlingerPropertyGroups.vue'; +import PropertiesTableView from './PropertiesTableView'; import {ObjectTransformer} from './transform.js'; import {DiffGenerator, defaultModifiedCheck} from './utils/diff.js'; @@ -438,12 +445,34 @@ export default { hasTagsOrErrors() { return this.presentTags.length > 0 || this.presentErrors.length > 0; }, + propertiesForTableView() { + if (this.file.type == TRACE_TYPES.IME_CLIENTS) { + return { + 'methodId': this.item.obj.client?.inputMethodManager?.curId, + 'packageName': this.item.obj.client?.editorInfo?.packageName, + }; + } else if (this.file.type == TRACE_TYPES.IME_SERVICE) { + return { + 'windowVisible': this.item.obj.inputMethodService?.windowVisible, + 'decorViewVisible': this.item.obj.inputMethodService?.decorViewVisible, + 'packageName': this.item.obj.inputMethodService?.inputEditorInfo?.packageName, + }; + } else if (this.file.type == TRACE_TYPES.IME_MANAGERSERVICE) { + return { + 'methodId': this.item.obj.inputMethodManagerService?.curMethodId, + 'curFocusedWindow': this.item.obj.inputMethodManagerService?.curFocusedWindowName, + 'lastImeTargetWindow': this.item.obj.inputMethodManagerService?.lastImeTargetWindowName, + 'inputShown': this.item.obj.inputMethodManagerService?.inputShown, + }; + } + }, }, components: { 'tree-view': TreeView, 'rects': Rects, 'flat-card': FlatCard, 'sf-property-groups': SurfaceFlingerPropertyGroups, + 'properties-table-view': PropertiesTableView, }, }; @@ -486,6 +515,7 @@ function getFilter(filterString) { margin: 8px; min-width: 400px; min-height: 70rem; + max-height: 70rem; } .rects, @@ -508,6 +538,7 @@ function getFilter(filterString) { .treeview { overflow: auto; white-space: pre-line; + flex: 1 0 0; } .no-properties { @@ -546,6 +577,7 @@ function getFilter(filterString) { color: rgba(0, 0, 0, 0.75); } +.hierarchy-content, .properties-content { display: flex; flex-direction: column; @@ -557,8 +589,4 @@ function getFilter(filterString) { flex-direction: column; flex: 1; } - -.treeview { - flex: 1 0 0; -} diff --git a/tools/winscope/src/transform_ime.js b/tools/winscope/src/transform_ime.js index cd317c8c0..718a05461 100644 --- a/tools/winscope/src/transform_ime.js +++ b/tools/winscope/src/transform_ime.js @@ -28,9 +28,7 @@ function transform_client_dump(entry) { return transform({ obj: transform_input_connection_call(entry), kind: 'Client', - name: '\n- methodId ' + entry?.inputMethodManager?.curId - + '\n- view ' + entry?.viewRootImpl?.view - + '\n- packageName ' + entry?.editorInfo?.packageName, + name: entry?.viewRootImpl?.view, children: [], stableId: 'client' }); @@ -64,9 +62,7 @@ function transform_service_dump(entry) { return transform({ obj: transform_input_connection_call(entry), kind: 'InputMethodService', - name: '\n- windowVisible ' + entry?.windowVisible - + '\n- decorViewVisible ' + entry?.decorViewVisible - + '\n- packageName ' + entry?.inputEditorInfo?.packageName, + name: '', children: [], stableId: 'service' }); @@ -100,10 +96,7 @@ function transform_managerservice_dump(entry) { return transform({ obj: entry, kind: 'InputMethodManagerService', - name: '\n- methodId ' + entry?.curMethodId - + '\n- curFocusedWindow ' + entry?.curFocusedWindowName - + '\n- lastImeTargetWindow ' + entry?.lastImeTargetWindowName - + '\n- inputShown ' + entry?.inputShown, + name: '', children: [], stableId: 'managerservice' });