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

Commit 8473f5a7 authored by Chet Haase's avatar Chet Haase
Browse files

ImageView updates cached drawable dimensions when drawable updates

Changes to drawable dimensions were not propagated to cached dimension
values in ImageView. Now this is done when the drawable is invalidated.

Issue #18798152  ImageView caches wrong value of mDrawableWidth and mDrawableHeight

Change-Id: I8da7d82b0543fa02d8ef3d896595bd0e5ea2a61e
parent 5c82d2cc
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -226,6 +226,15 @@ public class ImageView extends View {
    @Override
    public void invalidateDrawable(Drawable dr) {
        if (dr == mDrawable) {
            if (dr != null) {
                // update cached drawable dimensions if they've changed
                final int w = dr.getIntrinsicWidth();
                final int h = dr.getIntrinsicHeight();
                if (w != mDrawableWidth || h != mDrawableHeight) {
                    mDrawableWidth = w;
                    mDrawableHeight = h;
                }
            }
            /* we invalidate the whole view in this case because it's very
             * hard to know where the drawable actually is. This is made
             * complicated because of the offsets and transformations that