Ensuring launcher is always setting "interactionBegin/End" where appropriate (issue 11030735)
Change-Id: I16f4f6a19cdc92af6b817a658dc32e082f08660c
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 831637f..a9cb771 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -911,6 +911,7 @@
if (DEBUG_RESUME_TIME) {
Log.d(TAG, "Time spent in onResume: " + (System.currentTimeMillis() - startTime));
}
+ mWorkspace.updateInteractionForState();
}
@Override
@@ -3072,7 +3073,6 @@
.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
onWorkspaceShown(animated);
- onInteractionEnd();
}
public void onWorkspaceShown(boolean animated) {
@@ -3087,7 +3087,6 @@
// Change the state *after* we've called all the transition code
mState = State.APPS_CUSTOMIZE;
- onInteractionBegin();
// Pause the auto-advance of widgets until we are out of AllApps
mUserPresent = false;
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index ea348ef..02d4fff 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1780,19 +1780,16 @@
if (mTouchState != TOUCH_STATE_REST) {
return false;
}
- mLauncher.onInteractionBegin();
enableOverviewMode(true, -1, true);
return true;
}
public void exitOverviewMode(boolean animated) {
exitOverviewMode(-1, animated);
- mLauncher.onInteractionEnd();
}
public void exitOverviewMode(int snapPage, boolean animated) {
enableOverviewMode(false, snapPage, animated);
- mLauncher.onInteractionEnd();
}
private void enableOverviewMode(boolean enable, int snapPage, boolean animated) {
@@ -1835,6 +1832,19 @@
return true;
}
+ public void updateInteractionForState() {
+ if (mState != State.NORMAL) {
+ mLauncher.onInteractionBegin();
+ } else {
+ mLauncher.onInteractionEnd();
+ }
+ }
+
+ private void setState(State state) {
+ mState = state;
+ updateInteractionForState();
+ }
+
Animator getChangeStateAnimation(final State state, boolean animated, int delay, int snapPage) {
if (mState == state) {
return null;
@@ -1850,7 +1860,7 @@
final boolean oldStateIsSpringLoaded = (oldState == State.SPRING_LOADED);
final boolean oldStateIsSmall = (oldState == State.SMALL);
final boolean oldStateIsOverview = (oldState == State.OVERVIEW);
- mState = state;
+ setState(state);
final boolean stateIsNormal = (state == State.NORMAL);
final boolean stateIsSpringLoaded = (state == State.SPRING_LOADED);
final boolean stateIsSmall = (state == State.SMALL);