Loading core/java/android/view/GLES20Canvas.java +44 −16 Original line number Diff line number Diff line Loading @@ -59,11 +59,11 @@ class GLES20Canvas extends HardwareCanvas { private int mWidth; private int mHeight; private final float[] mPoint = new float[2]; private final float[] mLine = new float[4]; private float[] mPoint; private float[] mLine; private final Rect mClipBounds = new Rect(); private final RectF mPathBounds = new RectF(); private Rect mClipBounds; private RectF mPathBounds; private DrawFilter mFilter; Loading Loading @@ -442,6 +442,31 @@ class GLES20Canvas extends HardwareCanvas { private static native void nInterrupt(int renderer); private static native void nResume(int renderer); /////////////////////////////////////////////////////////////////////////// // Support /////////////////////////////////////////////////////////////////////////// private Rect getInternalClipBounds() { if (mClipBounds == null) mClipBounds = new Rect(); return mClipBounds; } private RectF getPathBounds() { if (mPathBounds == null) mPathBounds = new RectF(); return mPathBounds; } private float[] getPointStorage() { if (mPoint == null) mPoint = new float[2]; return mPoint; } private float[] getLineStorage() { if (mLine == null) mLine = new float[4]; return mLine; } /////////////////////////////////////////////////////////////////////////// // Clipping /////////////////////////////////////////////////////////////////////////// Loading Loading @@ -530,9 +555,10 @@ class GLES20Canvas extends HardwareCanvas { @Override public boolean quickReject(Path path, EdgeType type) { path.computeBounds(mPathBounds, true); return nQuickReject(mRenderer, mPathBounds.left, mPathBounds.top, mPathBounds.right, mPathBounds.bottom); RectF pathBounds = getPathBounds(); path.computeBounds(pathBounds, true); return nQuickReject(mRenderer, pathBounds.left, pathBounds.top, pathBounds.right, pathBounds.bottom); } @Override Loading Loading @@ -967,11 +993,12 @@ class GLES20Canvas extends HardwareCanvas { @Override public void drawLine(float startX, float startY, float stopX, float stopY, Paint paint) { mLine[0] = startX; mLine[1] = startY; mLine[2] = stopX; mLine[3] = stopY; drawLines(mLine, 0, 4, paint); float[] line = getLineStorage(); line[0] = startX; line[1] = startY; line[2] = stopX; line[3] = stopY; drawLines(line, 0, 4, paint); } @Override Loading Loading @@ -1012,7 +1039,7 @@ class GLES20Canvas extends HardwareCanvas { @Override public void drawPaint(Paint paint) { final Rect r = mClipBounds; final Rect r = getInternalClipBounds(); nGetClipBounds(mRenderer, r); drawRect(r.left, r.top, r.right, r.bottom, paint); } Loading Loading @@ -1089,9 +1116,10 @@ class GLES20Canvas extends HardwareCanvas { @Override public void drawPoint(float x, float y, Paint paint) { mPoint[0] = x; mPoint[1] = y; drawPoints(mPoint, 0, 2, paint); float[] point = getPointStorage(); point[0] = x; point[1] = y; drawPoints(point, 0, 2, paint); } @Override Loading core/java/android/view/GLES20DisplayList.java +21 −6 Original line number Diff line number Diff line Loading @@ -30,9 +30,9 @@ class GLES20DisplayList extends DisplayList { // alive as long as the DisplayList is alive. The Bitmap and DisplayList lists // are populated by the GLES20RecordingCanvas during appropriate drawing calls and are // cleared at the start of a new drawing frame or when the view is detached from the window. final ArrayList<Bitmap> mBitmaps = new ArrayList<Bitmap>(10); final ArrayList<NinePatch> mNinePatches = new ArrayList<NinePatch>(10); final ArrayList<DisplayList> mChildDisplayLists = new ArrayList<DisplayList>(); private ArrayList<Bitmap> mBitmaps; private ArrayList<NinePatch> mNinePatches; private ArrayList<DisplayList> mChildDisplayLists; private GLES20RecordingCanvas mCanvas; private boolean mValid; Loading Loading @@ -89,9 +89,24 @@ class GLES20DisplayList extends DisplayList { } void clearReferences() { mBitmaps.clear(); mNinePatches.clear(); mChildDisplayLists.clear(); if (mBitmaps != null) mBitmaps.clear(); if (mNinePatches != null) mNinePatches.clear(); if (mChildDisplayLists != null) mChildDisplayLists.clear(); } ArrayList<Bitmap> getBitmaps() { if (mBitmaps == null) mBitmaps = new ArrayList<Bitmap>(5); return mBitmaps; } ArrayList<NinePatch> getNinePatches() { if (mNinePatches == null) mNinePatches = new ArrayList<NinePatch>(5); return mNinePatches; } ArrayList<DisplayList> getChildDisplayLists() { if (mChildDisplayLists == null) mChildDisplayLists = new ArrayList<DisplayList>(); return mChildDisplayLists; } @Override Loading core/java/android/view/GLES20RecordingCanvas.java +9 −9 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ class GLES20RecordingCanvas extends GLES20Canvas { if (paint != null) { final Shader shader = paint.getShader(); if (shader instanceof BitmapShader) { mDisplayList.mBitmaps.add(((BitmapShader) shader).mBitmap); mDisplayList.getBitmaps().add(((BitmapShader) shader).mBitmap); } } } Loading @@ -82,36 +82,36 @@ class GLES20RecordingCanvas extends GLES20Canvas { @Override public void drawPatch(NinePatch patch, RectF dst, Paint paint) { super.drawPatch(patch, dst, paint); mDisplayList.mBitmaps.add(patch.getBitmap()); mDisplayList.mNinePatches.add(patch); mDisplayList.getBitmaps().add(patch.getBitmap()); mDisplayList.getNinePatches().add(patch); // Shaders in the Paint are ignored when drawing a Bitmap } @Override public void drawBitmap(Bitmap bitmap, float left, float top, Paint paint) { super.drawBitmap(bitmap, left, top, paint); mDisplayList.mBitmaps.add(bitmap); mDisplayList.getBitmaps().add(bitmap); // Shaders in the Paint are ignored when drawing a Bitmap } @Override public void drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint) { super.drawBitmap(bitmap, matrix, paint); mDisplayList.mBitmaps.add(bitmap); mDisplayList.getBitmaps().add(bitmap); // Shaders in the Paint are ignored when drawing a Bitmap } @Override public void drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) { super.drawBitmap(bitmap, src, dst, paint); mDisplayList.mBitmaps.add(bitmap); mDisplayList.getBitmaps().add(bitmap); // Shaders in the Paint are ignored when drawing a Bitmap } @Override public void drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint) { super.drawBitmap(bitmap, src, dst, paint); mDisplayList.mBitmaps.add(bitmap); mDisplayList.getBitmaps().add(bitmap); // Shaders in the Paint are ignored when drawing a Bitmap } Loading @@ -134,7 +134,7 @@ class GLES20RecordingCanvas extends GLES20Canvas { int vertOffset, int[] colors, int colorOffset, Paint paint) { super.drawBitmapMesh(bitmap, meshWidth, meshHeight, verts, vertOffset, colors, colorOffset, paint); mDisplayList.mBitmaps.add(bitmap); mDisplayList.getBitmaps().add(bitmap); // Shaders in the Paint are ignored when drawing a Bitmap } Loading @@ -147,7 +147,7 @@ class GLES20RecordingCanvas extends GLES20Canvas { @Override public int drawDisplayList(DisplayList displayList, Rect dirty, int flags) { int status = super.drawDisplayList(displayList, dirty, flags); mDisplayList.mChildDisplayLists.add(displayList); mDisplayList.getChildDisplayLists().add(displayList); return status; } Loading core/java/android/view/View.java +15 −18 Original line number Diff line number Diff line Loading @@ -40,7 +40,6 @@ import android.graphics.Shader; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.hardware.display.DisplayManagerGlobal; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; Loading Loading @@ -3054,18 +3053,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, private int[] mDrawableState = null; /** * Set to true when drawing cache is enabled and cannot be created. * * @hide */ public boolean mCachingFailed; private Bitmap mDrawingCache; private Bitmap mUnscaledDrawingCache; private HardwareLayer mHardwareLayer; DisplayList mDisplayList; /** * When this view has focus and the next focus is {@link #FOCUS_LEFT}, * the user may specify which view to go to next. Loading Loading @@ -3258,6 +3245,18 @@ public class View implements Drawable.Callback, KeyEvent.Callback, int mLayerType = LAYER_TYPE_NONE; Paint mLayerPaint; Rect mLocalDirtyRect; private HardwareLayer mHardwareLayer; /** * Set to true when drawing cache is enabled and cannot be created. * * @hide */ public boolean mCachingFailed; private Bitmap mDrawingCache; private Bitmap mUnscaledDrawingCache; DisplayList mDisplayList; /** * Set to true when the view is sending hover accessibility events because it Loading Loading @@ -3309,8 +3308,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, mUserPaddingStart = UNDEFINED_PADDING; mUserPaddingEnd = UNDEFINED_PADDING; if (!sUseBrokenMakeMeasureSpec && context.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.JELLY_BEAN_MR1 ) { if (!sUseBrokenMakeMeasureSpec && context != null && context.getApplicationInfo().targetSdkVersion <= JELLY_BEAN_MR1) { // Older apps may need this compatibility hack for measurement. sUseBrokenMakeMeasureSpec = true; } Loading Loading @@ -4872,7 +4871,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * Note: Called from the default {@link AccessibilityDelegate}. */ void onPopulateAccessibilityEventInternal(AccessibilityEvent event) { } /** Loading Loading @@ -8598,8 +8596,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, void setFlags(int flags, int mask) { final boolean accessibilityEnabled = AccessibilityManager.getInstance(mContext).isEnabled(); final boolean oldIncludeForAccessibility = accessibilityEnabled ? includeForAccessibility() : false; final boolean oldIncludeForAccessibility = accessibilityEnabled && includeForAccessibility(); int old = mViewFlags; mViewFlags = (mViewFlags & ~mask) | (flags & mask); Loading core/java/android/view/ViewGroup.java +20 −12 Original line number Diff line number Diff line Loading @@ -152,7 +152,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager private boolean mChildAcceptsDrag; // Used during drag dispatch private final PointF mLocalPoint = new PointF(); private PointF mLocalPoint; // Layout animation private LayoutAnimationController mLayoutAnimationController; Loading Loading @@ -1129,6 +1129,11 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } } private PointF getLocalPoint() { if (mLocalPoint == null) mLocalPoint = new PointF(); return mLocalPoint; } /** * {@inheritDoc} */ Loading @@ -1142,6 +1147,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager ViewRootImpl root = getViewRootImpl(); // Dispatch down the view hierarchy final PointF localPoint = getLocalPoint(); switch (event.mAction) { case DragEvent.ACTION_DRAG_STARTED: { // clear state to recalculate which views we drag over Loading Loading @@ -1202,7 +1209,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager case DragEvent.ACTION_DRAG_LOCATION: { // Find the [possibly new] drag target final View target = findFrontmostDroppableChildAt(event.mX, event.mY, mLocalPoint); final View target = findFrontmostDroppableChildAt(event.mX, event.mY, localPoint); // If we've changed apparent drag target, tell the view root which view // we're over now [for purposes of the eventual drag-recipient-changed Loading Loading @@ -1236,8 +1243,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager // Dispatch the actual drag location notice, localized into its coordinates if (target != null) { event.mX = mLocalPoint.x; event.mY = mLocalPoint.y; event.mX = localPoint.x; event.mY = localPoint.y; retval = target.dispatchDragEvent(event); Loading Loading @@ -1271,11 +1278,11 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager case DragEvent.ACTION_DROP: { if (ViewDebug.DEBUG_DRAG) Log.d(View.VIEW_LOG_TAG, "Drop event: " + event); View target = findFrontmostDroppableChildAt(event.mX, event.mY, mLocalPoint); View target = findFrontmostDroppableChildAt(event.mX, event.mY, localPoint); if (target != null) { if (ViewDebug.DEBUG_DRAG) Log.d(View.VIEW_LOG_TAG, " dispatch drop to " + target); event.mX = mLocalPoint.x; event.mY = mLocalPoint.y; event.mX = localPoint.x; event.mY = localPoint.y; retval = target.dispatchDragEvent(event); event.mX = tx; event.mY = ty; Loading Loading @@ -2776,7 +2783,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager return (int) (dips * scale + 0.5f); } private void drawRectCorners(Canvas canvas, int x1, int y1, int x2, int y2, Paint paint, private static void drawRectCorners(Canvas canvas, int x1, int y1, int x2, int y2, Paint paint, int lineLength, int lineWidth) { drawCorner(canvas, paint, x1, y1, lineLength, lineLength, lineWidth); drawCorner(canvas, paint, x1, y2, lineLength, -lineLength, lineWidth); Loading Loading @@ -6422,7 +6429,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager */ private static final class TouchTarget { private static final int MAX_RECYCLED = 32; private static final Object sRecycleLock = new Object(); private static final Object sRecycleLock = new Object[0]; private static TouchTarget sRecycleBin; private static int sRecycledCount; Loading Loading @@ -6474,7 +6481,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager /* Describes a hovered view. */ private static final class HoverTarget { private static final int MAX_RECYCLED = 32; private static final Object sRecycleLock = new Object(); private static final Object sRecycleLock = new Object[0]; private static HoverTarget sRecycleBin; private static int sRecycledCount; Loading Loading @@ -6693,8 +6700,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager return sDebugPaint; } private void drawRect(Canvas canvas, Paint paint, int x1, int y1, int x2, int y2) { private static void drawRect(Canvas canvas, Paint paint, int x1, int y1, int x2, int y2) { if (sDebugLines== null) { // TODO: This won't work with multiple UI threads in a single process sDebugLines = new float[16]; } Loading Loading
core/java/android/view/GLES20Canvas.java +44 −16 Original line number Diff line number Diff line Loading @@ -59,11 +59,11 @@ class GLES20Canvas extends HardwareCanvas { private int mWidth; private int mHeight; private final float[] mPoint = new float[2]; private final float[] mLine = new float[4]; private float[] mPoint; private float[] mLine; private final Rect mClipBounds = new Rect(); private final RectF mPathBounds = new RectF(); private Rect mClipBounds; private RectF mPathBounds; private DrawFilter mFilter; Loading Loading @@ -442,6 +442,31 @@ class GLES20Canvas extends HardwareCanvas { private static native void nInterrupt(int renderer); private static native void nResume(int renderer); /////////////////////////////////////////////////////////////////////////// // Support /////////////////////////////////////////////////////////////////////////// private Rect getInternalClipBounds() { if (mClipBounds == null) mClipBounds = new Rect(); return mClipBounds; } private RectF getPathBounds() { if (mPathBounds == null) mPathBounds = new RectF(); return mPathBounds; } private float[] getPointStorage() { if (mPoint == null) mPoint = new float[2]; return mPoint; } private float[] getLineStorage() { if (mLine == null) mLine = new float[4]; return mLine; } /////////////////////////////////////////////////////////////////////////// // Clipping /////////////////////////////////////////////////////////////////////////// Loading Loading @@ -530,9 +555,10 @@ class GLES20Canvas extends HardwareCanvas { @Override public boolean quickReject(Path path, EdgeType type) { path.computeBounds(mPathBounds, true); return nQuickReject(mRenderer, mPathBounds.left, mPathBounds.top, mPathBounds.right, mPathBounds.bottom); RectF pathBounds = getPathBounds(); path.computeBounds(pathBounds, true); return nQuickReject(mRenderer, pathBounds.left, pathBounds.top, pathBounds.right, pathBounds.bottom); } @Override Loading Loading @@ -967,11 +993,12 @@ class GLES20Canvas extends HardwareCanvas { @Override public void drawLine(float startX, float startY, float stopX, float stopY, Paint paint) { mLine[0] = startX; mLine[1] = startY; mLine[2] = stopX; mLine[3] = stopY; drawLines(mLine, 0, 4, paint); float[] line = getLineStorage(); line[0] = startX; line[1] = startY; line[2] = stopX; line[3] = stopY; drawLines(line, 0, 4, paint); } @Override Loading Loading @@ -1012,7 +1039,7 @@ class GLES20Canvas extends HardwareCanvas { @Override public void drawPaint(Paint paint) { final Rect r = mClipBounds; final Rect r = getInternalClipBounds(); nGetClipBounds(mRenderer, r); drawRect(r.left, r.top, r.right, r.bottom, paint); } Loading Loading @@ -1089,9 +1116,10 @@ class GLES20Canvas extends HardwareCanvas { @Override public void drawPoint(float x, float y, Paint paint) { mPoint[0] = x; mPoint[1] = y; drawPoints(mPoint, 0, 2, paint); float[] point = getPointStorage(); point[0] = x; point[1] = y; drawPoints(point, 0, 2, paint); } @Override Loading
core/java/android/view/GLES20DisplayList.java +21 −6 Original line number Diff line number Diff line Loading @@ -30,9 +30,9 @@ class GLES20DisplayList extends DisplayList { // alive as long as the DisplayList is alive. The Bitmap and DisplayList lists // are populated by the GLES20RecordingCanvas during appropriate drawing calls and are // cleared at the start of a new drawing frame or when the view is detached from the window. final ArrayList<Bitmap> mBitmaps = new ArrayList<Bitmap>(10); final ArrayList<NinePatch> mNinePatches = new ArrayList<NinePatch>(10); final ArrayList<DisplayList> mChildDisplayLists = new ArrayList<DisplayList>(); private ArrayList<Bitmap> mBitmaps; private ArrayList<NinePatch> mNinePatches; private ArrayList<DisplayList> mChildDisplayLists; private GLES20RecordingCanvas mCanvas; private boolean mValid; Loading Loading @@ -89,9 +89,24 @@ class GLES20DisplayList extends DisplayList { } void clearReferences() { mBitmaps.clear(); mNinePatches.clear(); mChildDisplayLists.clear(); if (mBitmaps != null) mBitmaps.clear(); if (mNinePatches != null) mNinePatches.clear(); if (mChildDisplayLists != null) mChildDisplayLists.clear(); } ArrayList<Bitmap> getBitmaps() { if (mBitmaps == null) mBitmaps = new ArrayList<Bitmap>(5); return mBitmaps; } ArrayList<NinePatch> getNinePatches() { if (mNinePatches == null) mNinePatches = new ArrayList<NinePatch>(5); return mNinePatches; } ArrayList<DisplayList> getChildDisplayLists() { if (mChildDisplayLists == null) mChildDisplayLists = new ArrayList<DisplayList>(); return mChildDisplayLists; } @Override Loading
core/java/android/view/GLES20RecordingCanvas.java +9 −9 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ class GLES20RecordingCanvas extends GLES20Canvas { if (paint != null) { final Shader shader = paint.getShader(); if (shader instanceof BitmapShader) { mDisplayList.mBitmaps.add(((BitmapShader) shader).mBitmap); mDisplayList.getBitmaps().add(((BitmapShader) shader).mBitmap); } } } Loading @@ -82,36 +82,36 @@ class GLES20RecordingCanvas extends GLES20Canvas { @Override public void drawPatch(NinePatch patch, RectF dst, Paint paint) { super.drawPatch(patch, dst, paint); mDisplayList.mBitmaps.add(patch.getBitmap()); mDisplayList.mNinePatches.add(patch); mDisplayList.getBitmaps().add(patch.getBitmap()); mDisplayList.getNinePatches().add(patch); // Shaders in the Paint are ignored when drawing a Bitmap } @Override public void drawBitmap(Bitmap bitmap, float left, float top, Paint paint) { super.drawBitmap(bitmap, left, top, paint); mDisplayList.mBitmaps.add(bitmap); mDisplayList.getBitmaps().add(bitmap); // Shaders in the Paint are ignored when drawing a Bitmap } @Override public void drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint) { super.drawBitmap(bitmap, matrix, paint); mDisplayList.mBitmaps.add(bitmap); mDisplayList.getBitmaps().add(bitmap); // Shaders in the Paint are ignored when drawing a Bitmap } @Override public void drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) { super.drawBitmap(bitmap, src, dst, paint); mDisplayList.mBitmaps.add(bitmap); mDisplayList.getBitmaps().add(bitmap); // Shaders in the Paint are ignored when drawing a Bitmap } @Override public void drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint) { super.drawBitmap(bitmap, src, dst, paint); mDisplayList.mBitmaps.add(bitmap); mDisplayList.getBitmaps().add(bitmap); // Shaders in the Paint are ignored when drawing a Bitmap } Loading @@ -134,7 +134,7 @@ class GLES20RecordingCanvas extends GLES20Canvas { int vertOffset, int[] colors, int colorOffset, Paint paint) { super.drawBitmapMesh(bitmap, meshWidth, meshHeight, verts, vertOffset, colors, colorOffset, paint); mDisplayList.mBitmaps.add(bitmap); mDisplayList.getBitmaps().add(bitmap); // Shaders in the Paint are ignored when drawing a Bitmap } Loading @@ -147,7 +147,7 @@ class GLES20RecordingCanvas extends GLES20Canvas { @Override public int drawDisplayList(DisplayList displayList, Rect dirty, int flags) { int status = super.drawDisplayList(displayList, dirty, flags); mDisplayList.mChildDisplayLists.add(displayList); mDisplayList.getChildDisplayLists().add(displayList); return status; } Loading
core/java/android/view/View.java +15 −18 Original line number Diff line number Diff line Loading @@ -40,7 +40,6 @@ import android.graphics.Shader; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.hardware.display.DisplayManagerGlobal; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; Loading Loading @@ -3054,18 +3053,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, private int[] mDrawableState = null; /** * Set to true when drawing cache is enabled and cannot be created. * * @hide */ public boolean mCachingFailed; private Bitmap mDrawingCache; private Bitmap mUnscaledDrawingCache; private HardwareLayer mHardwareLayer; DisplayList mDisplayList; /** * When this view has focus and the next focus is {@link #FOCUS_LEFT}, * the user may specify which view to go to next. Loading Loading @@ -3258,6 +3245,18 @@ public class View implements Drawable.Callback, KeyEvent.Callback, int mLayerType = LAYER_TYPE_NONE; Paint mLayerPaint; Rect mLocalDirtyRect; private HardwareLayer mHardwareLayer; /** * Set to true when drawing cache is enabled and cannot be created. * * @hide */ public boolean mCachingFailed; private Bitmap mDrawingCache; private Bitmap mUnscaledDrawingCache; DisplayList mDisplayList; /** * Set to true when the view is sending hover accessibility events because it Loading Loading @@ -3309,8 +3308,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, mUserPaddingStart = UNDEFINED_PADDING; mUserPaddingEnd = UNDEFINED_PADDING; if (!sUseBrokenMakeMeasureSpec && context.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.JELLY_BEAN_MR1 ) { if (!sUseBrokenMakeMeasureSpec && context != null && context.getApplicationInfo().targetSdkVersion <= JELLY_BEAN_MR1) { // Older apps may need this compatibility hack for measurement. sUseBrokenMakeMeasureSpec = true; } Loading Loading @@ -4872,7 +4871,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * Note: Called from the default {@link AccessibilityDelegate}. */ void onPopulateAccessibilityEventInternal(AccessibilityEvent event) { } /** Loading Loading @@ -8598,8 +8596,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, void setFlags(int flags, int mask) { final boolean accessibilityEnabled = AccessibilityManager.getInstance(mContext).isEnabled(); final boolean oldIncludeForAccessibility = accessibilityEnabled ? includeForAccessibility() : false; final boolean oldIncludeForAccessibility = accessibilityEnabled && includeForAccessibility(); int old = mViewFlags; mViewFlags = (mViewFlags & ~mask) | (flags & mask); Loading
core/java/android/view/ViewGroup.java +20 −12 Original line number Diff line number Diff line Loading @@ -152,7 +152,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager private boolean mChildAcceptsDrag; // Used during drag dispatch private final PointF mLocalPoint = new PointF(); private PointF mLocalPoint; // Layout animation private LayoutAnimationController mLayoutAnimationController; Loading Loading @@ -1129,6 +1129,11 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } } private PointF getLocalPoint() { if (mLocalPoint == null) mLocalPoint = new PointF(); return mLocalPoint; } /** * {@inheritDoc} */ Loading @@ -1142,6 +1147,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager ViewRootImpl root = getViewRootImpl(); // Dispatch down the view hierarchy final PointF localPoint = getLocalPoint(); switch (event.mAction) { case DragEvent.ACTION_DRAG_STARTED: { // clear state to recalculate which views we drag over Loading Loading @@ -1202,7 +1209,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager case DragEvent.ACTION_DRAG_LOCATION: { // Find the [possibly new] drag target final View target = findFrontmostDroppableChildAt(event.mX, event.mY, mLocalPoint); final View target = findFrontmostDroppableChildAt(event.mX, event.mY, localPoint); // If we've changed apparent drag target, tell the view root which view // we're over now [for purposes of the eventual drag-recipient-changed Loading Loading @@ -1236,8 +1243,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager // Dispatch the actual drag location notice, localized into its coordinates if (target != null) { event.mX = mLocalPoint.x; event.mY = mLocalPoint.y; event.mX = localPoint.x; event.mY = localPoint.y; retval = target.dispatchDragEvent(event); Loading Loading @@ -1271,11 +1278,11 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager case DragEvent.ACTION_DROP: { if (ViewDebug.DEBUG_DRAG) Log.d(View.VIEW_LOG_TAG, "Drop event: " + event); View target = findFrontmostDroppableChildAt(event.mX, event.mY, mLocalPoint); View target = findFrontmostDroppableChildAt(event.mX, event.mY, localPoint); if (target != null) { if (ViewDebug.DEBUG_DRAG) Log.d(View.VIEW_LOG_TAG, " dispatch drop to " + target); event.mX = mLocalPoint.x; event.mY = mLocalPoint.y; event.mX = localPoint.x; event.mY = localPoint.y; retval = target.dispatchDragEvent(event); event.mX = tx; event.mY = ty; Loading Loading @@ -2776,7 +2783,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager return (int) (dips * scale + 0.5f); } private void drawRectCorners(Canvas canvas, int x1, int y1, int x2, int y2, Paint paint, private static void drawRectCorners(Canvas canvas, int x1, int y1, int x2, int y2, Paint paint, int lineLength, int lineWidth) { drawCorner(canvas, paint, x1, y1, lineLength, lineLength, lineWidth); drawCorner(canvas, paint, x1, y2, lineLength, -lineLength, lineWidth); Loading Loading @@ -6422,7 +6429,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager */ private static final class TouchTarget { private static final int MAX_RECYCLED = 32; private static final Object sRecycleLock = new Object(); private static final Object sRecycleLock = new Object[0]; private static TouchTarget sRecycleBin; private static int sRecycledCount; Loading Loading @@ -6474,7 +6481,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager /* Describes a hovered view. */ private static final class HoverTarget { private static final int MAX_RECYCLED = 32; private static final Object sRecycleLock = new Object(); private static final Object sRecycleLock = new Object[0]; private static HoverTarget sRecycleBin; private static int sRecycledCount; Loading Loading @@ -6693,8 +6700,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager return sDebugPaint; } private void drawRect(Canvas canvas, Paint paint, int x1, int y1, int x2, int y2) { private static void drawRect(Canvas canvas, Paint paint, int x1, int y1, int x2, int y2) { if (sDebugLines== null) { // TODO: This won't work with multiple UI threads in a single process sDebugLines = new float[16]; } Loading