Merge "Add display support for tag fields and app pairs."
This commit is contained in:
committed by
Android (Google) Code Review
commit
e228166ec3
@@ -312,15 +312,22 @@ export default {
|
||||
return prevEntry;
|
||||
},
|
||||
|
||||
/** Checks for match in window manager properties taskId, layerId, or windowToken,
|
||||
* or surface flinger property id
|
||||
*/
|
||||
isPropertyMatch(flickerItem, entryItem) {
|
||||
return flickerItem.taskId === entryItem.taskId ||
|
||||
flickerItem.windowToken === entryItem.windowToken ||
|
||||
flickerItem.layerId === entryItem.layerId ||
|
||||
flickerItem.layerId === entryItem.id;
|
||||
},
|
||||
/** Performs check for id match between entry and present tags/errors
|
||||
* must be carried out for every present tag/error
|
||||
*/
|
||||
matchItems(flickerItems, entryItem) {
|
||||
var match = false;
|
||||
flickerItems.forEach(flickerItem => {
|
||||
if (flickerItem.taskId===entryItem.taskId || flickerItem.layerId===entryItem.id) {
|
||||
match = true;
|
||||
}
|
||||
if (this.isPropertyMatch(flickerItem, entryItem)) match = true;
|
||||
});
|
||||
return match;
|
||||
},
|
||||
|
||||
@@ -446,9 +446,14 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
/** Check if tag/error id matches entry id */
|
||||
isIdMatch(a, b) {
|
||||
return a.taskId===b.taskId || a.layerId===b.id;
|
||||
/** Checks for match in window manager properties taskId, layerId, or windowToken,
|
||||
* or surface flinger property id
|
||||
*/
|
||||
isPropertyMatch(flickerItem, entryItem) {
|
||||
return flickerItem.taskId === entryItem.taskId ||
|
||||
flickerItem.windowToken === entryItem.windowToken ||
|
||||
flickerItem.layerId === entryItem.layerId ||
|
||||
flickerItem.layerId === entryItem.id;
|
||||
},
|
||||
/** Performs check for id match between entry and present tags/errors
|
||||
* exits once match has been found
|
||||
@@ -456,7 +461,7 @@ export default {
|
||||
matchItems(flickerItems) {
|
||||
var match = false;
|
||||
flickerItems.every(flickerItem => {
|
||||
if (this.isIdMatch(flickerItem, this.item)) {
|
||||
if (this.isPropertyMatch(flickerItem, this.item)) {
|
||||
match = true;
|
||||
return false;
|
||||
}
|
||||
@@ -476,7 +481,7 @@ export default {
|
||||
var transitions = [];
|
||||
var ids = [];
|
||||
this.currentTags.forEach(tag => {
|
||||
if (!ids.includes(tag.id) && this.isIdMatch(tag, this.item)) {
|
||||
if (!ids.includes(tag.id) && this.isPropertyMatch(tag, this.item)) {
|
||||
transitions.push(tag.transition);
|
||||
ids.push(tag.id);
|
||||
}
|
||||
@@ -484,7 +489,7 @@ export default {
|
||||
return transitions;
|
||||
},
|
||||
getCurrentErrorTags() {
|
||||
return this.currentErrors.filter(error => this.isIdMatch(error, this.item));
|
||||
return this.currentErrors.filter(error => this.isPropertyMatch(error, this.item));
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -27,6 +27,8 @@ const transitionTypeMap = new Map([
|
||||
['APP_CLOSE', TransitionType.APP_CLOSE],
|
||||
['IME_APPEAR', TransitionType.IME_APPEAR],
|
||||
['IME_DISAPPEAR', TransitionType.IME_DISAPPEAR],
|
||||
['APP_PAIRS_ENTER', TransitionType.APP_PAIRS_ENTER],
|
||||
['APP_PAIRS_EXIT', TransitionType.APP_PAIRS_EXIT],
|
||||
]);
|
||||
|
||||
Tag.fromProto = function (proto: any): Tag {
|
||||
|
||||
@@ -23,6 +23,8 @@ enum TransitionType {
|
||||
APP_CLOSE = 'APP_CLOSE',
|
||||
IME_APPEAR = 'IME_APPEAR',
|
||||
IME_DISAPPEAR = 'IME_DISAPPEAR',
|
||||
APP_PAIRS_ENTER = 'APP_PAIRS_ENTER',
|
||||
APP_PAIRS_EXIT = 'APP_PAIRS_EXIT',
|
||||
};
|
||||
|
||||
export default TransitionType;
|
||||
@@ -162,7 +162,8 @@ export default {
|
||||
id[0].transition,
|
||||
0,
|
||||
id[0].layerId,
|
||||
id[0].taskId
|
||||
id[0].taskId,
|
||||
id[0].windowToken
|
||||
);
|
||||
transitions.push(transition);
|
||||
}
|
||||
@@ -360,19 +361,20 @@ export default {
|
||||
* @param {number} endTs - The timestamp at which the transition ends.
|
||||
* @param {string} transitionType - The type of transition.
|
||||
* @param {number} overlap - The degree to which the transition overlaps with others.
|
||||
* @param {number} layerId - Determines if transition is associated with SF trace.
|
||||
* @param {number} taskId - Determines if transition is associated with WM trace.
|
||||
* @param {number} layerId - Helps determine if transition is associated with SF trace.
|
||||
* @param {number} taskId - Helps determine if transition is associated with WM trace.
|
||||
* @param {number} windowToken - Helps determine if transition is associated with WM trace.
|
||||
* @return {Transition} A transition object transformed to the timeline's crop and
|
||||
* scale parameter.
|
||||
*/
|
||||
generateTransition(startTs, endTs, transitionType, overlap, layerId, taskId) {
|
||||
generateTransition(startTs, endTs, transitionType, overlap, layerId, taskId, windowToken) {
|
||||
const transitionWidth = this.objectWidth(startTs, endTs);
|
||||
const transitionDesc = transitionMap.get(transitionType).desc;
|
||||
const transitionColor = transitionMap.get(transitionType).color;
|
||||
var tooltip = `${transitionDesc}. Start: ${nanos_to_string(startTs)}. End: ${nanos_to_string(endTs)}.`;
|
||||
|
||||
if (layerId!==0 && taskId===0) tooltip += " SF only.";
|
||||
else if (taskId!==0 && layerId===0) tooltip += " WM only.";
|
||||
if (layerId !== 0 && taskId === 0 && windowToken === "") tooltip += " SF only.";
|
||||
else if ((taskId !== 0 || windowToken !== "") && layerId === 0) tooltip += " WM only.";
|
||||
|
||||
return new Transition(this.position(startTs), startTs, endTs, transitionWidth, transitionColor, overlap, tooltip);
|
||||
},
|
||||
|
||||
@@ -56,6 +56,8 @@ const transitionMap = new Map([
|
||||
[TransitionType.APP_CLOSE, {desc: 'Closing app', color: '#d10ddfff'}],
|
||||
[TransitionType.IME_APPEAR, {desc: 'IME appearing', color: '#ff9900ff'}],
|
||||
[TransitionType.IME_DISAPPEAR, {desc: 'IME disappearing', color: '#ad6800ff'}],
|
||||
[TransitionType.APP_PAIRS_ENTER, {desc: 'Entering app pairs mode', color: 'rgb(58, 151, 39)'}],
|
||||
[TransitionType.APP_PAIRS_EXIT, {desc: 'Exiting app pairs mode', color: 'rgb(45, 110, 32)'}],
|
||||
])
|
||||
|
||||
export { WebContentScriptMessageType, NAVIGATION_STYLE, SEARCH_TYPE, logLevel, transitionMap };
|
||||
|
||||
Reference in New Issue
Block a user