Merge "Add several missing swipe logging Enable swipe down to open noti shade from landscape" into ub-launcher3-qt-r1-dev

This commit is contained in:
TreeHugger Robot
2019-07-25 21:55:16 +00:00
committed by Android (Google) Code Review
7 changed files with 62 additions and 6 deletions

View File

@@ -165,8 +165,7 @@ public abstract class RecentsUiFactory {
}
if (FeatureFlags.PULL_DOWN_STATUS_BAR
&& !launcher.getDeviceProfile().isMultiWindowMode
&& !launcher.getDeviceProfile().isVerticalBarLayout()) {
&& !launcher.getDeviceProfile().isMultiWindowMode) {
list.add(new StatusBarTouchController(launcher));
}

View File

@@ -723,7 +723,7 @@ public class TouchInteractionService extends Service implements
return new OverviewInputConsumer(activity, mInputMonitorCompat,
false /* startingInActivityBounds */);
} else {
return new OverviewWithoutFocusInputConsumer(this, mInputMonitorCompat,
return new OverviewWithoutFocusInputConsumer(activity, mInputMonitorCompat,
disableHorizontalSwipe(event));
}
}

View File

@@ -30,7 +30,13 @@ import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.ViewConfiguration;
import com.android.launcher3.BaseActivity;
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.Utilities;
import com.android.launcher3.logging.StatsLogUtils;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Direction;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch;
import com.android.quickstep.OverviewCallbacks;
import com.android.quickstep.util.NavBarPosition;
import com.android.systemui.shared.system.ActivityManagerWrapper;
@@ -131,12 +137,14 @@ public class OverviewWithoutFocusInputConsumer implements InputConsumer {
? -velocityX : (mNavBarPosition.isLeftEdge() ? velocityX : -velocityY);
final boolean triggerQuickstep;
int touch = Touch.FLING;
if (Math.abs(velocity) >= ViewConfiguration.get(mContext).getScaledMinimumFlingVelocity()) {
triggerQuickstep = velocity > 0;
} else {
float displacementX = mDisableHorizontalSwipe ? 0 : (ev.getX() - mDownPos.x);
float displacementY = ev.getY() - mDownPos.y;
triggerQuickstep = squaredHypot(displacementX, displacementY) >= mSquaredTouchSlop;
touch = Touch.SWIPE;
}
if (triggerQuickstep) {
@@ -144,6 +152,13 @@ public class OverviewWithoutFocusInputConsumer implements InputConsumer {
ActivityManagerWrapper.getInstance()
.closeSystemWindows(CLOSE_SYSTEM_WINDOWS_REASON_RECENTS);
TOUCH_INTERACTION_LOG.addLog("startQuickstep");
BaseActivity activity = BaseDraggingActivity.fromContext(mContext);
int pageIndex = -1; // This number doesn't reflect workspace page index.
// It only indicates that launcher client screen was shown.
int containerType = StatsLogUtils.getContainerTypeFromState(activity.getCurrentState());
activity.getUserEventDispatcher().logActionOnContainer(
touch, Direction.UP, containerType, pageIndex);
activity.getUserEventDispatcher().setPreviousHomeGesture(true);
} else {
// ignore
}

View File

@@ -33,6 +33,9 @@ import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherState;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Direction;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
import com.android.launcher3.util.TouchController;
import com.android.quickstep.RecentsModel;
import com.android.systemui.shared.recents.ISystemUiProxy;
@@ -132,8 +135,12 @@ public class StatusBarTouchController implements TouchController {
@Override
public final boolean onControllerTouchEvent(MotionEvent ev) {
if (ev.getAction() == ACTION_UP || ev.getAction() == ACTION_CANCEL) {
int action = ev.getAction();
if (action == ACTION_UP || action == ACTION_CANCEL) {
dispatchTouchEvent(ev);
mLauncher.getUserEventDispatcher().logActionOnContainer(action == ACTION_UP ?
Touch.FLING : Touch.SWIPE, Direction.DOWN, ContainerType.WORKSPACE,
mLauncher.getWorkspace().getCurrentPage());
setWindowSlippery(false);
return true;
}

View File

@@ -81,10 +81,10 @@ import com.android.launcher3.folder.PreviewBackground;
import com.android.launcher3.graphics.DragPreviewProvider;
import com.android.launcher3.graphics.PreloadIconDrawable;
import com.android.launcher3.graphics.RotationMode;
import com.android.launcher3.logging.UserEventDispatcher;
import com.android.launcher3.pageindicators.WorkspacePageIndicator;
import com.android.launcher3.popup.PopupContainerWithArrow;
import com.android.launcher3.shortcuts.ShortcutDragPreviewProvider;
import com.android.launcher3.testing.TestProtocol;
import com.android.launcher3.touch.WorkspaceTouchListener;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
@@ -1053,8 +1053,11 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
// Not announcing the overlay page for accessibility since it announces itself.
} else if (Float.compare(scroll, 0f) == 0) {
if (mOverlayShown) {
mLauncher.getUserEventDispatcher().logActionOnContainer(Action.Touch.SWIPE,
UserEventDispatcher ued = mLauncher.getUserEventDispatcher();
if (!ued.isPreviousHomeGesture()) {
mLauncher.getUserEventDispatcher().logActionOnContainer(Action.Touch.SWIPE,
Action.Direction.RIGHT, ContainerType.WORKSPACE, -1);
}
} else if (Float.compare(mOverlayTranslation, 0f) != 0) {
// When arriving to 0 overscroll from non-zero overscroll, announce page for
// accessibility since default announcements were disabled while in overscroll

View File

@@ -1,9 +1,12 @@
package com.android.launcher3.logging;
import static com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType.DEFAULT_CONTAINERTYPE;
import android.view.View;
import android.view.ViewParent;
import com.android.launcher3.ItemInfo;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
import androidx.annotation.Nullable;
@@ -64,4 +67,20 @@ public class StatsLogUtils {
}
return null;
}
public static int getContainerTypeFromState(int state) {
int containerType = DEFAULT_CONTAINERTYPE;
switch (state) {
case StatsLogUtils.LAUNCHER_STATE_ALLAPPS:
containerType = ContainerType.ALLAPPS;
break;
case StatsLogUtils.LAUNCHER_STATE_HOME:
containerType = ContainerType.WORKSPACE;
break;
case StatsLogUtils.LAUNCHER_STATE_OVERVIEW:
containerType = ContainerType.OVERVIEW;
break;
}
return containerType;
}
}

View File

@@ -115,6 +115,7 @@ public class UserEventDispatcher implements ResourceBasedOverride {
protected InstantAppResolver mInstantAppResolver;
private boolean mAppOrTaskLaunch;
private UserEventDelegate mDelegate;
private boolean mPreviousHomeGesture;
// APP_ICON SHORTCUT WIDGET
// --------------------------------------------------------------
@@ -399,11 +400,22 @@ public class UserEventDispatcher implements ResourceBasedOverride {
mElapsedContainerMillis = SystemClock.uptimeMillis();
}
public final void setPreviousHomeGesture(boolean homeGesture) {
mPreviousHomeGesture = homeGesture;
}
public final boolean isPreviousHomeGesture() {
return mPreviousHomeGesture;
}
public final void resetActionDurationMillis() {
mActionDurationMillis = SystemClock.uptimeMillis();
}
public void dispatchUserEvent(LauncherEvent ev, Intent intent) {
if (mPreviousHomeGesture) {
mPreviousHomeGesture = false;
}
mAppOrTaskLaunch = false;
ev.elapsedContainerMillis = SystemClock.uptimeMillis() - mElapsedContainerMillis;
ev.elapsedSessionMillis = SystemClock.uptimeMillis() - mElapsedSessionMillis;
@@ -426,6 +438,7 @@ public class UserEventDispatcher implements ResourceBasedOverride {
ev.actionDurationMillis);
log += "\n\n";
Log.d(TAG, log);
return;
}
private static String getTargetsStr(Target[] targets) {