Commits

Adam Powell authored 35e2ea02035
Only call Drawable.setVisible(false) for visible outgoing drawables In framework views where we're handling the new visibility aggregated call we only update the drawable visibility when we're attached to a window. For old outgoing drawables being replaced, gate this on whether the drawable is already marked visible instead. This catches a case where views being inflated might set drawables in in a superclass constructor and have them replaced in a later constructor. Gating the call into a drawable that might invoke its callback (the view being constructed) avoids potential problems where overridden methods are called unexpectedly on a view subclass that has not finished running its constructor. This is a better check than isAttachedToWindow, as isAttachedToWindow will return false if the view has been temporarily detached from its parent by a view-recycling container. In those cases, the view would not correctly update the outgoing drawable. Bug 27461617 Change-Id: I733a2dd3e3df0a8d80d5dc542ca7b30064159d5d