diff options
author | Hyunyoung Song <hyunyoungs@google.com> | 2019-07-22 16:04:30 -0700 |
---|---|---|
committer | Hyunyoung Song <hyunyoungs@google.com> | 2019-07-25 13:18:48 -0700 |
commit | e299a4594483d77544e00ee7a58b51ec70f45c13 (patch) | |
tree | f0c7e79969fa8749d9c55527822c10fbe41aaf25 | |
parent | b6841ac630fd4ca894e2638586511e3085c40baa (diff) | |
download | android_packages_apps_Trebuchet-e299a4594483d77544e00ee7a58b51ec70f45c13.tar.gz android_packages_apps_Trebuchet-e299a4594483d77544e00ee7a58b51ec70f45c13.tar.bz2 android_packages_apps_Trebuchet-e299a4594483d77544e00ee7a58b51ec70f45c13.zip |
Add several missing swipe logging
Enable swipe down to open noti shade from landscape
Bug: 137137090
Bug: 137954767
Bug: 134181439
Change-Id: I47b4d17c9ae0586565fce101eb478e33ed8f7e3d
7 files changed, 62 insertions, 6 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/RecentsUiFactory.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/RecentsUiFactory.java index 820a8df52..596bc4f44 100644 --- a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/RecentsUiFactory.java +++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/RecentsUiFactory.java @@ -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)); } diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/TouchInteractionService.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/TouchInteractionService.java index d10e5123d..2c31dca66 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/TouchInteractionService.java @@ -686,7 +686,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)); } } diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/OverviewWithoutFocusInputConsumer.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/OverviewWithoutFocusInputConsumer.java index 425b8b6b0..05cbb789d 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/OverviewWithoutFocusInputConsumer.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/OverviewWithoutFocusInputConsumer.java @@ -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 } diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/StatusBarTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/StatusBarTouchController.java index f5ba3725d..11a804356 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/StatusBarTouchController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/StatusBarTouchController.java @@ -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; } diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 8cd082299..269a59111 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -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 diff --git a/src/com/android/launcher3/logging/StatsLogUtils.java b/src/com/android/launcher3/logging/StatsLogUtils.java index 647f255af..b02a0504f 100644 --- a/src/com/android/launcher3/logging/StatsLogUtils.java +++ b/src/com/android/launcher3/logging/StatsLogUtils.java @@ -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; + } } diff --git a/src/com/android/launcher3/logging/UserEventDispatcher.java b/src/com/android/launcher3/logging/UserEventDispatcher.java index bd785a107..d81020ef3 100644 --- a/src/com/android/launcher3/logging/UserEventDispatcher.java +++ b/src/com/android/launcher3/logging/UserEventDispatcher.java @@ -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) { |