summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yorke Lee <yorkelee@google.com> 2016-06-13 11:31:03 -0700
committer Yorke Lee <yorkelee@google.com> 2016-06-13 11:32:23 -0700
commit07452c37abf6cabb91c55ccad3e7f08f73e759ee (patch)
tree1dade7fda46150c0c485b4d42f1e7dcc97888bf3
parenta86d6c4df3b193060b4b725e1abfed4f69689843 (diff)
Check for detached view in drag-related APIs
Bug: 29253539 Change-Id: I26285404ee15bb17e87ac23c67f7c3c6aaa2d968
-rw-r--r--core/java/android/view/View.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 88605db0408a..5f6ee09bf2ac 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -20538,6 +20538,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
if (ViewDebug.DEBUG_DRAG) {
Log.d(VIEW_LOG_TAG, "startDragAndDrop: data=" + data + " flags=" + flags);
}
+ if (mAttachInfo == null) {
+ Log.w(VIEW_LOG_TAG, "startDragAndDrop called on a detached view.");
+ return false;
+ }
boolean okay = false;
Point shadowSize = new Point();
@@ -20614,6 +20618,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
if (ViewDebug.DEBUG_DRAG) {
Log.d(VIEW_LOG_TAG, "cancelDragAndDrop");
}
+ if (mAttachInfo == null) {
+ Log.w(VIEW_LOG_TAG, "cancelDragAndDrop called on a detached view.");
+ return;
+ }
if (mAttachInfo.mDragToken != null) {
try {
mAttachInfo.mSession.cancelDragAndDrop(mAttachInfo.mDragToken);
@@ -20636,6 +20644,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
if (ViewDebug.DEBUG_DRAG) {
Log.d(VIEW_LOG_TAG, "updateDragShadow");
}
+ if (mAttachInfo == null) {
+ Log.w(VIEW_LOG_TAG, "updateDragShadow called on a detached view.");
+ return;
+ }
if (mAttachInfo.mDragToken != null) {
try {
Canvas canvas = mAttachInfo.mDragSurface.lockCanvas(null);