mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-01 00:06:47 +00:00
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:
committed by
Android (Google) Code Review
commit
2cccb134a4
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user