Merge "Fix NPE with display lists when view not attached" into honeycomb

This commit is contained in:
Chet Haase
2011-01-27 10:41:26 -08:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 2 deletions

View File

@@ -8227,6 +8227,21 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
* @hide
*/
protected void dispatchGetDisplayList() {}
/**
* A view that is not attached or hardware accelerated cannot create a display list.
* This method checks these conditions and returns the appropriate result.
*
* @return true if view has the ability to create a display list, false otherwise.
*
* @hide
*/
public boolean canHaveDisplayList() {
if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null) {
return false;
}
return true;
}
/**
* <p>Returns a display list that can be used to draw this view again
@@ -8237,7 +8252,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
* @hide
*/
public DisplayList getDisplayList() {
if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null) {
if (!canHaveDisplayList()) {
return null;
}

View File

@@ -2381,7 +2381,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
} else if (layerType == LAYER_TYPE_NONE) {
// Delay getting the display list until animation-driven alpha values are
// set up and possibly passed on to the view
hasDisplayList = true;
hasDisplayList = child.canHaveDisplayList();
}
}
}