How to use parseWindowProperties method in Appium Android Driver

Best JavaScript code snippet using appium-android-driver

Run Appium Android Driver automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

system-bars.js

Source: system-bars.js Github

copy
1import _ from 'lodash';
2
3const WINDOW_TITLE_PATTERN = /^\s+Window\s#\d+\sWindow\{[0-9a-f]+\s\w+\s([\w-]+)\}:$/;
4const FRAME_PATTERN = /^\s+mFrame=\[([0-9.-]+),([0-9.-]+)\]\[([0-9.-]+),([0-9.-]+)\]/m;
5const SURFACE_PATTERN = /^\s+Surface:\sshown=(true|false)/m;
6const STATUS_BAR_WINDOW_NAME_PREFIX = 'StatusBar';
7const NAVIGATION_BAR_WINDOW_NAME_PREFIX = 'NavigationBar';
8const DEFAULT_WINDOW_PROPERTIES = {
9  visible: false,
10  x: 0, y: 0, width: 0, height: 0,
11};
12
13const commands = {};
14
15/**
16 * @typedef {Object} WindowProperties
17 * @property {boolean} visible Whether the window is visible
18 * @property {number} x Window x coordinate
19 * @property {number} y Window y coordinate
20 * @property {number} width Window width
21 * @property {number} height Window height
22 */
23
24/**
25 * Parses window properties from adb dumpsys output
26 *
27 * @param {string} name The name of the window whose properties are being parsed
28 * @param {Array<string>} props The list of particular window property lines.
29 * Check the corresponding unit tests for more details on the input format.
30 * @param {Object?} log Logger instance
31 * @returns {WindowProperties} Parsed properties object
32 * @throws {Error} If there was an issue while parsing the properties string
33 */
34function parseWindowProperties (name, props, log = null) {
35  const result = _.cloneDeep(DEFAULT_WINDOW_PROPERTIES);
36  const propLines = props.join('\n');
37  const frameMatch = FRAME_PATTERN.exec(propLines);
38  if (!frameMatch) {
39    log?.debug(propLines);
40    throw new Error(`Cannot parse the frame size from '${name}' window properties`);
41  }
42  result.x = parseFloat(frameMatch[1]);
43  result.y = parseFloat(frameMatch[2]);
44  result.width = parseFloat(frameMatch[3]) - result.x;
45  result.height = parseFloat(frameMatch[4]) - result.y;
46  const visibilityMatch = SURFACE_PATTERN.exec(propLines);
47  if (!visibilityMatch) {
48    log?.debug(propLines);
49    throw new Error(`Cannot parse the visibility value from '${name}' window properties`);
50  }
51  result.visible = visibilityMatch[1] === 'true';
52  return result;
53}
54
55/**
56 * Extracts status and navigation bar information from the window manager output.
57 *
58 * @param {Array<string>} lines Output from dumpsys command.
59 * Check the corresponding unit tests for more details on the input format.
60 * @param {Object?} log Logger instance
61 * @return {Object} An object containing two items where keys are statusBar and navigationBar,
62 * and values are corresponding WindowProperties objects
63 * @throws {Error} If no window properties could be parsed
64 */
65function parseWindows (lines, log = null) {
66  const windows = {};
67  let currentWindowName = null;
68  let windowNameRowIndent = null;
69  for (const line of lines.split('\n').map(_.trimEnd)) {
70    const currentIndent = line.length - _.trimStart(line).length;
71    if (_.isNil(windowNameRowIndent) || currentIndent <= windowNameRowIndent) {
72      const match = WINDOW_TITLE_PATTERN.exec(line);
73      if (!match) {
74        currentWindowName = null;
75        continue;
76      }
77      currentWindowName = match[1];
78      if (_.isNil(windowNameRowIndent)) {
79        windowNameRowIndent = currentIndent;
80      }
81      continue;
82    }
83    if (!currentWindowName || currentIndent <= windowNameRowIndent) {
84      continue;
85    }
86
87    if (!_.isArray(windows[currentWindowName])) {
88      windows[currentWindowName] = [];
89    }
90    windows[currentWindowName].push(line);
91  }
92  if (_.isEmpty(windows)) {
93    log?.debug(lines.join('\n'));
94    throw new Error('Cannot parse any window information from the dumpsys output');
95  }
96
97  const result = {statusBar: null, navigationBar: null};
98  for (const [name, props] of _.toPairs(windows)) {
99    if (name.startsWith(STATUS_BAR_WINDOW_NAME_PREFIX)) {
100      result.statusBar = parseWindowProperties(name, props, log);
101    } else if (name.startsWith(NAVIGATION_BAR_WINDOW_NAME_PREFIX)) {
102      result.navigationBar = parseWindowProperties(name, props, log);
103    }
104  }
105  const unmatchedWindows = [
106    ['statusBar', STATUS_BAR_WINDOW_NAME_PREFIX],
107    ['navigationBar', NAVIGATION_BAR_WINDOW_NAME_PREFIX]
108  ].filter(([name]) => _.isNil(result[name]));
109  for (const [window, namePrefix] of unmatchedWindows) {
110    log?.info(`No windows have been found whose title matches to ` +
111      `'${namePrefix}'. Assuming it is invisible. ` +
112      `Only the following windows are available: ${_.keys(windows)}`);
113    result[window] = _.cloneDeep(DEFAULT_WINDOW_PROPERTIES);
114  }
115  return result;
116}
117
118commands.getSystemBars = async function getSystemBars () {
119  let stdout;
120  try {
121    stdout = await this.adb.shell(['dumpsys', 'window', 'windows']);
122  } catch (e) {
123    throw new Error(`Cannot retrieve system bars details. Original error: ${e.message}`);
124  }
125  return parseWindows(stdout, this.log);
126};
127
128// for unit tests
129export { parseWindows, parseWindowProperties };
130export default commands;
131
Full Screen

systems-bars-specs.js

Source: systems-bars-specs.js Github

