diff options
author | Christopher Tate <ctate@google.com> | 2010-10-05 13:43:44 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-10-05 13:43:44 -0700 |
commit | 643bfdaf45a0c9ab9d8ac69182a1c1fc2c5a8004 (patch) | |
tree | 530fa5c3dd223d455aec210cfd14060dbe702305 /core/java | |
parent | 68159aabb3d116ec06671fef3900be6fab2de502 (diff) | |
parent | a0374192b9669d00d85840ee3ddbfd41c2cc52f3 (diff) | |
download | frameworks_base-643bfdaf45a0c9ab9d8ac69182a1c1fc2c5a8004.zip frameworks_base-643bfdaf45a0c9ab9d8ac69182a1c1fc2c5a8004.tar.gz frameworks_base-643bfdaf45a0c9ab9d8ac69182a1c1fc2c5a8004.tar.bz2 |
Merge "Make View.DragThumbnailBuilder a static class"
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/view/View.java | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 63450de..2afbe81 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -66,6 +66,7 @@ import android.widget.ScrollBarDrawable; import com.android.internal.R; import com.android.internal.view.menu.MenuBuilder; +import java.lang.ref.WeakReference; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; @@ -9842,15 +9843,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * The base class implementation makes the thumbnail the same size and appearance * as the view itself, and positions it with its center at the touch point. */ - public class DragThumbnailBuilder { - private View mView; + public static class DragThumbnailBuilder { + private final WeakReference<View> mView; /** * Construct a thumbnail builder object for use with the given view. * @param view */ public DragThumbnailBuilder(View view) { - mView = view; + mView = new WeakReference<View>(view); } /** @@ -9870,8 +9871,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * the touch point on the screen during a drag. */ public void onProvideThumbnailMetrics(Point thumbnailSize, Point thumbnailTouchPoint) { - thumbnailSize.set(mView.getWidth(), mView.getHeight()); - thumbnailTouchPoint.set(thumbnailSize.x / 2, thumbnailSize.y / 2); + final View view = mView.get(); + if (view != null) { + thumbnailSize.set(view.getWidth(), view.getHeight()); + thumbnailTouchPoint.set(thumbnailSize.x / 2, thumbnailSize.y / 2); + } else { + Log.e(View.VIEW_LOG_TAG, "Asked for drag thumb metrics but no view"); + } } /** @@ -9882,7 +9888,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * @param canvas */ public void onDrawThumbnail(Canvas canvas) { - mView.draw(canvas); + final View view = mView.get(); + if (view != null) { + view.draw(canvas); + } else { + Log.e(View.VIEW_LOG_TAG, "Asked to draw drag thumb but no view"); + } } } |