summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2010-10-05 13:43:44 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-10-05 13:43:44 -0700
commit643bfdaf45a0c9ab9d8ac69182a1c1fc2c5a8004 (patch)
tree530fa5c3dd223d455aec210cfd14060dbe702305 /core/java
parent68159aabb3d116ec06671fef3900be6fab2de502 (diff)
parenta0374192b9669d00d85840ee3ddbfd41c2cc52f3 (diff)
downloadframeworks_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.java23
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");
+ }
}
}