Status Update
Comments
se...@google.com <se...@google.com> #2
Thank you for the report and the code causing the issue. I have landed a reproduction which shows that the code thrown an ArrayIndexOutOfBoundsException
from the last bitSet.toByteArray()[0]
when not processed by R8.
mn...@google.com <mn...@google.com> #3
Project: r8
Branch: main
Author: Søren Gjesse <
Link:
Add reproduction of
Expand for full commit details
Add reproduction of issue 391417819
Bug: b/391417819
Change-Id: I37eb909c100104fadeb895bf5d930f4f54e94ba0
Files:
- A
src/test/java/com/android/tools/r8/B391417819Repro.java
Hash: bf9b1962052bf91689120a09deded518e37862a2
Date: Wed Jan 22 09:41:15 2025
mi...@37signals.com <mi...@37signals.com> #4
mn...@google.com <mn...@google.com> #5
I'm really sorry, please use the source code below:
public class R8Test {
public byte[] toBytes(boolean on) {
byte[] bytes = new byte[3];
bytes[0] = 1;
BitSet bits = new BitSet(8);
byte[] byteArray = bits.toByteArray();
if (byteArray != null && byteArray.length >= 1) {
bytes[1] = bits.toByteArray()[0];
}
BitSet bitSet = new BitSet(8);
byte[] byteArray2 = bits.toByteArray();
if (byteArray2 != null && byteArray2.length >= 1) {
bytes[2] = bitSet.toByteArray()[0];
}
return bytes;
}
}
mi...@37signals.com <mi...@37signals.com> #6
Thank you for the update. Most likely the initial source code will still be sufficient to fix the issue.
so...@google.com <so...@google.com> #7
Project: r8
Branch: main
Author: Christoffer Adamsen <
Link:
Minimize reproduction for
Expand for full commit details
Minimize reproduction for b/391417819
Bug: b/391417819
Change-Id: I65a9c2427b41f2075305c1383f9dd44c0f580433
Files:
- M
src/test/java/com/android/tools/r8/B391417819Repro.java
Hash: 8f4ead7ecfe729c0811264de5545f9f104705d0d
Date: Wed Jan 22 12:39:38 2025
mn...@google.com <mn...@google.com> #8
Project: r8
Branch: main
Author: Christoffer Adamsen <
Link:
Extend ArrayConstructionSimplifier dominance checks
Expand for full commit details
Extend ArrayConstructionSimplifier dominance checks
Fixes: b/391417819
Change-Id: Id31f2463d9255415d33ce43bcafd9e794c550a49
Files:
- M
src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java
- M
src/test/java/com/android/tools/r8/B391417819Repro.java
Hash: 99e24d1d45d9812d3b4d005690afdcedab1a15bd
Date: Wed Jan 22 13:06:35 2025
ap...@google.com <ap...@google.com> #9
Project: r8
Branch: 8.7
Author: Christoffer Adamsen <
Link:
Add reproduction of
Expand for full commit details
Add reproduction of issue 391417819
Bug: b/391417819
Change-Id: I37eb909c100104fadeb895bf5d930f4f54e94ba0
Files:
- A
src/test/java/com/android/tools/r8/B391417819Repro.java
Hash: 3353b45090549cf6d57d6cf0a65b8b5959a705b1
Date: Thu Jan 23 08:33:20 2025
na...@google.com <na...@google.com> #10
Project: r8
Branch: 8.7
Author: Christoffer Adamsen <
Link:
Extend ArrayConstructionSimplifier dominance checks
Expand for full commit details
Extend ArrayConstructionSimplifier dominance checks
Fixes: b/391417819
Change-Id: Id31f2463d9255415d33ce43bcafd9e794c550a49
Files:
- M
src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java
- M
src/test/java/com/android/tools/r8/B391417819Repro.java
Hash: c609582a812828005c7edf12d17f240c746b08c6
Date: Thu Jan 23 08:33:30 2025
Description
Jetpack Compose component(s) used:
Android Studio Build: Meerkat | 2024.3.1 Beta 1
Kotlin version: 2.1.0
Steps to Reproduce or Code Sample to Reproduce:
Using the new Autofill support in 1.8.0 works well:
TextField(modifier = Modifier.semantics { contentType = ContentType.Password }, ... )
However, when auto-focus is added to the field, the autofill hints fail to show automatically. The only way to show them again is to long-press on the field and select Autofill menu item.
Requesting autofill after focus request does nothing (either in LaunchedEffect or onFocusChanged modifier).
```
val focusRequester = remember { FocusRequester() }
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
TextField(
modifier = Modifier
.focusRequester(focusRequester)
.semantics { contentType = ContentType.Password },
...
```
Stack trace (if applicable):
```
startInputInner - Id : 0
startInputInner - IInputMethodManagerGlobalInvoker.startInputOrWindowGainedFocus
startInputInner - Id : 0
startInputInner - IInputMethodManagerGlobalInvoker.startInputOrWindowGainedFocus
com.xxx: onRequestShow at ORIGIN_CLIENT_SHOW_SOFT_INPUT reason SHOW_SOFT_INPUT_BY_INSETS_API
show(ime(), fromIme=false)
setRequestedVisibleTypes: visible=true, mask=ime, host=com.xxx.StartActivity, from=android.view.InsetsController.controlAnimationUnchecked:1445 android.view.InsetsController.applyAnimation:2005 android.view.InsetsController.applyAnimation:1968 android.view.InsetsController.show:1309 android.view.InsetsController.show:1237 androidx.core.view.SoftwareKeyboardControllerCompat$Impl30.show:194 androidx.core.view.SoftwareKeyboardControllerCompat.show:71 androidx.compose.ui.text.input.InputMethodManagerImpl.showSoftInput:81 androidx.compose.ui.text.input.TextInputServiceAndroid.setKeyboardVisibleImmediately:475 androidx.compose.ui.text.input.TextInputServiceAndroid.processInputCommands:359
ris()
ssi(): flags=0 view=com.xxx reason = SHOW_SOFT_INPUT_BY_INSETS_API
ssi() view is not EditText
showSoftInput() view=androidx.compose.ui.platform.AndroidComposeView{3c95fa5 VFED..... .F....ID 0,0-1080,2400 aid=1073741846} flags=0 reason=SHOW_SOFT_INPUT_BY_INSETS_API
setRequestedVisibleTypes: visible=false, mask=ime, host=com.xxx.StartActivity, from=android.view.InsetsController.controlAnimationUncheckedInner:1546 android.view.InsetsController.controlAnimationUnchecked:1449 android.view.InsetsController.applyAnimation:2005 android.view.InsetsController.applyAnimation:1968 android.view.InsetsController.show:1309 android.view.InsetsController.show:1237 androidx.core.view.SoftwareKeyboardControllerCompat$Impl30.show:194 androidx.core.view.SoftwareKeyboardControllerCompat.show:71 androidx.compose.ui.text.input.InputMethodManagerImpl.showSoftInput:81 androidx.compose.ui.text.input.TextInputServiceAndroid.setKeyboardVisibleImmediately:475
Flattened final assist data: 1148 bytes, containing 1 windows, 9 views
Flattened final assist data: 1544 bytes, containing 1 windows, 15 views
showSoftInput(View,I)
com.xxx:803fa14f: onRequestShow at ORIGIN_CLIENT_SHOW_SOFT_INPUT reason SHOW_SOFT_INPUT
ssi(): flags=0 view=com.xxx reason = SHOW_SOFT_INPUT
ssi() view is not EditText
showSoftInput() view=androidx.compose.ui.platform.AndroidComposeView{3c95fa5 VFED..... .F....ID 0,0-1080,2400 aid=1073741846} flags=0 reason=SHOW_SOFT_INPUT
Resizing android.view.ViewRootImpl@ec80947: frame = [0,0][1080,2400] reportDraw = false forceLayout = false syncSeqId = -1
Resizing android.view.ViewRootImpl@ec80947: frame = [0,0][1080,2400] reportDraw = false forceLayout = false syncSeqId = -1
Autofill popup was shown.
onStateChanged: host=com.xxxx.StartActivity, from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:7209, state=InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2400), mDisplayCutout=DisplayCutout{insets=Rect(0, 88 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(512, 0 - 568, 88), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2400 physicalDisplayWidth=1080 physicalDisplayHeight=2400 density={2.8125} cutoutSpec={M 0,0 M 0,11.43427858034597 a 9.899054752987353,9.899054752987353 0 1,0 0,19.79810950597471 a 9.899054752987353,9.899054752987353 0 1,0 0,-19.79810950597471 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=0, center=Point(0, 0)}, RoundedCorner{position=TopRight, radius=0, center=Point(0, 0)}, RoundedCorner{position=BottomRight, radius=0, center=Point(0, 0)}, RoundedCorner{position=BottomLeft, radius=0, center=Point(0, 0)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2400), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 88) rotation=0}, mDisplayShape=DisplayShape{ spec=-311912193 displayWidth=1080 displayHeight=2400 physicalPixelDisplaySizeRatio=1.0 rotation=0 offsetX=0 offsetY=0 scale=1.0}, mSources= { InsetsSource: {3 mType=ime mFrame=[0,2265][1080,2400] mVisible=false mFlags=[]}, InsetsSource: {27 mType=displayCutout mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3cd60000 mType=statusBars mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3cd60005 mType=mandatorySystemGestures mFrame=[0,0][1080,122] mVisible=true mFlags=[]}, InsetsSource: {3cd60006 mType=tappableElement mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3e2d0001 mType=navigationBars mFrame=[0,2358][1080,2400] mVisible=true mFlags=[SUPPRESS_SCRIM]}, InsetsSource: {3e2d0004 mType=systemGestures mFrame=[0,0][84,2400] mVisible=true mFlags=[]}, InsetsSource: {3e2d0005 mType=mandatorySystemGestures mFrame=[0,2310][1080,2400] mVisible=true mFlags=[]}, InsetsSource: {3e2d0006 mType=tappableElement mFrame=[0,0][0,0] mVisible=true mFlags=[]}, InsetsSource: {3e2d0024 mType=systemGestures mFrame=[996,0][1080,2400] mVisible=true mFlags=[]} }
applyRequestedVisibilityToControl: visible=false, type=ime, host=com.xxx.StartActivity
handleResized, msg = 4 frames=ClientWindowFrames{frame=[0,0][1080,2400] display=[0,0][1080,2400] parentFrame=[0,0][0,0]} forceNextWindowRelayout=false displayId=0 dragResizing=false compatScale=1.0 frameChanged=false attachedFrameChanged=false configChanged=false displayChanged=false compatScaleChanged=false
onStateChanged: host=com.xxx.StartActivity, from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:7209, state=InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2400), mDisplayCutout=DisplayCutout{insets=Rect(0, 88 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(512, 0 - 568, 88), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2400 physicalDisplayWidth=1080 physicalDisplayHeight=2400 density={2.8125} cutoutSpec={M 0,0 M 0,11.43427858034597 a 9.899054752987353,9.899054752987353 0 1,0 0,19.79810950597471 a 9.899054752987353,9.899054752987353 0 1,0 0,-19.79810950597471 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=0, center=Point(0, 0)}, RoundedCorner{position=TopRight, radius=0, center=Point(0, 0)}, RoundedCorner{position=BottomRight, radius=0, center=Point(0, 0)}, RoundedCorner{position=BottomLeft, radius=0, center=Point(0, 0)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2400), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 88) rotation=0}, mDisplayShape=DisplayShape{ spec=-311912193 displayWidth=1080 displayHeight=2400 physicalPixelDisplaySizeRatio=1.0 rotation=0 offsetX=0 offsetY=0 scale=1.0}, mSources= { InsetsSource: {3 mType=ime mFrame=[0,1548][1080,2400] mVisible=false mFlags=[]}, InsetsSource: {27 mType=displayCutout mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3cd60000 mType=statusBars mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3cd60005 mType=mandatorySystemGestures mFrame=[0,0][1080,122] mVisible=true mFlags=[]}, InsetsSource: {3cd60006 mType=tappableElement mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3e2d0001 mType=navigationBars mFrame=[0,2358][1080,2400] mVisible=true mFlags=[SUPPRESS_SCRIM]}, InsetsSource: {3e2d0004 mType=systemGestures mFrame=[0,0][84,2400] mVisible=true mFlags=[]}, InsetsSource: {3e2d0005 mType=mandatorySystemGestures mFrame=[0,2310][1080,2400] mVisible=true mFlags=[]}, InsetsSource: {3e2d0006 mType=tappableElement mFrame=[0,0][0,0] mVisible=true mFlags=[]}, InsetsSource: {3e2d0024 mType=systemGestures mFrame=[996,0][1080,2400] mVisible=true mFlags=[]} }
applyRequestedVisibilityToControl: visible=false, type=ime, host=com.xxx.StartActivity
handleResized, msg = 4 frames=ClientWindowFrames{frame=[0,0][1080,2400] display=[0,0][1080,2400] parentFrame=[0,0][0,0]} forceNextWindowRelayout=false displayId=0 dragResizing=false compatScale=1.0 frameChanged=false attachedFrameChanged=false configChanged=false displayChanged=false compatScaleChanged=false
show(ime(), fromIme=true)
setRequestedVisibleTypes: visible=true, mask=ime, host=com.xxx.StartActivity, from=android.view.InsetsController.controlAnimationUnchecked:1445 android.view.InsetsController.handlePendingControlRequest:1324 android.view.InsetsController.show:1260 android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:7233 android.view.ViewRootImpl$ViewRootHandler.handleMessage:7166 android.os.Handler.dispatchMessage:106 android.os.Looper.loopOnce:230 android.os.Looper.loop:319 android.app.ActivityThread.main:8919 java.lang.reflect.Method.invoke:-2
controlAnimationUncheckedInner: Added types=ime, animType=0, host=com.xxx.StartActivity, from=android.view.InsetsController.controlAnimationUnchecked:1449 android.view.InsetsController.handlePendingControlRequest:1324 android.view.InsetsController.show:1260
show(ime(), fromIme=true)
com.xxx:803fa14f: onCancelled at PHASE_CLIENT_APPLY_ANIMATION
Resizing android.view.ViewRootImpl@ec80947: frame = [0,0][1080,2400] reportDraw = false forceLayout = false syncSeqId = -1
mWNT: t=0xb4000072fa938ab0 mBlastBufferQueue=0xb4000072ea933d70 fn= 52905 mRenderHdrSdrRatio=1.0 caller= android.view.SyncRtSurfaceTransactionApplier.applyTransaction:96 android.view.SyncRtSurfaceTransactionApplier.lambda$scheduleApply$0:69 android.view.SyncRtSurfaceTransactionApplier.$r8$lambda$SgowXC58rj3PR958kHUfRgLZmvE:0
onStateChanged: host=com.xxx.StartActivity, from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:7209, state=InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2400), mDisplayCutout=DisplayCutout{insets=Rect(0, 88 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(512, 0 - 568, 88), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2400 physicalDisplayWidth=1080 physicalDisplayHeight=2400 density={2.8125} cutoutSpec={M 0,0 M 0,11.43427858034597 a 9.899054752987353,9.899054752987353 0 1,0 0,19.79810950597471 a 9.899054752987353,9.899054752987353 0 1,0 0,-19.79810950597471 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=0, center=Point(0, 0)}, RoundedCorner{position=TopRight, radius=0, center=Point(0, 0)}, RoundedCorner{position=BottomRight, radius=0, center=Point(0, 0)}, RoundedCorner{position=BottomLeft, radius=0, center=Point(0, 0)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2400), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 88) rotation=0}, mDisplayShape=DisplayShape{ spec=-311912193 displayWidth=1080 displayHeight=2400 physicalPixelDisplaySizeRatio=1.0 rotation=0 offsetX=0 offsetY=0 scale=1.0}, mSources= { InsetsSource: {3 mType=ime mFrame=[0,1548][1080,2400] mVisible=false mFlags=[]}, InsetsSource: {27 mType=displayCutout mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3cd60000 mType=statusBars mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3cd60005 mType=mandatorySystemGestures mFrame=[0,0][1080,122] mVisible=true mFlags=[]}, InsetsSource: {3cd60006 mType=tappableElement mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3e2d0001 mType=navigationBars mFrame=[0,2358][1080,2400] mVisible=true mFlags=[SUPPRESS_SCRIM]}, InsetsSource: {3e2d0004 mType=systemGestures mFrame=[0,0][84,2400] mVisible=true mFlags=[]}, InsetsSource: {3e2d0005 mType=mandatorySystemGestures mFrame=[0,2310][1080,2400] mVisible=true mFlags=[]}, InsetsSource: {3e2d0006 mType=tappableElement mFrame=[0,0][0,0] mVisible=true mFlags=[]}, InsetsSource: {3e2d0024 mType=systemGestures mFrame=[996,0][1080,2400] mVisible=true mFlags=[]} }
onStateChanged: host=com.xxx.StartActivity, from=android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:7196, state=InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2400), mDisplayCutout=DisplayCutout{insets=Rect(0, 88 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(512, 0 - 568, 88), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2400 physicalDisplayWidth=1080 physicalDisplayHeight=2400 density={2.8125} cutoutSpec={M 0,0 M 0,11.43427858034597 a 9.899054752987353,9.899054752987353 0 1,0 0,19.79810950597471 a 9.899054752987353,9.899054752987353 0 1,0 0,-19.79810950597471 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=0, center=Point(0, 0)}, RoundedCorner{position=TopRight, radius=0, center=Point(0, 0)}, RoundedCorner{position=BottomRight, radius=0, center=Point(0, 0)}, RoundedCorner{position=BottomLeft, radius=0, center=Point(0, 0)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2400), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 88) rotation=0}, mDisplayShape=DisplayShape{ spec=-311912193 displayWidth=1080 displayHeight=2400 physicalPixelDisplaySizeRatio=1.0 rotation=0 offsetX=0 offsetY=0 scale=1.0}, mSources= { InsetsSource: {3 mType=ime mFrame=[0,1548][1080,2400] mVisible=true mFlags=[]}, InsetsSource: {27 mType=displayCutout mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3cd60000 mType=statusBars mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3cd60005 mType=mandatorySystemGestures mFrame=[0,0][1080,122] mVisible=true mFlags=[]}, InsetsSource: {3cd60006 mType=tappableElement mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3e2d0001 mType=navigationBars mFrame=[0,2358][1080,2400] mVisible=true mFlags=[SUPPRESS_SCRIM]}, InsetsSource: {3e2d0004 mType=systemGestures mFrame=[0,0][84,2400] mVisible=true mFlags=[]}, InsetsSource: {3e2d0005 mType=mandatorySystemGestures mFrame=[0,2310][1080,2400] mVisible=true mFlags=[]}, InsetsSource: {3e2d0006 mType=tappableElement mFrame=[0,0][0,0] mVisible=true mFlags=[]}, InsetsSource: {3e2d0024 mType=systemGestures mFrame=[996,0][1080,2400] mVisible=true mFlags=[]} }
handleResized, msg = 4 frames=ClientWindowFrames{frame=[0,0][1080,2400] display=[0,0][1080,2400] parentFrame=[0,0][0,0]} forceNextWindowRelayout=false displayId=0 dragResizing=false compatScale=1.0 frameChanged=false attachedFrameChanged=false configChanged=false displayChanged=false compatScaleChanged=false
mWNT: t=0xb4000072fa921cf0 mBlastBufferQueue=0xb4000072ea933d70 fn= 52906 mRenderHdrSdrRatio=1.0 caller= android.view.SyncRtSurfaceTransactionApplier.applyTransaction:96 android.view.SyncRtSurfaceTransactionApplier.lambda$scheduleApply$0:69 android.view.SyncRtSurfaceTransactionApplier.$r8$lambda$SgowXC58rj3PR958kHUfRgLZmvE:0
mWNT: t=0xb4000072fa9530d0 mBlastBufferQueue=0xb4000072ea933d70 fn= 52907 mRenderHdrSdrRatio=1.0 caller= android.view.SyncRtSurfaceTransactionApplier.applyTransaction:96 android.view.SyncRtSurfaceTransactionApplier.lambda$scheduleApply$0:69 android.view.SyncRtSurfaceTransactionApplier.$r8$lambda$SgowXC58rj3PR958kHUfRgLZmvE:0
handleWindowFocusChanged: 0 0 call from android.view.ViewRootImpl.-$$Nest$mhandleWindowFocusChanged:0
mWNT: t=0xb4000072fa940930 mBlastBufferQueue=0xb4000072ea933d70 fn= 52908 mRenderHdrSdrRatio=1.0 caller= android.view.SyncRtSurfaceTransactionApplier.applyTransaction:96 android.view.SyncRtSurfaceTransactionApplier.lambda$scheduleApply$0:69 android.view.SyncRtSurfaceTransactionApplier.$r8$lambda$SgowXC58rj3PR958kHUfRgLZmvE:0
onPreWindowFocus: skipped, hasWindowFocus=false mHasImeFocus=true
onPostWindowFocus: skipped, hasWindowFocus=false mHasImeFocus=true
```