Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit a4f7b2305707411b49be574c7ddc3c785d3c91bc
Author: Andrey Kulikov <andreykulikov@google.com>
Date: Mon Feb 03 20:33:36 2020
Disable clipChildren for GhostViewPost
There is a bug in the ported version of GhostView used by ChangeTransform(all platform levels apart from P). The view added into GhostView can be not drawn at all even when it should be drawn. The platform implementation which we use on P works fine. Why it happens: sometimes we apply an animation matrix for a view added into GhostView. This means the view will not be drawn inside their nominal bounds - [mLeft, mTop, mRight, mBottom]. If GhostViewPort has clipChildren() == true then because of Canvas.quickReject(mLeft, mTop, mRight, mBottom) returning true the drawing of such child would be skipped, even if in fact this child is visible due to the animation matrix transformation. Disabling clipChildren is fixing the issue. There is no clipping applied for a ghost view in the platform implementation as well.
Test: manually on the project provided by an external developer and via a new test
Bug: 148798452
Change-Id: I9b9ceddf8e8bcc6e475b00ea10275cac1274ce78
M transition/transition/src/androidTest/java/androidx/transition/GhostViewTest.java
M transition/transition/src/main/java/androidx/transition/GhostViewPort.java
https://android-review.googlesource.com/1224921
Branch: androidx-master-dev
commit a4f7b2305707411b49be574c7ddc3c785d3c91bc
Author: Andrey Kulikov <andreykulikov@google.com>
Date: Mon Feb 03 20:33:36 2020
Disable clipChildren for GhostViewPost
There is a bug in the ported version of GhostView used by ChangeTransform(all platform levels apart from P). The view added into GhostView can be not drawn at all even when it should be drawn. The platform implementation which we use on P works fine. Why it happens: sometimes we apply an animation matrix for a view added into GhostView. This means the view will not be drawn inside their nominal bounds - [mLeft, mTop, mRight, mBottom]. If GhostViewPort has clipChildren() == true then because of Canvas.quickReject(mLeft, mTop, mRight, mBottom) returning true the drawing of such child would be skipped, even if in fact this child is visible due to the animation matrix transformation. Disabling clipChildren is fixing the issue. There is no clipping applied for a ghost view in the platform implementation as well.
Test: manually on the project provided by an external developer and via a new test
Bug: 148798452
Change-Id: I9b9ceddf8e8bcc6e475b00ea10275cac1274ce78
M transition/transition/src/androidTest/java/androidx/transition/GhostViewTest.java
M transition/transition/src/main/java/androidx/transition/GhostViewPort.java
Description
The bug was submitted by an external developer via email. They provided their project source code what helped to identify the issue