Merge "Using dimension instead of relyong on relativeLayout for view positions" into ub-launcher3-master
diff --git a/quickstep/src/com/android/quickstep/MotionEventQueue.java b/quickstep/src/com/android/quickstep/MotionEventQueue.java
index 94b6faa..72f8301 100644
--- a/quickstep/src/com/android/quickstep/MotionEventQueue.java
+++ b/quickstep/src/com/android/quickstep/MotionEventQueue.java
@@ -55,6 +55,8 @@
ACTION_VIRTUAL | (5 << ACTION_POINTER_INDEX_SHIFT);
private static final int ACTION_DEFER_INIT =
ACTION_VIRTUAL | (6 << ACTION_POINTER_INDEX_SHIFT);
+ private static final int ACTION_SHOW_OVERVIEW_FROM_ALT_TAB =
+ ACTION_VIRTUAL | (7 << ACTION_POINTER_INDEX_SHIFT);
private final EventArray mEmptyArray = new EventArray();
private final Object mExecutionLock = new Object();
@@ -161,6 +163,10 @@
case ACTION_DEFER_INIT:
mConsumer.deferInit();
break;
+ case ACTION_SHOW_OVERVIEW_FROM_ALT_TAB:
+ mConsumer.onShowOverviewFromAltTab();
+ mConsumer.updateTouchTracking(INTERACTION_QUICK_SCRUB);
+ break;
default:
Log.e(TAG, "Invalid virtual event: " + event.getAction());
}
@@ -197,6 +203,10 @@
queueVirtualAction(ACTION_QUICK_SCRUB_START, 0);
}
+ public void onOverviewShownFromAltTab() {
+ queueVirtualAction(ACTION_SHOW_OVERVIEW_FROM_ALT_TAB, 0);
+ }
+
public void onQuickScrubProgress(float progress) {
queueVirtualAction(ACTION_QUICK_SCRUB_PROGRESS, progress);
}
diff --git a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
index ab19c6e..93eafe4 100644
--- a/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
+++ b/quickstep/src/com/android/quickstep/OtherActivityTouchConsumer.java
@@ -35,7 +35,7 @@
import android.os.Build;
import android.os.Bundle;
import android.os.Looper;
-import android.util.Log;
+import android.os.SystemClock;
import android.view.Choreographer;
import android.view.Display;
import android.view.MotionEvent;
@@ -107,6 +107,11 @@
}
@Override
+ public void onShowOverviewFromAltTab() {
+ startTouchTrackingForWindowAnimation(SystemClock.uptimeMillis());
+ }
+
+ @Override
public void accept(MotionEvent ev) {
if (mVelocityTracker == null) {
return;
diff --git a/quickstep/src/com/android/quickstep/TouchConsumer.java b/quickstep/src/com/android/quickstep/TouchConsumer.java
index 768fbda..0554d9c 100644
--- a/quickstep/src/com/android/quickstep/TouchConsumer.java
+++ b/quickstep/src/com/android/quickstep/TouchConsumer.java
@@ -72,4 +72,6 @@
default boolean forceToLauncherConsumer() {
return false;
}
+
+ default void onShowOverviewFromAltTab() {}
}
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index df7214e..bbbeb14 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -21,6 +21,7 @@
import static android.view.MotionEvent.ACTION_POINTER_DOWN;
import static android.view.MotionEvent.ACTION_POINTER_UP;
import static android.view.MotionEvent.ACTION_UP;
+
import static com.android.launcher3.LauncherState.FAST_OVERVIEW;
import static com.android.launcher3.LauncherState.NORMAL;
@@ -54,6 +55,8 @@
import com.android.systemui.shared.system.ActivityManagerWrapper;
import com.android.systemui.shared.system.NavigationBarCompat.HitTarget;
+import static com.android.systemui.shared.system.NavigationBarCompat.HIT_TARGET_NONE;
+
/**
* Service connected by system-UI for handling touch interaction.
*/
@@ -85,7 +88,7 @@
@Override
public void onPreMotionEvent(@HitTarget int downHitTarget) throws RemoteException {
TraceHelper.beginSection("SysUiBinder");
- onBinderPreMotionEvent(downHitTarget);
+ setupTouchConsumer(downHitTarget);
TraceHelper.partitionSection("SysUiBinder", "Down target " + downHitTarget);
}
@@ -139,14 +142,20 @@
@Override
public void onOverviewShown(boolean triggeredFromAltTab) {
if (DEBUG_OPEN_OVERVIEW_VIA_ALT_TAB) {
- mOverviewCommandHelper.onOverviewShown();
+ if (triggeredFromAltTab) {
+ setupTouchConsumer(HIT_TARGET_NONE);
+ mEventQueue.onOverviewShownFromAltTab();
+ }
}
}
@Override
public void onOverviewHidden(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) {
if (DEBUG_OPEN_OVERVIEW_VIA_ALT_TAB) {
- mOverviewCommandHelper.onOverviewHidden();
+ if (triggeredFromAltTab && !triggeredFromHomeKey) {
+ // onOverviewShownFromAltTab initiates quick scrub. Ending it here.
+ mEventQueue.onQuickScrubEnd();
+ }
}
}
@@ -205,7 +214,7 @@
return mMyBinder;
}
- private void onBinderPreMotionEvent(@HitTarget int downHitTarget) {
+ private void setupTouchConsumer(@HitTarget int downHitTarget) {
mEventQueue.reset();
TouchConsumer oldConsumer = mEventQueue.getConsumer();
if (oldConsumer.deferNextEventToMainThread()) {