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

Commit 75b8c858 authored by Chet Haase's avatar Chet Haase Committed by Android Git Automerger
Browse files

am cd88c39b: am e38ba4ac: Fix gmail crossfade artifacts.

* commit 'cd88c39b':
  Fix gmail crossfade artifacts.
parents 32d35b2c cd88c39b
Loading
Loading
Loading
Loading
+8 −11
Original line number Diff line number Diff line
@@ -2277,12 +2277,13 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
        boolean caching;
        int layerType = child.getLayerType();

        final boolean hardwareAccelerated = canvas.isHardwareAccelerated();
        if ((flags & FLAG_CHILDREN_DRAWN_WITH_CACHE) == FLAG_CHILDREN_DRAWN_WITH_CACHE ||
                (flags & FLAG_ALWAYS_DRAWN_WITH_CACHE) == FLAG_ALWAYS_DRAWN_WITH_CACHE) {
            caching = true;
            if (mAttachInfo != null) scalingRequired = mAttachInfo.mScalingRequired;
        } else {
            caching = (layerType != LAYER_TYPE_NONE) || canvas.isHardwareAccelerated();
            caching = (layerType != LAYER_TYPE_NONE) || hardwareAccelerated;
        }

        if (a != null) {
@@ -2364,7 +2365,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
            return more;
        }

        if (canvas.isHardwareAccelerated()) {
        if (hardwareAccelerated) {
            // Clear INVALIDATED flag to allow invalidation to occur during rendering, but
            // retain the flag's value temporarily in the mRecreateDisplayList flag
            child.mRecreateDisplayList = (child.mPrivateFlags & INVALIDATED) == INVALIDATED;
@@ -2380,7 +2381,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
        Bitmap cache = null;
        boolean hasDisplayList = false;
        if (caching) {
            if (!canvas.isHardwareAccelerated()) {
            if (!hardwareAccelerated) {
                if (layerType != LAYER_TYPE_NONE) {
                    layerType = LAYER_TYPE_SOFTWARE;
                    child.buildDrawingCache(true);
@@ -2519,13 +2520,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
                    }
                } else {
                    child.mPrivateFlags &= ~DIRTY_MASK;
                    // Skip drawing the display list into ours if we were just refreshing
                    // it's content; we already have a reference to it in our display list
                    if (mRecreateDisplayList || mLayerType != LAYER_TYPE_NONE) {
                    ((HardwareCanvas) canvas).drawDisplayList(displayList);
                }
            }
            }
        } else if (cache != null) {
            child.mPrivateFlags &= ~DIRTY_MASK;
            Paint cachePaint;
@@ -2549,13 +2546,13 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
        canvas.restoreToCount(restoreTo);

        if (a != null && !more) {
            if (!canvas.isHardwareAccelerated() && !a.getFillAfter()) {
            if (!hardwareAccelerated && !a.getFillAfter()) {
                child.onSetAlpha(255);
            }
            finishAnimatingView(child, a);
        }

        if (more && canvas.isHardwareAccelerated()) {
        if (more && hardwareAccelerated) {
            // invalidation is the trigger to recreate display lists, so if we're using
            // display lists to render, force an invalidate to allow the animation to
            // continue drawing another frame