copy
1import AndroidDriver from '../../../lib/driver';
2import {
3  parseWindowProperties, parseWindows
4} from '../../../lib/commands/system-bars';
5import chai from 'chai';
6import chaiAsPromised from 'chai-as-promised';
7
8chai.should();
9chai.use(chaiAsPromised);
10const expect = chai.expect;
11
12describe('System Bars', function () {
13  describe('parseWindowProperties', function () {
14    it('should return visible true if the surface is visible', function () {
15      parseWindowProperties('yolo', `
16      mDisplayId=0 rootTaskId=1 mSession=Session{6fdbba 684:u0a10144} [email protected]
17      mOwnerUid=10144 showForAllUsers=true package=com.android.systemui appop=NONE
18      mAttrs={(0,0)(fillxfill) sim={adjust=pan} ty=NAVIGATION_BAR fmt=TRANSLUCENT
19        fl=NOT_FOCUSABLE NOT_TOUCH_MODAL TOUCHABLE_WHEN_WAKING WATCH_OUTSIDE_TOUCH SPLIT_TOUCH HARDWARE_ACCELERATED FLAG_SLIPPERY
20        pfl=COLOR_SPACE_AGNOSTIC
21        fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR IME}
22      Requested w=1080 h=126 mLayoutSeq=67
23      mBaseLayer=241000 mSubLayer=0    mToken=WindowToken{e41b499 [email protected]}
24      mViewVisibility=0x0 mHaveFrame=true mObscured=false
25      mSeq=0 mSystemUiVisibility=0x0
26      mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
27      mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
28      mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
29      mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
30      Frames: containing=[0,1794][1080,1920] parent=[0,1794][1080,1920]
31          display=[0,1794][1080,1920]
32          content=[0,1794][1080,1920] visible=[0,1794][1080,1920]
33          decor=[0,0][0,0]
34      mFrame=[0,1794][1080,1920] last=[0,1794][1080,1920]
35       cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
36      Cur insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]    Lst insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
37       surface=[0,0][0,0]
38      ContainerAnimator:
39        mLeash=Surface(name=Surface(name=e56b35e NavigationBar0)/@0xdbbe587 - animation-leash)/@0x547b0d mAnimationType=32
40        Animation: [email protected]2
41          ControlAdapter
42           mCapturedLeash=Surface(name=Surface(name=e56b35e NavigationBar0)/@0xdbbe587 - animation-leash)/@0x547b0d    WindowStateAnimator{c260d3 NavigationBar0}:
43         mAnimationIsEntrance=true      mSurface=Surface(name=NavigationBar0)/@0x275b410
44        Surface: shown=true layer=0 alpha=1.0 rect=(0.0,0.0) 1080 x 126 transform=(1.0, 0.0, 1.0, 0.0)
45        mDrawState=HAS_DRAWN       mLastHidden=false
46        mEnterAnimationPending=false      mSystemDecorRect=[0,0][1080,126] mLastClipRect=[0,0][1080,126]
47      mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
48      isOnScreen=true
49      isVisible=true
50      mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
51      `.split('\n')).should.be.eql({
52        visible: true,
53        x: 0,
54        y: 1794,
55        width: 1080,
56        height: 126,
57      });
58    });
59    it('should return visible false if the surface is not visible', function () {
60      parseWindowProperties('foo', `
61      mDisplayId=0 rootTaskId=1 mSession=Session{6fdbba 684:u0a10144} [email protected]
62      mOwnerUid=10144 showForAllUsers=true package=com.android.systemui appop=NONE
63      mAttrs={(0,0)(fillxfill) sim={adjust=pan} ty=NAVIGATION_BAR fmt=TRANSLUCENT
64        fl=NOT_FOCUSABLE NOT_TOUCH_MODAL TOUCHABLE_WHEN_WAKING WATCH_OUTSIDE_TOUCH SPLIT_TOUCH HARDWARE_ACCELERATED FLAG_SLIPPERY
65        pfl=COLOR_SPACE_AGNOSTIC
66        fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR IME}
67      Requested w=1080 h=126 mLayoutSeq=67
68      mBaseLayer=241000 mSubLayer=0    mToken=WindowToken{e41b499 [email protected]}
69      mViewVisibility=0x0 mHaveFrame=true mObscured=false
70      mSeq=0 mSystemUiVisibility=0x0
71      mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
72      mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
73      mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
74      mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
75      Frames: containing=[0,1794][1080,1920] parent=[0,1794][1080,1920]
76          display=[0,1794][1080,1920]
77          content=[0,1794][1080,1920] visible=[0,1794][1080,1920]
78          decor=[0,0][0,0]
79      mFrame=[0,1794][1080,1920] last=[0,1794][1080,1920]
80       cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
81      Cur insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]    Lst insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
82       surface=[0,0][0,0]
83      ContainerAnimator:
84        mLeash=Surface(name=Surface(name=e56b35e NavigationBar0)/@0xdbbe587 - animation-leash)/@0x547b0d mAnimationType=32
85        Animation: [email protected]2
86          ControlAdapter
87           mCapturedLeash=Surface(name=Surface(name=e56b35e NavigationBar0)/@0xdbbe587 - animation-leash)/@0x547b0d    WindowStateAnimator{c260d3 NavigationBar0}:
88         mAnimationIsEntrance=true      mSurface=Surface(name=NavigationBar0)/@0x275b410
89        Surface: shown=false layer=0 alpha=1.0 rect=(0.0,0.0) 1080 x 126 transform=(1.0, 0.0, 1.0, 0.0)
90        mDrawState=HAS_DRAWN       mLastHidden=false
91        mEnterAnimationPending=false      mSystemDecorRect=[0,0][1080,126] mLastClipRect=[0,0][1080,126]
92      mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
93      isOnScreen=true
94      isVisible=true
95      mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
96      `.split('\n')).should.be.eql({
97        visible: false,
98        x: 0,
99        y: 1794,
100        width: 1080,
101        height: 126,
102      });
103    });
104    it('should throw an error if no info is found', function () {
105      expect(() => { parseWindowProperties('bar', []); }).to.throw(Error);
106    });
107  });
108
109  // these are used for both parseWindows and getSystemBars tests
110  const validWindowOutputA11 = `
111WINDOW MANAGER WINDOWS (dumpsys window windows)
112  Window #0 Window{d1b7133 u0 pip-dismiss-overlay}:
113    mDisplayId=0 rootTaskId=1 mSession=Session{6fdbba 684:u0a10144} [email protected]
114    mOwnerUid=10144 showForAllUsers=true package=com.android.systemui appop=NONE
115    mAttrs={(0,1264)(fillx656) sim={adjust=pan} ty=NAVIGATION_BAR_PANEL fmt=TRANSLUCENT
116      fl=NOT_FOCUSABLE NOT_TOUCHABLE LAYOUT_IN_SCREEN HARDWARE_ACCELERATED
117      pfl=SHOW_FOR_ALL_USERS FIT_INSETS_CONTROLLED}
118    Requested w=1080 h=656 mLayoutSeq=52
119    mBaseLayer=251000 mSubLayer=0    mToken=WindowToken{561abec [email protected]}
120    mViewVisibility=0x4 mHaveFrame=true mObscured=false
121    mSeq=0 mSystemUiVisibility=0x0
122    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
123    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
124    mLastReportedConfiguration={0.0 ?mcc?mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mWindowingMode=undefined mDisplayWindowingMode=undefined mActivityType=undefined mAlwaysOnTop=undefined mRotation=undefined}}
125    mHasSurface=false isReadyForDisplay()=false mWindowRemovalAllowed=false
126    Frames: containing=[0,0][1080,1920] parent=[0,0][1080,1920]
127        display=[0,0][1080,1920]
128        content=[0,1264][1080,1794] visible=[0,1264][1080,1794]
129        decor=[0,0][1080,1920]
130    mFrame=[0,1264][1080,1920] last=[0,0][0,0]
131     cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
132    Cur insets: content=[0,0][0,126] visible=[0,0][0,126] stable=[0,0][0,126]    Lst insets: content=[0,0][0,126] visible=[0,0][0,126] stable=[0,0][0,126]
133     surface=[0,0][0,0]
134    WindowStateAnimator{d2621a4 pip-dismiss-overlay}:
135      mDrawState=NO_SURFACE       mLastHidden=false
136      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0] mLastClipRect=[0,0][0,0]
137      mShownAlpha=0.0 mAlpha=1.0 mLastAlpha=0.0
138    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
139    isOnScreen=false
140    isVisible=false
141    mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
142  Window #1 Window{e56b35e u0 NavigationBar0}:
143    mDisplayId=0 rootTaskId=1 mSession=Session{6fdbba 684:u0a10144} [email protected]
144    mOwnerUid=10144 showForAllUsers=true package=com.android.systemui appop=NONE
145    mAttrs={(0,0)(fillxfill) sim={adjust=pan} ty=NAVIGATION_BAR fmt=TRANSLUCENT
146      fl=NOT_FOCUSABLE NOT_TOUCH_MODAL TOUCHABLE_WHEN_WAKING WATCH_OUTSIDE_TOUCH SPLIT_TOUCH HARDWARE_ACCELERATED FLAG_SLIPPERY
147      pfl=COLOR_SPACE_AGNOSTIC
148      fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR IME}
149    Requested w=1080 h=126 mLayoutSeq=67
150    mBaseLayer=241000 mSubLayer=0    mToken=WindowToken{e41b499 [email protected]}
151    mViewVisibility=0x0 mHaveFrame=true mObscured=false
152    mSeq=0 mSystemUiVisibility=0x0
153    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
154    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
155    mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
156    mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
157    Frames: containing=[0,1794][1080,1920] parent=[0,1794][1080,1920]
158        display=[0,1794][1080,1920]
159        content=[0,1794][1080,1920] visible=[0,1794][1080,1920]
160        decor=[0,0][0,0]
161    mFrame=[0,1794][1080,1920] last=[0,1794][1080,1920]
162     cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
163    Cur insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]    Lst insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
164     surface=[0,0][0,0]
165    ContainerAnimator:
166      mLeash=Surface(name=Surface(name=e56b35e NavigationBar0)/@0xdbbe587 - animation-leash)/@0x547b0d mAnimationType=32
167      Animation: [email protected]2
168        ControlAdapter
169         mCapturedLeash=Surface(name=Surface(name=e56b35e NavigationBar0)/@0xdbbe587 - animation-leash)/@0x547b0d    WindowStateAnimator{c260d3 NavigationBar0}:
170       mAnimationIsEntrance=true      mSurface=Surface(name=NavigationBar0)/@0x275b410
171      Surface: shown=true layer=0 alpha=1.0 rect=(0.0,0.0) 1080 x 126 transform=(1.0, 0.0, 1.0, 0.0)
172      mDrawState=HAS_DRAWN       mLastHidden=false
173      mEnterAnimationPending=false      mSystemDecorRect=[0,0][1080,126] mLastClipRect=[0,0][1080,126]
174    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
175    isOnScreen=true
176    isVisible=true
177    mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
178  Window #2 Window{31fbf1a u0 NotificationShade}:
179    mDisplayId=0 rootTaskId=1 mSession=Session{6fdbba 684:u0a10144} [email protected]
180    mOwnerUid=10144 showForAllUsers=true package=com.android.systemui appop=NONE
181    mAttrs={(0,0)(fillxfill) gr=TOP CENTER_VERTICAL sim={adjust=resize} layoutInDisplayCutoutMode=always ty=2040 fmt=TRANSLUCENT
182      fl=NOT_FOCUSABLE TOUCHABLE_WHEN_WAKING WATCH_OUTSIDE_TOUCH SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS
183      pfl=COLOR_SPACE_AGNOSTIC BEHAVIOR_CONTROLLED FIT_INSETS_CONTROLLED
184      bhv=SHOW_TRANSIENT_BARS_BY_SWIPE}
185    Requested w=1080 h=1920 mLayoutSeq=32
186    mBaseLayer=191000 mSubLayer=0    mToken=WindowToken{234e9c5 [email protected]}
187    mViewVisibility=0x4 mHaveFrame=true mObscured=false
188    mSeq=0 mSystemUiVisibility=0x0
189    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
190    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
191    mLastReportedConfiguration={0.0 ?mcc?mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mWindowingMode=undefined mDisplayWindowingMode=undefined mActivityType=undefined mAlwaysOnTop=undefined mRotation=undefined}}
192    mHasSurface=false isReadyForDisplay()=false mWindowRemovalAllowed=false
193    Frames: containing=[0,0][1080,1920] parent=[0,0][1080,1920]
194        display=[0,0][1080,1920]
195        content=[0,0][1080,1794] visible=[0,0][1080,1794]
196        decor=[0,0][1080,1920]
197    mFrame=[0,0][1080,1920] last=[0,0][1080,1920]
198     cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
199    Cur insets: content=[0,0][0,126] visible=[0,0][0,126] stable=[0,63][0,126]    Lst insets: content=[0,0][0,126] visible=[0,0][0,126] stable=[0,63][0,126]
200     surface=[0,0][0,0]
201    WindowStateAnimator{d5abb09 NotificationShade}:
202      mDrawState=NO_SURFACE       mLastHidden=false
203      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0] mLastClipRect=[0,0][0,0]
204      mShownAlpha=0.0 mAlpha=1.0 mLastAlpha=0.0
205    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
206    isOnScreen=false
207    isVisible=false
208    mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
209  Window #3 Window{7547027 u0 StatusBar}:
210    mDisplayId=0 rootTaskId=1 mSession=Session{6fdbba 684:u0a10144} [email protected]
211    mOwnerUid=10144 showForAllUsers=true package=com.android.systemui appop=NONE
212    mAttrs={(0,0)(fillx63) gr=TOP CENTER_VERTICAL sim={adjust=pan} layoutInDisplayCutoutMode=always ty=STATUS_BAR fmt=TRANSLUCENT
213      fl=NOT_FOCUSABLE SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS
214      pfl=COLOR_SPACE_AGNOSTIC FIT_INSETS_CONTROLLED}
215    Requested w=1080 h=63 mLayoutSeq=67
216    mBaseLayer=171000 mSubLayer=0    mToken=WindowToken{1eab2e6 [email protected]}
217    mViewVisibility=0x0 mHaveFrame=true mObscured=false
218    mSeq=0 mSystemUiVisibility=0x0
219    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
220    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
221    mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
222    mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
223    Frames: containing=[0,0][1080,1920] parent=[0,0][1080,1920]
224        display=[0,0][1080,1920]
225        content=[0,0][1080,63] visible=[0,0][1080,63]
226        decor=[0,0][0,0]
227    mFrame=[0,0][1080,63] last=[0,0][1080,63]
228     cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
229    Cur insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]    Lst insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
230     surface=[0,0][0,0]
231    ContainerAnimator:
232      mLeash=Surface(name=Surface(name=7547027 StatusBar)/@0x3db21c6 - animation-leash)/@0x694910e mAnimationType=32
233      Animation: [email protected]
234        ControlAdapter
235         mCapturedLeash=Surface(name=Surface(name=7547027 StatusBar)/@0x3db21c6 - animation-leash)/@0x694910e    WindowStateAnimator{cea013c StatusBar}:
236       mAnimationIsEntrance=true      mSurface=Surface(name=StatusBar)/@0xc6afec5
237      Surface: shown=true layer=0 alpha=1.0 rect=(0.0,0.0) 1080 x 63 transform=(1.0, 0.0, 1.0, 0.0)
238      mDrawState=HAS_DRAWN       mLastHidden=false
239      mEnterAnimationPending=false      mSystemDecorRect=[0,0][1080,63] mLastClipRect=[0,0][1080,63]
240    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
241    isOnScreen=true
242    isVisible=true
243    mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
244  Window #4 Window{1602b04 u0 Application Not Responding: com.android.systemui}:
245    mDisplayId=0 rootTaskId=1 mSession=Session{c91c4ca 502:1000} [email protected]
246    mOwnerUid=1000 showForAllUsers=true package=android appop=SYSTEM_ALERT_WINDOW
247    mAttrs={(0,0)(wrapxwrap) gr=CENTER sim={adjust=pan forwardNavigation} ty=SYSTEM_ALERT fmt=TRANSLUCENT wanim=0x10302ff surfaceInsets=Rect(84, 84 - 84, 84)
248      fl=DIM_BEHIND ALT_FOCUSABLE_IM SPLIT_TOUCH HARDWARE_ACCELERATED
249      pfl=SHOW_FOR_ALL_USERS SYSTEM_ERROR
250      fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR
251      fitIgnoreVis}
252    Requested w=1024 h=514 mLayoutSeq=67
253    mBaseLayer=131000 mSubLayer=0    mToken=WindowToken{cc94b17 [email protected]}
254    mViewVisibility=0x0 mHaveFrame=true mObscured=false
255    mSeq=0 mSystemUiVisibility=0x0
256    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
257    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
258    mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
259    mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
260    Frames: containing=[0,63][1080,1794] parent=[0,63][1080,1794]
261        display=[0,63][1080,1794]
262        content=[28,671][1052,1185] visible=[28,671][1052,1185]
263        decor=[0,0][1080,1920]
264    mFrame=[28,671][1052,1185] last=[28,671][1052,1185]
265     cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
266    Cur insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]    Lst insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
267     surface=[84,84][84,84]
268    WindowStateAnimator{48cb01a Application Not Responding: com.android.systemui}:
269       mAnimationIsEntrance=true      mSurface=Surface(name=Application Not Responding: com.android.systemui)/@0xbab174b
270      Surface: shown=true layer=0 alpha=1.0 rect=(0.0,0.0) 1192 x 682 transform=(1.0, 0.0, 1.0, 0.0)
271      mDrawState=HAS_DRAWN       mLastHidden=false
272      mEnterAnimationPending=false      mSystemDecorRect=[0,0][1024,514] mLastClipRect=[0,0][1192,682]
273    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
274    isOnScreen=true
275    isVisible=true
276    mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
277  Window #5 Window{c184247 u0 AssistPreviewPanel}:
278    mDisplayId=0 rootTaskId=1 mSession=Session{6fdbba 684:u0a10144} [email protected]
279    mOwnerUid=10144 showForAllUsers=false package=com.android.systemui appop=NONE
280    mAttrs={(0,0)(fillx656) gr=BOTTOM START CENTER sim={state=unchanged adjust=nothing} ty=VOICE_INTERACTION_STARTING fmt=TRANSLUCENT
281      fl=NOT_FOCUSABLE NOT_TOUCHABLE LAYOUT_IN_SCREEN HARDWARE_ACCELERATED
282      pfl=
283      vsysui=LAYOUT_STABLE LAYOUT_HIDE_NAVIGATION LAYOUT_FULLSCREEN}
284    Requested w=0 h=0 mLayoutSeq=13
285    mBaseLayer=41000 mSubLayer=0    mToken=WindowToken{e2ff986 android.os.BinderProx[email protected]}
286    mViewVisibility=0x8 mHaveFrame=true mObscured=false
287    mSeq=0 mSystemUiVisibility=0x700
288    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
289    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
290    mLastReportedConfiguration={0.0 ?mcc?mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mWindowingMode=undefined mDisplayWindowingMode=undefined mActivityType=undefined mAlwaysOnTop=undefined mRotation=undefined}}
291    mHasSurface=false isReadyForDisplay()=false mWindowRemovalAllowed=false
292    Frames: containing=[0,0][1080,1920] parent=[0,0][1080,1920]
293        display=[0,0][1080,1920]
294        content=[0,1920][1080,1794] visible=[0,1920][1080,1794]
295        decor=[0,0][1080,1920]
296    mFrame=[0,1920][1080,1920] last=[0,0][0,0]
297     cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
298    Cur insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]    Lst insets: content=[0,0][0,0] visible=[0,0][0,0] stable=[0,0][0,0]
299     surface=[0,0][0,0]
300    WindowStateAnimator{7f3f528 AssistPreviewPanel}:
301      mDrawState=NO_SURFACE       mLastHidden=false
302      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0] mLastClipRect=[0,0][0,0]
303      mShownAlpha=0.0 mAlpha=1.0 mLastAlpha=0.0
304    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
305    isOnScreen=false
306    isVisible=false
307    mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
308  Window #6 Window{4abfad2 u0 com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity}:
309    mDisplayId=0 rootTaskId=1 mSession=Session{fe94c6c 1341:u0a10109} [email protected]
310    mOwnerUid=10109 showForAllUsers=false package=com.google.android.apps.nexuslauncher appop=NONE
311    mAttrs={(0,0)(fillxfill) gr=LEFT CENTER_HORIZONTAL sim={adjust=resize} layoutInDisplayCutoutMode=always ty=DRAWN_APPLICATION fmt=TRANSPARENT wanim=0x10302f2 alpha=0.0
312      fl=NOT_FOCUSABLE NOT_TOUCHABLE LAYOUT_IN_SCREEN LAYOUT_INSET_DECOR WATCH_OUTSIDE_TOUCH SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS
313      pfl=FORCE_DRAW_STATUS_BAR_BACKGROUND FIT_INSETS_CONTROLLED
314      vsysui=LAYOUT_STABLE LAYOUT_HIDE_NAVIGATION LAYOUT_FULLSCREEN
315      fitSides=}
316    Requested w=1080 h=1920 mLayoutSeq=67
317    mBaseLayer=21000 mSubLayer=0    mToken=ActivityRecord{1086e23 u0 com.google.android.apps.nexuslauncher/.NexusLauncherActivity t13}
318    mActivityRecord=ActivityRecord{1086e23 u0 com.google.android.apps.nexuslauncher/.NexusLauncherActivity t13}
319    mAppDied=false    drawnStateEvaluated=true    mightAffectAllDrawn=true
320    mViewVisibility=0x0 mHaveFrame=true mObscured=false
321    mSeq=0 mSystemUiVisibility=0x700
322    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
323    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=home mAlwaysOnTop=undefined mRotation=ROTATION_0} s.2}
324    mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=home mAlwaysOnTop=undefined mRotation=ROTATION_0} s.2}
325    mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
326    Frames: containing=[0,0][1080,1920] parent=[0,0][1080,1920]
327        display=[0,0][1080,1920]
328        content=[0,63][1080,1794] visible=[0,63][1080,1794]
329        decor=[0,0][1080,1920]
330    mFrame=[0,0][1080,1920] last=[0,0][1080,1920]
331     cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
332    Cur insets: content=[0,63][0,126] visible=[0,63][0,126] stable=[0,63][0,126]    Lst insets: content=[0,63][0,126] visible=[0,63][0,126] stable=[0,63][0,126]
333     surface=[0,0][0,0]
334    WindowStateAnimator{c81c241 com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity}:
335      mSurface=Surface(name=com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity)/@0xbb5b3e6
336      Surface: shown=true layer=0 alpha=0.0 rect=(0.0,0.0) 1080 x 1920 transform=(1.0, 0.0, 1.0, 0.0)
337      mDrawState=HAS_DRAWN       mLastHidden=false
338      mEnterAnimationPending=false      mSystemDecorRect=[0,0][1080,1920] mLastClipRect=[0,0][1080,1920]
339      mShownAlpha=0.0 mAlpha=0.0 mLastAlpha=0.0
340    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
341    isOnScreen=true
342    isVisible=true
343    mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
344  Window #7 Window{8bfec3 u0 InputMethod}:
345    mDisplayId=0 rootTaskId=1 mSession=Session{6b4240f 1200:u0a10121} [email protected]
346    mOwnerUid=10121 showForAllUsers=false package=com.google.android.inputmethod.latin appop=NONE
347    mAttrs={(0,0)(fillxwrap) gr=BOTTOM CENTER_VERTICAL sim={adjust=pan forwardNavigation} ty=INPUT_METHOD fmt=TRANSPARENT wanim=0x1030056
348      fl=NOT_FOCUSABLE LAYOUT_IN_SCREEN SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS
349      pfl=FIT_INSETS_CONTROLLED
350      fitTypes=STATUS_BARS NAVIGATION_BARS
351      fitSides=LEFT TOP RIGHT
352      fitIgnoreVis}
353    Requested w=1080 h=126 mLayoutSeq=57
354    mIsImWindow=true mIsWallpaper=false mIsFloatingLayer=true mWallpaperVisible=false
355    mBaseLayer=151000 mSubLayer=0    mToken=WindowToken{bd0f320 [email protected]}
356    mViewVisibility=0x8 mHaveFrame=true mObscured=false
357    mSeq=0 mSystemUiVisibility=0x0
358    mGivenContentInsets=[0,126][0,0] mGivenVisibleInsets=[0,0][0,0]
359    mTouchableInsets=2 mGivenInsetsPending=false
360    touchable region=SkRegion((0,1794,1080,1920))
361    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
362    mLastReportedConfiguration={0.0 ?mcc?mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mWindowingMode=undefined mDisplayWindowingMode=undefined mActivityType=undefined mAlwaysOnTop=undefined mRotation=undefined}}
363    mHasSurface=false isReadyForDisplay()=false mWindowRemovalAllowed=false
364    Frames: containing=[0,63][1080,1920] parent=[0,63][1080,1920]
365        display=[0,63][1080,1920]
366        content=[0,1794][1080,1794] visible=[0,1794][1080,1794]
367        decor=[0,0][1080,1920]
368    mFrame=[0,1794][1080,1920] last=[0,1731][1080,1920]
369     cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
370    Cur insets: content=[0,0][0,126] visible=[0,0][0,126] stable=[0,0][0,126]    Lst insets: content=[0,0][0,126] visible=[0,0][0,126] stable=[0,0][0,126]
371     surface=[0,0][0,0]
372    ContainerAnimator:
373      mLeash=Surface(name=Surface(name=8bfec3 InputMethod)/@0xe4d7bbe - animation-leash)/@0x311dd27 mAnimationType=32
374      Animation: [email protected]4
375        ControlAdapter
376         mCapturedLeash=Surface(name=Surface(name=8bfec3 InputMethod)/@0xe4d7bbe - animation-leash)/@0x311dd27    WindowStateAnimator{5e7417d InputMethod}:
377      mDrawState=NO_SURFACE       mLastHidden=false
378      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0] mLastClipRect=[0,0][0,0]
379      mShownAlpha=0.0 mAlpha=1.0 mLastAlpha=0.0
380    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
381    isOnScreen=false
382    isVisible=false
383    mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
384  Window #8 Window{7bfc52e u0 com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity}:
385    mDisplayId=0 rootTaskId=1 mSession=Session{16ebce2 985:u0a10137} [email protected]
386    mOwnerUid=10137 showForAllUsers=false package=com.google.android.apps.nexuslauncher appop=NONE
387    mAttrs={(0,0)(fillxfill) sim={adjust=pan forwardNavigation} layoutInDisplayCutoutMode=always ty=BASE_APPLICATION fmt=TRANSPARENT wanim=0x10302f2
388      fl=LAYOUT_IN_SCREEN LAYOUT_INSET_DECOR SHOW_WALLPAPER SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS
389      pfl=FORCE_DRAW_STATUS_BAR_BACKGROUND FIT_INSETS_CONTROLLED
390      vsysui=LAYOUT_STABLE LAYOUT_HIDE_NAVIGATION LAYOUT_FULLSCREEN
391      fitSides=}
392    Requested w=1080 h=1920 mLayoutSeq=67
393    mBaseLayer=21000 mSubLayer=0    mToken=ActivityRecord{1086e23 u0 com.google.android.apps.nexuslauncher/.NexusLauncherActivity t13}
394    mActivityRecord=ActivityRecord{1086e23 u0 com.google.android.apps.nexuslauncher/.NexusLauncherActivity t13}
395    mAppDied=false    drawnStateEvaluated=true    mightAffectAllDrawn=true
396    mViewVisibility=0x0 mHaveFrame=true mObscured=false
397    mSeq=0 mSystemUiVisibility=0x700
398    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
399    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=home mAlwaysOnTop=undefined mRotation=ROTATION_0} s.2}
400    mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=home mAlwaysOnTop=undefined mRotation=ROTATION_0} s.2}
401    mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
402    Frames: containing=[0,0][1080,1920] parent=[0,0][1080,1920]
403        display=[0,0][1080,1920]
404        content=[0,63][1080,1794] visible=[0,63][1080,1794]
405        decor=[0,0][1080,1920]
406    mFrame=[0,0][1080,1920] last=[0,0][1080,1920]
407     cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
408    Cur insets: content=[0,63][0,126] visible=[0,63][0,126] stable=[0,63][0,126]    Lst insets: content=[0,63][0,126] visible=[0,63][0,126] stable=[0,63][0,126]
409     surface=[0,0][0,0]
410    WindowStateAnimator{d192872 com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity}:
411      mSurface=Surface(name=com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity)/@0x83524c3
412      Surface: shown=true layer=0 alpha=1.0 rect=(0.0,0.0) 1080 x 1920 transform=(1.0, 0.0, 1.0, 0.0)
413      mDrawState=HAS_DRAWN       mLastHidden=false
414      mEnterAnimationPending=false      mSystemDecorRect=[0,0][1080,1920] mLastClipRect=[0,0][1080,1920]
415    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
416    mWallpaperX=0.0 mWallpaperY=0.5
417    mWallpaperXStep=0.33333334 mWallpaperYStep=1.0
418    isOnScreen=true
419    isVisible=true
420    mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
421  Window #9 Window{280d8a8 u0 com.android.systemui.ImageWallpaper}:
422    mDisplayId=0 rootTaskId=1 mSession=Session{6fdbba 684:u0a10144} [email protected]
423    mOwnerUid=10144 showForAllUsers=false package=com.android.systemui appop=NONE
424    mAttrs={(0,0)(2330x1920) gr=TOP START CENTER layoutInDisplayCutoutMode=always ty=WALLPAPER fmt=RGBX_8888 wanim=0x103030e
425      fl=NOT_FOCUSABLE NOT_TOUCHABLE LAYOUT_IN_SCREEN LAYOUT_NO_LIMITS SCALED LAYOUT_INSET_DECOR}
426    Requested w=1243 h=1024 mLayoutSeq=67
427    mIsImWindow=false mIsWallpaper=true mIsFloatingLayer=true mWallpaperVisible=true
428    mBaseLayer=11000 mSubLayer=0    mToken=WallpaperWindowToken{25dbafc [email protected]}
429    mViewVisibility=0x0 mHaveFrame=true mObscured=false
430    mSeq=0 mSystemUiVisibility=0x0
431    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
432    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
433    mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
434    mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
435    Frames: containing=[0,0][1080,1920] parent=[0,0][1080,1920]
436        display=[-10000,-10000][10000,10000]
437        content=[0,63][1080,1794] visible=[0,63][1080,1794]
438        decor=[0,0][1080,1920]
439    mFrame=[0,0][2330,1920] last=[0,0][2330,1920]
440     cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
441    Cur insets: content=[0,63][1250,126] visible=[0,63][1250,126] stable=[0,63][1250,126]    Lst insets: content=[0,63][1250,126] visible=[0,63][1250,126] stable=[0,63][1250,126]
442     surface=[0,0][0,0]
443    WindowStateAnimator{1a64140 com.android.systemui.ImageWallpaper}:
444      mSurface=Surface(name=com.android.systemui.ImageWallpaper)/@0x32b7879
445      Surface: shown=true layer=0 alpha=0.0 rect=(-54.0,-96.0) 1243 x 1024 transform=(2.0619469, 0.0, 2.0625, 0.0)
446      mDrawState=HAS_DRAWN       mLastHidden=false
447      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0] mLastClipRect=[0,0][0,0]
448    mLastFreezeDuration=+1m16s364ms
449    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
450    mHScale=1.8744972 mVScale=1.875
451    mWallpaperX=0.0 mWallpaperY=0.5
452    mWallpaperXStep=0.33333334 mWallpaperYStep=1.0
453    mWallpaperZoomOut=0.0
454    isOnScreen=true
455    isVisible=true
456    mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
457
458  mGlobalConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
459  mHasPermanentDpad=false
460  mTopFocusedDisplayId=0
461  mInputMethodTarget in display# 0 Window{7bfc52e u0 com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity}
462  inputMethodControlTarget in display# 0 null
463  mInTouchMode=true
464  mLastDisplayFreezeDuration=0 due to Window{280d8a8 u0 com.android.systemui.ImageWallpaper}
465  mLastWakeLockHoldingWindow=null mLastWakeLockObscuringWindow=null
466  mHighResTaskSnapshotScale=0.8
467  SnapshotCache
468  mInputMethodWindow=Window{8bfec3 u0 InputMethod}
469  mTraversalScheduled=false
470  mHoldScreenWindow=null
471  mObscuringWindow=Window{280d8a8 u0 com.android.systemui.ImageWallpaper}
472  mSystemBooted=true mDisplayEnabled=true
473  mTransactionSequence=93
474  mDisplayFrozen=false windows=0 client=false apps=0  mRotation=0  mLastOrientation=5
475 waitingForConfig=false
476  Animation settings: disabled=false window=1.0 transition=1.0 animator=1.0
477  PolicyControl.sImmersiveStatusFilter=null
478  PolicyControl.sImmersiveNavigationFilter=null
479  PolicyControl.sImmersivePreconfirmationsFilter=null
480  `;
481  const validWindowOutputA12 = `
482WINDOW MANAGER WINDOWS (dumpsys window windows)
483  Window #0 Window{ed38f73 u0 pip-dismiss-overlay}:
484    mDisplayId=0 rootTaskId=1 mSession=Session{59e06c8 819:u0a10095} [email protected]
485    mOwnerUid=10095 showForAllUsers=true package=com.android.systemui appop=NONE
486    mAttrs={(0,1592)(fillx688) sim={adjust=pan} layoutInDisplayCutoutMode=always ty=NAVIGATION_BAR_PANEL fmt=TRANSLUCENT
487      fl=NOT_FOCUSABLE NOT_TOUCHABLE LAYOUT_IN_SCREEN
488      pfl=SHOW_FOR_ALL_USERS USE_BLAST FIT_INSETS_CONTROLLED
489      bhv=DEFAULT}
490    Requested w=1080 h=688 mLayoutSeq=47
491    mBaseLayer=251000 mSubLayer=0    mToken=WindowToken{eb8cfe2 [email protected]}
492    mViewVisibility=0x4 mHaveFrame=true mObscured=false
493    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
494    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.70 fontWeightAdjustment=0}
495    mLastReportedConfiguration={0.0 ?mcc?mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mMaxBounds=Rect(0, 0 - 0, 0) mWindowingMode=undefined mDisplayWindowingMode=undefined mActivityType=undefined mAlwaysOnTop=undefined mRotation=undefined} ?fontWeightAdjustment}
496    mHasSurface=false isReadyForDisplay()=false mWindowRemovalAllowed=false
497    Frames: containing=[0,0][1080,2280] parent=[0,0][1080,2280] display=[0,0][1080,2280]
498    mFrame=[0,1592][1080,2280] last=[0,0][0,0]
499     surface=[0,0][0,0]
500    WindowStateAnimator{6c41a23 pip-dismiss-overlay}:
501      mDrawState=NO_SURFACE       mLastHidden=false
502      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0]
503      mShownAlpha=0.0 mAlpha=1.0 mLastAlpha=0.0
504    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
505    isOnScreen=false
506    isVisible=false
507  Window #1 Window{5ef94cb u0 NavigationBar0}:
508    mDisplayId=0 rootTaskId=1 mSession=Session{59e06c8 819:u0a10095} [email protected]
509    mOwnerUid=10095 showForAllUsers=true package=com.android.systemui appop=NONE
510    mAttrs={(0,0)(fillxfill) sim={adjust=pan} layoutInDisplayCutoutMode=always ty=NAVIGATION_BAR fmt=TRANSLUCENT
511      fl=NOT_FOCUSABLE NOT_TOUCH_MODAL TOUCHABLE_WHEN_WAKING WATCH_OUTSIDE_TOUCH SPLIT_TOUCH HARDWARE_ACCELERATED FLAG_SLIPPERY
512      pfl=COLOR_SPACE_AGNOSTIC USE_BLAST FIT_INSETS_CONTROLLED TRUSTED_OVERLAY
513      bhv=DEFAULT}
514    Requested w=1080 h=132 mLayoutSeq=108
515    mBaseLayer=241000 mSubLayer=0    mToken=WindowToken{246b39a [email protected]}
516    mViewVisibility=0x0 mHaveFrame=true mObscured=false
517    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
518    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.70 fontWeightAdjustment=0}
519    mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.70 fontWeightAdjustment=0}
520    mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
521    Frames: containing=[0,2148][1080,2280] parent=[0,2148][1080,2280] display=[0,2148][1080,2280]
522    mFrame=[0,2148][1080,2280] last=[0,2148][1080,2280]
523     surface=[0,0][0,0]
524    ContainerAnimator:
525      mLeash=Surface(name=Surface(name=5ef94cb NavigationBar0)/@0x4efa03 - animation-leash of insets_animation)/@0xb87fb20 mAnimationType=insets_animation
526      Animation: [email protected]9
527        ControlAdapter mCapturedLeash=Surface(name=Surface(name=5ef94cb NavigationBar0)/@0x4efa03 - animation-leash of insets_animation)/@0xb87fb20
528    WindowStateAnimator{5f3569e NavigationBar0}:
529       mAnimationIsEntrance=true      mSurface=Surface(name=NavigationBar0)/@0x934357f
530      Surface: shown=true layer=0 alpha=1.0 rect=(0.0,0.0)  transform=(1.0, 0.0, 0.0, 1.0)
531      mDrawState=HAS_DRAWN       mLastHidden=false
532      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0]
533    mLastFreezeDuration=+444ms
534    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
535    isOnScreen=true
536    isVisible=true
537  Window #2 Window{e7e5d02 u0 NotificationShade}:
538    mDisplayId=0 rootTaskId=1 mSession=Session{59e06c8 819:u0a10095} [email protected]
539    mOwnerUid=10095 showForAllUsers=true package=com.android.systemui appop=NONE
540    mAttrs={(0,0)(fillxfill) gr=TOP CENTER_VERTICAL sim={adjust=resize} layoutInDisplayCutoutMode=always ty=2040 fmt=TRANSLUCENT
541      fl=NOT_FOCUSABLE TOUCHABLE_WHEN_WAKING WATCH_OUTSIDE_TOUCH SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS
542      pfl=COLOR_SPACE_AGNOSTIC USE_BLAST BEHAVIOR_CONTROLLED FIT_INSETS_CONTROLLED
543      bhv=SHOW_TRANSIENT_BARS_BY_SWIPE}
544    Requested w=1080 h=2280 mLayoutSeq=27
545    mBaseLayer=191000 mSubLayer=0    mToken=WindowToken{64899e4 [email protected]}
546    mViewVisibility=0x4 mHaveFrame=true mObscured=false
547    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
548    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.70 fontWeightAdjustment=0}
549    mLastReportedConfiguration={0.0 ?mcc?mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mMaxBounds=Rect(0, 0 - 0, 0) mWindowingMode=undefined mDisplayWindowingMode=undefined mActivityType=undefined mAlwaysOnTop=undefined mRotation=undefined} ?fontWeightAdjustment}
550    mHasSurface=false isReadyForDisplay()=false mWindowRemovalAllowed=false
551    Frames: containing=[0,0][1080,2280] parent=[0,0][1080,2280] display=[0,0][1080,2280]
552    mFrame=[0,0][1080,2280] last=[0,0][1080,2280]
553     surface=[0,0][0,0]
554    WindowStateAnimator{2c1a94c NotificationShade}:
555      mDrawState=NO_SURFACE       mLastHidden=false
556      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0]
557      mShownAlpha=0.0 mAlpha=1.0 mLastAlpha=0.0
558    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
559    isOnScreen=false
560    isVisible=false
561  Window #3 Window{d01181 u0 StatusBar}:
562    mDisplayId=0 rootTaskId=1 mSession=Session{59e06c8 819:u0a10095} [email protected]
563    mOwnerUid=10095 showForAllUsers=true package=com.android.systemui appop=NONE
564    mAttrs={(0,0)(fillx83) gr=TOP CENTER_VERTICAL sim={adjust=pan} layoutInDisplayCutoutMode=always ty=STATUS_BAR fmt=TRANSLUCENT
565      fl=NOT_FOCUSABLE SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS
566      pfl=COLOR_SPACE_AGNOSTIC USE_BLAST FIT_INSETS_CONTROLLED
567      bhv=DEFAULT}
568    Requested w=1080 h=83 mLayoutSeq=108
569    mBaseLayer=171000 mSubLayer=0    mToken=WindowToken{6b6da05 [email protected]}
570    mViewVisibility=0x0 mHaveFrame=true mObscured=false
571    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
572    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.70 fontWeightAdjustment=0}
573    mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.70 fontWeightAdjustment=0}
574    mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
575    Frames: containing=[0,0][1080,2280] parent=[0,0][1080,2280] display=[0,0][1080,2280]
576    mFrame=[0,0][1080,83] last=[0,0][1080,83]
577     surface=[0,0][0,0]
578    ContainerAnimator:
579      mLeash=Surface(name=Surface(name=d01181 StatusBar)/@0x14c0ab2 - animation-leash of insets_animation)/@0xad26d95 mAnimationType=insets_animation
580      Animation: [email protected]a
581        ControlAdapter mCapturedLeash=Surface(name=Surface(name=d01181 StatusBar)/@0x14c0ab2 - animation-leash of insets_animation)/@0xad26d95
582    WindowStateAnimator{c60aa9b StatusBar}:
583       mAnimationIsEntrance=true      mSurface=Surface(name=StatusBar)/@0x8060e38
584      Surface: shown=true layer=0 alpha=1.0 rect=(0.0,0.0)  transform=(1.0, 0.0, 0.0, 1.0)
585      mDrawState=HAS_DRAWN       mLastHidden=false
586      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0]
587    mLastFreezeDuration=+557ms
588    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
589    isOnScreen=true
590    isVisible=true
591  Window #4 Window{8816770 u0 ShellDropTarget}:
592    mDisplayId=0 rootTaskId=1 mSession=Session{59e06c8 819:u0a10095} [email protected]
593    mOwnerUid=10095 showForAllUsers=true package=com.android.systemui appop=SYSTEM_ALERT_WINDOW
594    mAttrs={(0,0)(fillxfill) sim={adjust=pan} layoutInDisplayCutoutMode=always ty=APPLICATION_OVERLAY fmt=TRANSLUCENT
595      fl=NOT_FOCUSABLE HARDWARE_ACCELERATED
596      pfl=SHOW_FOR_ALL_USERS NO_MOVE_ANIMATION USE_BLAST FIT_INSETS_CONTROLLED INTERCEPT_GLOBAL_DRAG_AND_DROP
597      bhv=DEFAULT}
598    Requested w=1080 h=2280 mLayoutSeq=7
599    mBaseLayer=121000 mSubLayer=0    mToken=WindowToken{e08e36e [email protected]}
600    mViewVisibility=0x4 mHaveFrame=true mObscured=false
601    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
602    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.70 fontWeightAdjustment=0}
603    mLastReportedConfiguration={0.0 ?mcc?mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mMaxBounds=Rect(0, 0 - 0, 0) mWindowingMode=undefined mDisplayWindowingMode=undefined mActivityType=undefined mAlwaysOnTop=undefined mRotation=undefined} ?fontWeightAdjustment}
604    mHasSurface=false isReadyForDisplay()=false mWindowRemovalAllowed=false
605    Frames: containing=[0,0][1080,2280] parent=[0,0][1080,2280] display=[0,0][1080,2280]
606    mFrame=[0,0][1080,2280] last=[0,0][1080,2280]
607     surface=[0,0][0,0]
608    WindowStateAnimator{a394e11 ShellDropTarget}:
609      mDrawState=NO_SURFACE       mLastHidden=false
610      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0]
611      mShownAlpha=0.0 mAlpha=1.0 mLastAlpha=0.0
612    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
613    isOnScreen=false
614    isVisible=false
615  Window #5 Window{f4229a8 u0 InputMethod}:
616    mDisplayId=0 rootTaskId=1 mSession=Session{ef4589 1288:u0a10085} [email protected]
617    mOwnerUid=10085 showForAllUsers=false package=com.android.inputmethod.latin appop=NONE
618    mAttrs={(0,0)(fillxwrap) gr=BOTTOM CENTER_VERTICAL sim={adjust=pan forwardNavigation} ty=INPUT_METHOD fmt=TRANSPARENT wanim=0x1030056 receive insets ignoring z-order
619      fl=NOT_FOCUSABLE LAYOUT_IN_SCREEN SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS
620      pfl=USE_BLAST FIT_INSETS_CONTROLLED
621      bhv=DEFAULT
622      fitTypes=STATUS_BARS NAVIGATION_BARS
623      fitSides=LEFT TOP RIGHT}
624    Requested w=1080 h=0 mLayoutSeq=36
625    mIsImWindow=true mIsWallpaper=false mIsFloatingLayer=true
626    mBaseLayer=151000 mSubLayer=0    mToken=WindowToken{8b1a07b [email protected]}
627    mViewVisibility=0x8 mHaveFrame=true mObscured=false
628    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
629    mTouchableInsets=2 mGivenInsetsPending=false
630    touchable region=SkRegion()
631    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.70 fontWeightAdjustment=0}
632    mLastReportedConfiguration={0.0 ?mcc?mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mMaxBounds=Rect(0, 0 - 0, 0) mWindowingMode=undefined mDisplayWindowingMode=undefined mActivityType=undefined mAlwaysOnTop=undefined mRotation=undefined} ?fontWeightAdjustment}
633    mHasSurface=false isReadyForDisplay()=false mWindowRemovalAllowed=false
634    Frames: containing=[0,0][1080,2280] parent=[0,0][1080,2280] display=[0,0][1080,2280]
635    mFrame=[0,2280][1080,2280] last=[0,0][0,0]
636     surface=[0,0][0,0]
637    ContainerAnimator:
638      mLeash=Surface(name=Surface(name=f4229a8 InputMethod)/@0xf5e3c66 - animation-leash of insets_animation)/@0x2559b76 mAnimationType=insets_animation
639      Animation: [email protected]7
640        ControlAdapter mCapturedLeash=Surface(name=Surface(name=f4229a8 InputMethod)/@0xf5e3c66 - animation-leash of insets_animation)/@0x2559b76
641    WindowStateAnimator{529d5e4 InputMethod}:
642      mDrawState=NO_SURFACE       mLastHidden=false
643      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0]
644      mShownAlpha=0.0 mAlpha=1.0 mLastAlpha=0.0
645    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
646    isOnScreen=false
647    isVisible=false
648  Window #6 Window{86a2d27 u0 com.android.launcher3/com.android.launcher3.uioverrides.QuickstepLauncher}:
649    mDisplayId=0 rootTaskId=1 mSession=Session{7775ff 1077:u0a10089} [email protected]
650    mOwnerUid=10089 showForAllUsers=false package=com.android.launcher3 appop=NONE
651    mAttrs={(0,0)(fillxfill) sim={adjust=nothing forwardNavigation} layoutInDisplayCutoutMode=always ty=BASE_APPLICATION fmt=TRANSPARENT wanim=0x10302f2
652      fl=LAYOUT_IN_SCREEN LAYOUT_INSET_DECOR SHOW_WALLPAPER SPLIT_TOUCH HARDWARE_ACCELERATED DRAWS_SYSTEM_BAR_BACKGROUNDS
653      pfl=NO_MOVE_ANIMATION FORCE_DRAW_STATUS_BAR_BACKGROUND USE_BLAST FIT_INSETS_CONTROLLED
654      vsysui=LAYOUT_STABLE LAYOUT_HIDE_NAVIGATION LAYOUT_FULLSCREEN
655      bhv=DEFAULT
656      fitSides=}
657    Requested w=1080 h=2280 mLayoutSeq=108
658    mBaseLayer=21000 mSubLayer=0    mToken=ActivityRecord{5f62743 u0 com.android.launcher3/.uioverrides.QuickstepLauncher t11}
659    mActivityRecord=ActivityRecord{5f62743 u0 com.android.launcher3/.uioverrides.QuickstepLauncher t11}
660    mAppDied=false    drawnStateEvaluated=true    mightAffectAllDrawn=true
661    mViewVisibility=0x0 mHaveFrame=true mObscured=false
662    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
663    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=home mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.5 fontWeightAdjustment=0}
664    mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=home mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.5 fontWeightAdjustment=0}
665    mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
666    Frames: containing=[0,0][1080,2280] parent=[0,0][1080,2280] display=[0,0][1080,2280]
667    mFrame=[0,0][1080,2280] last=[0,0][1080,2280]
668     surface=[0,0][0,0]
669    WindowStateAnimator{453ba4d com.android.launcher3/com.android.launcher3.uioverrides.QuickstepLauncher}:
670      mSurface=Surface(name=com.android.launcher3/com.android.launcher3.uioverrides.QuickstepLauncher)/@0xef7f902
671      Surface: shown=true layer=0 alpha=1.0 rect=(0.0,0.0)  transform=(1.0, 0.0, 0.0, 1.0)
672      mDrawState=HAS_DRAWN       mLastHidden=false
673      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0]
674    mLastFreezeDuration=+331ms
675    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
676    mWallpaperX=0.0 mWallpaperY=0.5
677    mWallpaperXStep=0.33333334 mWallpaperYStep=1.0
678    mWallpaperZoomOut=0.0
679    isOnScreen=true
680    isVisible=true
681  Window #7 Window{dc87575 u0 com.android.systemui.ImageWallpaper}:
682    mDisplayId=0 rootTaskId=1 mSession=Session{59e06c8 819:u0a10095} [email protected]
683    mOwnerUid=10095 showForAllUsers=false package=com.android.systemui appop=NONE
684    mAttrs={(0,0)(2767x2280) gr=TOP START CENTER layoutInDisplayCutoutMode=always ty=WALLPAPER fmt=RGBX_8888 wanim=0x103030e
685      fl=NOT_FOCUSABLE NOT_TOUCHABLE LAYOUT_IN_SCREEN LAYOUT_NO_LIMITS SCALED LAYOUT_INSET_DECOR
686      pfl=WANTS_OFFSET_NOTIFICATIONS USE_BLAST
687      bhv=DEFAULT}
688    Requested w=1243 h=1024 mLayoutSeq=108
689    mIsImWindow=false mIsWallpaper=true mIsFloatingLayer=true
690    mBaseLayer=11000 mSubLayer=0    mToken=WallpaperWindowToken{8bd9c0e [email protected]}
691    mViewVisibility=0x0 mHaveFrame=true mObscured=false
692    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
693    mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.70 fontWeightAdjustment=0}
694    mLastReportedConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.70 fontWeightAdjustment=0}
695    mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false
696    Frames: containing=[0,0][1080,2280] parent=[0,0][1080,2280] display=[-10000,-10000][10000,10000]
697    mFrame=[0,0][2767,2280] last=[0,0][2767,2280]
698     surface=[0,0][0,0]
699    WindowStateAnimator{6ffd213 com.android.systemui.ImageWallpaper}:
700      mSurface=Surface(name=com.android.systemui.ImageWallpaper)/@0xaa06c50
701      Surface: shown=true layer=0 alpha=1.0 rect=(0.0,0.0)  transform=(1.0, 0.0, 0.0, 1.0)
702      mDrawState=HAS_DRAWN       mLastHidden=false
703      mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0]
704    mLastFreezeDuration=+496ms
705    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
706    mHScale=2.2260659 mVScale=2.2265625
707    mWallpaperX=0.0 mWallpaperY=0.5
708    mWallpaperXStep=0.33333334 mWallpaperYStep=1.0
709    mWallpaperZoomOut=0.0
710    isOnScreen=true
711    isVisible=true
712
713  mGlobalConfiguration={1.0 310mcc260mnc [en_US] ldltr sw392dp w392dp h750dp 440dpi nrml long port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 2280) mAppBounds=Rect(0, 0 - 1080, 2148) mMaxBounds=Rect(0, 0 - 1080, 2280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} as.2 s.70 fontWeightAdjustment=0}
714  mHasPermanentDpad=false
715  mTopFocusedDisplayId=0
716  imeLayeringTarget in display# 0 Window{86a2d27 u0 com.android.launcher3/com.android.launcher3.uioverrides.QuickstepLauncher}
717  imeInputTarget in display# 0 Window{86a2d27 u0 com.android.launcher3/com.android.launcher3.uioverrides.QuickstepLauncher}
718  imeControlTarget in display# 0 Window{86a2d27 u0 com.android.launcher3/com.android.launcher3.uioverrides.QuickstepLauncher}
719  mInTouchMode=true
720  mBlurEnabled=true
721  mLastDisplayFreezeDuration=+571ms due to Window{d01181 u0 StatusBar}
722  mLastWakeLockHoldingWindow=null mLastWakeLockObscuringWindow=null
723  mHighResTaskSnapshotScale=1.0
724  SnapshotCache
725  mInputMethodWindow=Window{f4229a8 u0 InputMethod}
726  mTraversalScheduled=false
727  mHoldScreenWindow=null
728  mObscuringWindow=Window{dc87575 u0 com.android.systemui.ImageWallpaper}
729  mSystemBooted=true mDisplayEnabled=true
730  mTransactionSequence=153
731  mDisplayFrozen=false windows=0 client=false apps=0  mRotation=0  mLastOrientation=5
732 waitingForConfig=false
733  Animation settings: disabled=false window=1.0 transition=1.0 animator=1.0
734  `;
735  const validSystemBarsA11 = {
736    statusBar: {visible: true, x: 0, y: 0, width: 1080, height: 63},
737    navigationBar: {visible: true, x: 0, y: 1794, width: 1080, height: 126}
738  };
739  const validSystemBarsA12 = {
740    statusBar: {visible: true, x: 0, y: 0, width: 1080, height: 83},
741    navigationBar: {visible: true, x: 0, y: 2148, width: 1080, height: 132}
742  };
743
744  describe('parseWindows', function () {
745    it('should throw an error if no windows were found', function () {
746      expect(() => { parseWindows(''); }).to.throw(Error);
747    });
748    it('should return defaults if only non matching windows were found', function () {
749      parseWindows(`
750      WINDOW MANAGER WINDOWS (dumpsys window windows)
751        Window #0 Window{d1b7133 u0 pip-dismiss-overlay}:
752          mDisplayId=0 rootTaskId=1 mSession=Session{6fdbba 684:u0a10144} [email protected]
753          mOwnerUid=10144 showForAllUsers=true package=com.android.systemui appop=NONE
754          mAttrs={(0,1264)(fillx656) sim={adjust=pan} ty=NAVIGATION_BAR_PANEL fmt=TRANSLUCENT
755            fl=NOT_FOCUSABLE NOT_TOUCHABLE LAYOUT_IN_SCREEN HARDWARE_ACCELERATED
756            pfl=SHOW_FOR_ALL_USERS FIT_INSETS_CONTROLLED}
757          Requested w=1080 h=656 mLayoutSeq=52
758          mBaseLayer=251000 mSubLayer=0    mToken=WindowToken{561abec [email protected]}
759          mViewVisibility=0x4 mHaveFrame=true mObscured=false
760          mSeq=0 mSystemUiVisibility=0x0
761          mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
762          mFullConfiguration={1.0 310mcc260mnc [en_US] ldltr sw411dp w411dp h659dp 420dpi nrml port finger qwerty/v/v dpad/v winConfig={ mBounds=Rect(0, 0 - 1080, 1920) mAppBounds=Rect(0, 0 - 1080, 1794) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8}
763          mLastReportedConfiguration={0.0 ?mcc?mnc ?localeList ?layoutDir ?swdp ?wdp ?hdp ?density ?lsize ?long ?ldr ?wideColorGamut ?orien ?uimode ?night ?touch ?keyb/?/? ?nav/? winConfig={ mBounds=Rect(0, 0 - 0, 0) mAppBounds=null mWindowingMode=undefined mDisplayWindowingMode=undefined mActivityType=undefined mAlwaysOnTop=undefined mRotation=undefined}}
764          mHasSurface=false isReadyForDisplay()=false mWindowRemovalAllowed=false
765          Frames: containing=[0,0][1080,1920] parent=[0,0][1080,1920]
766              display=[0,0][1080,1920]
767              content=[0,1264][1080,1794] visible=[0,1264][1080,1794]
768              decor=[0,0][1080,1920]
769          mFrame=[0,1264][1080,1920] last=[0,0][0,0]
770          cutout=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}} last=DisplayCutout{insets=Rect(0, 0 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]}}
771          Cur insets: content=[0,0][0,126] visible=[0,0][0,126] stable=[0,0][0,126]    Lst insets: content=[0,0][0,126] visible=[0,0][0,126] stable=[0,0][0,126]
772          surface=[0,0][0,0]
773          WindowStateAnimator{d2621a4 pip-dismiss-overlay}:
774            mDrawState=NO_SURFACE       mLastHidden=false
775            mEnterAnimationPending=false      mSystemDecorRect=[0,0][0,0] mLastClipRect=[0,0][0,0]
776            mShownAlpha=0.0 mAlpha=1.0 mLastAlpha=0.0
777          mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0
778          isOnScreen=false
779          isVisible=false
780          mRequestedInsetsState: InsetsState: {mDisplayFrame=Rect(0, 0 - 0, 0), mSources= {  }
781      `).should.be.eql({
782        statusBar: {visible: false, x: 0, y: 0, width: 0, height: 0},
783        navigationBar: {visible: false, x: 0, y: 0, width: 0, height: 0}
784      });
785    });
786    it('should return status and navigation bar for Android 11 and below', function () {
787      parseWindows(validWindowOutputA11).should.be.eql(validSystemBarsA11);
788    });
789    it('should return status and navigation bar for Android 12 and above', function () {
790      parseWindows(validWindowOutputA12).should.be.eql(validSystemBarsA12);
791    });
792  });
793
794  describe('getSystemBars', function () {
795    let driver;
796
797    it('should throw an error if was unable to retrieve dumpsys output', async function () {
798      driver = new AndroidDriver();
799      driver.adb = {};
800      driver.adb.shell = () => { throw new Error(); };
801      await driver.getSystemBars().should.be.rejected;
802    });
803    it('should return the parsed system bar info below Android 11', async function () {
804      driver = new AndroidDriver();
805      driver.adb = {};
806      driver.adb.shell = () => validWindowOutputA11;
807      (await driver.getSystemBars()).should.be.eql(validSystemBarsA11);
808    });
809  });
810});
811
Full Screen

Accelerate Your Automation Test Cycles With LambdaTest

Leverage LambdaTest’s cloud-based platform to execute your automation tests in parallel and trim down your test execution time significantly. Your first 100 automation testing minutes are on us.

Try LambdaTest

Run JavaScript Tests on LambdaTest Cloud Grid

Execute automation tests with Appium Android Driver on a cloud-based Grid of 3000+ real browsers and operating systems for both web and mobile applications.

Test now for Free
LambdaTestX

We use cookies to give you the best experience. Cookies help to provide a more personalized experience and relevant advertising for you, and web analytics for us. Learn More in our Cookies policy, Privacy & Terms of service

Allow Cookie
Sarah

I hope you find the best code examples for your project.

If you want to accelerate automated browser testing, try LambdaTest. Your first 100 automation testing minutes are FREE.

Sarah Elson (Product & Growth Lead)