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

Commit a45c056e authored by Chet Haase's avatar Chet Haase Committed by Android (Google) Code Review
Browse files

Merge "Fix display List bugs" into honeycomb

parents f02853f2 678e0adb
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -215665,17 +215665,6 @@
 visibility="public"
>
</method>
<method name="getOnLayoutChangeListeners"
 return="java.util.List&lt;android.view.View.OnLayoutChangeListener&gt;"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getOverScrollMode"
 return="int"
 abstract="false"
+0 −11
Original line number Diff line number Diff line
@@ -215687,17 +215687,6 @@
 visibility="public"
>
</method>
<method name="getOnLayoutChangeListeners"
 return="java.util.List&lt;android.view.View.OnLayoutChangeListener&gt;"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getOverScrollMode"
 return="int"
 abstract="false"
+6 −7
Original line number Diff line number Diff line
@@ -2936,13 +2936,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
        mOnLayoutChangeListeners.remove(listener);
    }

    /**
     * Gets the current list of listeners for layout changes.
     */
    public List<OnLayoutChangeListener> getOnLayoutChangeListeners() {
        return mOnLayoutChangeListeners;
    }

    /**
     * Returns the focus-change callback registered for this view.
     *
@@ -6011,6 +6004,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
                invalidate(true);
            }
            mBackgroundSizeChanged = true;
            invalidateParentIfNeeded();
        }
    }

@@ -6077,6 +6071,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
                invalidate(true);
            }
            mBackgroundSizeChanged = true;
            invalidateParentIfNeeded();
        }
    }

@@ -6137,6 +6132,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
                invalidate(true);
            }
            mBackgroundSizeChanged = true;
            invalidateParentIfNeeded();
        }
    }

@@ -6194,6 +6190,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
                invalidate(true);
            }
            mBackgroundSizeChanged = true;
            invalidateParentIfNeeded();
        }
    }

@@ -6438,6 +6435,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
                mPrivateFlags |= DRAWN; // force another invalidation with the new orientation
                invalidate(false);
            }
            invalidateParentIfNeeded();
        }
    }

@@ -6476,6 +6474,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
                mPrivateFlags |= DRAWN; // force another invalidation with the new orientation
                invalidate(false);
            }
            invalidateParentIfNeeded();
        }
    }

+16 −3
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.view;

import android.animation.LayoutTransition;
import android.view.animation.AlphaAnimation;
import com.android.internal.R;
import com.android.internal.util.Predicate;

@@ -2364,6 +2365,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager

        DisplayList displayList = null;
        Bitmap cache = null;
        boolean hasDisplayList = false;
        if (caching) {
            if (!canvas.isHardwareAccelerated()) {
                if (layerType != LAYER_TYPE_NONE) {
@@ -2376,12 +2378,13 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
                    child.buildDrawingCache(true);
                    cache = child.getDrawingCache(true);
                } else if (layerType == LAYER_TYPE_NONE) {
                    displayList = child.getDisplayList();
                    // Delay getting the display list until animation-driven alpha values are
                    // set up and possibly passed on to the view
                    hasDisplayList = true;
                }
            }
        }

        final boolean hasDisplayList = displayList != null && displayList.isReady();
        final boolean hasNoCache = cache == null || hasDisplayList;

        final int restoreTo = canvas.save();
@@ -2472,6 +2475,10 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
            }
        }

        if (hasDisplayList) {
            displayList = child.getDisplayList();
        }

        if (hasNoCache) {
            boolean layerRendered = false;
            if (layerType == LAYER_TYPE_HARDWARE) {
@@ -2529,7 +2536,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
        canvas.restoreToCount(restoreTo);

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

@@ -2538,6 +2547,10 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
            // display lists to render, force an invalidate to allow the animation to
            // continue drawing another frame
            invalidate();
            if (a instanceof AlphaAnimation) {
                // alpha animations should cause the child to recreate its display list
                child.invalidate();
            }
        }

        child.mRecreateDisplayList = false;
+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ void LayerRenderer::finish() {

    generateMesh();

    LAYER_RENDERER_LOGD("Finished rendering into layer, fbo = %d", mLayer->mFbo);
    LAYER_RENDERER_LOGD("Finished rendering into layer, fbo = %d", mLayer->fbo);

    // No need to unbind our FBO, this will be taken care of by the caller
    // who will invoke OpenGLRenderer::resume()