Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3048545c authored by Chris Craik's avatar Chris Craik
Browse files

Make ViewPropertyAnimator correctly damage shadow receivers

bug:14313537
Change-Id: Ib0a2fa1bf6b611acd26cec59203075a193e30a1e
parent dab839e0
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -1142,7 +1142,8 @@ public class ViewPropertyAnimator {
                // Shouldn't happen, but just to play it safe
                return;
            }
            boolean useRenderNodeProperties = mView.mRenderNode != null;

            boolean hardwareAccelerated = mView.isHardwareAccelerated();

            // alpha requires slightly different treatment than the other (transform) properties.
            // The logic in setAlpha() is not simply setting mAlpha, plus the invalidation
@@ -1150,13 +1151,13 @@ public class ViewPropertyAnimator {
            // We track what kinds of properties are set, and how alpha is handled when it is
            // set, and perform the invalidation steps appropriately.
            boolean alphaHandled = false;
            if (!useRenderNodeProperties) {
            if (!hardwareAccelerated) {
                mView.invalidateParentCaches();
            }
            float fraction = animation.getAnimatedFraction();
            int propertyMask = propertyBundle.mPropertyMask;
            if ((propertyMask & TRANSFORM_MASK) != 0) {
                mView.invalidateViewProperty(false, false);
                mView.invalidateViewProperty(hardwareAccelerated, false);
            }
            ArrayList<NameValuesHolder> valueList = propertyBundle.mNameValuesHolder;
            if (valueList != null) {
@@ -1172,7 +1173,7 @@ public class ViewPropertyAnimator {
                }
            }
            if ((propertyMask & TRANSFORM_MASK) != 0) {
                if (!useRenderNodeProperties) {
                if (!hardwareAccelerated) {
                    mView.mPrivateFlags |= View.PFLAG_DRAWN; // force another invalidation
                }
            }