summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2017-12-22 11:11:33 -0800
committerSunny Goyal <sunnygoyal@google.com>2017-12-22 11:11:54 -0800
commit7c8a65e740a118969e8de1e9a4e73b6768e725c1 (patch)
treeba3de81c1678980768a0eb556630e6db045eeee1 /src/com
parent8c8fdec3e967286106c369db18e8bb69e5da4542 (diff)
downloadpackages_apps_Trebuchet-7c8a65e740a118969e8de1e9a4e73b6768e725c1.tar.gz
packages_apps_Trebuchet-7c8a65e740a118969e8de1e9a4e73b6768e725c1.tar.bz2
packages_apps_Trebuchet-7c8a65e740a118969e8de1e9a4e73b6768e725c1.zip
Adding support for auto-cancelling an action mode when interacting with launcher
Change-Id: Iba0207e36e9e5bd94bd9016318a4e00c6e1f6393
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/launcher3/AbstractFloatingView.java1
-rw-r--r--src/com/android/launcher3/Launcher.java29
-rw-r--r--src/com/android/launcher3/LauncherStateManager.java1
-rw-r--r--src/com/android/launcher3/dragndrop/DragLayer.java2
4 files changed, 33 insertions, 0 deletions
diff --git a/src/com/android/launcher3/AbstractFloatingView.java b/src/com/android/launcher3/AbstractFloatingView.java
index da464c007..8e64346ab 100644
--- a/src/com/android/launcher3/AbstractFloatingView.java
+++ b/src/com/android/launcher3/AbstractFloatingView.java
@@ -153,6 +153,7 @@ public abstract class AbstractFloatingView extends LinearLayout implements Touch
public static void closeAllOpenViews(Launcher launcher, boolean animate) {
closeOpenViews(launcher, animate, TYPE_ALL);
+ launcher.finishAutoCancelActionMode();
}
public static void closeAllOpenViews(Launcher launcher) {
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 44660ecc1..a403f7106 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -72,6 +72,7 @@ import android.text.TextUtils;
import android.text.method.TextKeyListener;
import android.util.Log;
import android.util.SparseArray;
+import android.view.ActionMode;
import android.view.Display;
import android.view.HapticFeedbackConstants;
import android.view.KeyEvent;
@@ -198,6 +199,10 @@ public class Launcher extends BaseActivity
// Type: SparseArray<Parcelable>
private static final String RUNTIME_STATE_WIDGET_PANEL = "launcher.widget_panel";
+ // When starting an action mode, setting this tag will cause the action mode to be cancelled
+ // automatically when user interacts with the launcher.
+ public static final Object AUTO_CANCEL_ACTION_MODE = new Object();
+
private LauncherStateManager mStateManager;
private boolean mIsSafeModeEnabled;
@@ -275,6 +280,7 @@ public class Launcher extends BaseActivity
private boolean mAppLaunchSuccess;
private RotationPrefChangeHandler mRotationPrefChangeHandler;
+ private ActionMode mCurrentActionMode;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -1626,6 +1632,9 @@ public class Launcher extends BaseActivity
@Override
public void onBackPressed() {
+ if (finishAutoCancelActionMode()) {
+ return;
+ }
if (mLauncherCallbacks != null && mLauncherCallbacks.handleBackPressed()) {
return;
}
@@ -3015,6 +3024,26 @@ public class Launcher extends BaseActivity
}
}
+ @Override
+ public void onActionModeStarted(ActionMode mode) {
+ super.onActionModeStarted(mode);
+ mCurrentActionMode = mode;
+ }
+
+ @Override
+ public void onActionModeFinished(ActionMode mode) {
+ super.onActionModeFinished(mode);
+ mCurrentActionMode = null;
+ }
+
+ public boolean finishAutoCancelActionMode() {
+ if (mCurrentActionMode != null && AUTO_CANCEL_ACTION_MODE == mCurrentActionMode.getTag()) {
+ mCurrentActionMode.finish();
+ return true;
+ }
+ return false;
+ }
+
/**
* Callback for listening for onResume
*/
diff --git a/src/com/android/launcher3/LauncherStateManager.java b/src/com/android/launcher3/LauncherStateManager.java
index 0137b26bf..d25f958bd 100644
--- a/src/com/android/launcher3/LauncherStateManager.java
+++ b/src/com/android/launcher3/LauncherStateManager.java
@@ -264,6 +264,7 @@ public class LauncherStateManager {
private void onStateTransitionEnd(LauncherState state) {
mLauncher.getWorkspace().setClipChildren(!state.disablePageClipping);
mLauncher.getUserEventDispatcher().resetElapsedContainerMillis();
+ mLauncher.finishAutoCancelActionMode();
}
/**
diff --git a/src/com/android/launcher3/dragndrop/DragLayer.java b/src/com/android/launcher3/dragndrop/DragLayer.java
index 27d6b896a..c75e61632 100644
--- a/src/com/android/launcher3/dragndrop/DragLayer.java
+++ b/src/com/android/launcher3/dragndrop/DragLayer.java
@@ -157,6 +157,8 @@ public class DragLayer extends InsettableFrameLayout {
mTouchCompleteListener.onTouchComplete();
}
mTouchCompleteListener = null;
+ } else if (action == MotionEvent.ACTION_DOWN) {
+ mLauncher.finishAutoCancelActionMode();
}
mActiveController = null;