diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-03-30 19:18:00 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-03-30 19:18:01 +0000 |
commit | 1188b89dc421afabd06c1bbf23e3c7f281cfec36 (patch) | |
tree | d8ea9d9c5407a656f5dd5fe10c14842191206f20 /src/com/android/launcher3/dragndrop/PinItemDragListener.java | |
parent | c5c9cae70da1dbf05668258cbd4cbf50a36f0e26 (diff) | |
parent | 5a81c3806b31c7763734e287d4cf2ed11294281d (diff) | |
download | android_packages_apps_Trebuchet-1188b89dc421afabd06c1bbf23e3c7f281cfec36.tar.gz android_packages_apps_Trebuchet-1188b89dc421afabd06c1bbf23e3c7f281cfec36.tar.bz2 android_packages_apps_Trebuchet-1188b89dc421afabd06c1bbf23e3c7f281cfec36.zip |
Merge "Fixing multiwindow drag operation during with rotation." into ub-launcher3-dorval
Diffstat (limited to 'src/com/android/launcher3/dragndrop/PinItemDragListener.java')
-rw-r--r-- | src/com/android/launcher3/dragndrop/PinItemDragListener.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/com/android/launcher3/dragndrop/PinItemDragListener.java b/src/com/android/launcher3/dragndrop/PinItemDragListener.java index dfc65660e..4b402f4ac 100644 --- a/src/com/android/launcher3/dragndrop/PinItemDragListener.java +++ b/src/com/android/launcher3/dragndrop/PinItemDragListener.java @@ -18,6 +18,7 @@ package com.android.launcher3.dragndrop; import android.appwidget.AppWidgetManager; import android.content.ClipDescription; +import android.content.Intent; import android.graphics.Point; import android.graphics.Rect; import android.os.Bundle; @@ -245,6 +246,13 @@ public class PinItemDragListener } private void postCleanup() { + if (mLauncher != null) { + // Remove any drag params from the launcher intent since the drag operation is complete. + Intent newIntent = new Intent(mLauncher.getIntent()); + newIntent.removeExtra(EXTRA_PIN_ITEM_DRAG_LISTENER); + mLauncher.setIntent(newIntent); + } + new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { @@ -268,6 +276,21 @@ public class PinItemDragListener return null; } + public static boolean handleDragRequest(Launcher launcher, Intent intent) { + if (intent == null || !Intent.ACTION_MAIN.equals(intent.getAction())) { + return false; + } + Parcelable dragExtra = intent.getParcelableExtra(EXTRA_PIN_ITEM_DRAG_LISTENER); + if (dragExtra instanceof PinItemDragListener) { + PinItemDragListener dragListener = (PinItemDragListener) dragExtra; + dragListener.setLauncher(launcher); + + launcher.getDragLayer().setOnDragListener(dragListener); + return true; + } + return false; + } + public static final Parcelable.Creator<PinItemDragListener> CREATOR = new Parcelable.Creator<PinItemDragListener>() { public PinItemDragListener createFromParcel(Parcel source) { |