diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-05-17 21:34:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-05-17 21:34:21 +0000 |
commit | d3b0e8ed6131b4d66166c380e6e8b225c37391a5 (patch) | |
tree | 0acaba7fea0c52aa71333ccb778173731862bea3 /quickstep | |
parent | c9986f59ac6408ff3021b491943386a1d8e3322c (diff) | |
parent | 9fe9a155ca87f0ac42edfc003c8e8ddbe6a424e4 (diff) | |
download | android_packages_apps_Trebuchet-d3b0e8ed6131b4d66166c380e6e8b225c37391a5.tar.gz android_packages_apps_Trebuchet-d3b0e8ed6131b4d66166c380e6e8b225c37391a5.tar.bz2 android_packages_apps_Trebuchet-d3b0e8ed6131b4d66166c380e6e8b225c37391a5.zip |
Merge "Add more logging and commands to service dump" into ub-launcher3-qt-dev
Diffstat (limited to 'quickstep')
3 files changed, 112 insertions, 6 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/SwipeSharedState.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/SwipeSharedState.java index 194d07335..5a039cd90 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/SwipeSharedState.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/SwipeSharedState.java @@ -22,6 +22,7 @@ import com.android.launcher3.util.Preconditions; import com.android.quickstep.util.RecentsAnimationListenerSet; import com.android.quickstep.util.SwipeAnimationTargetSet; import com.android.quickstep.util.SwipeAnimationTargetSet.SwipeAnimationListener; +import java.io.PrintWriter; /** * Utility class used to store state information shared across multiple transitions. @@ -134,4 +135,13 @@ public class SwipeSharedState implements SwipeAnimationListener { nextRunningTaskId = -1; goingToLauncher = false; } + + public void dump(String prefix, PrintWriter pw) { + pw.println(prefix + "goingToLauncher=" + goingToLauncher); + pw.println(prefix + "canGestureBeContinued=" + canGestureBeContinued); + pw.println(prefix + "recentsAnimationFinishInterrupted=" + recentsAnimationFinishInterrupted); + pw.println(prefix + "nextRunningTaskId=" + nextRunningTaskId); + pw.println(prefix + "lastAnimationCancelled=" + mLastAnimationCancelled); + pw.println(prefix + "lastAnimationRunning=" + mLastAnimationRunning); + } } 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 128fd45fe..808a8ea28 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/TouchInteractionService.java @@ -84,9 +84,32 @@ import com.android.systemui.shared.system.QuickStepContract.SystemUiStateFlags; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; import java.util.List; /** + * Wrapper around a list for processing arguments. + */ +class ArgList extends LinkedList<String> { + public ArgList(List<String> l) { + super(l); + } + + public String peekArg() { + return peekFirst(); + } + + public String nextArg() { + return pollFirst().toLowerCase(); + } + + public String nextArgExact() { + return pollFirst(); + } +} + +/** * Service connected by system-UI for handling touch interaction. */ @TargetApi(Build.VERSION_CODES.Q) @@ -439,12 +462,18 @@ public class TouchInteractionService extends Service implements mUncheckedConsumer.onMotionEvent(event); } + private boolean validSystemUiFlags() { + return (mSystemUiStateFlags & SYSUI_STATE_NAV_BAR_HIDDEN) == 0 + && (mSystemUiStateFlags & SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED) == 0; + } + + private boolean topTaskLocked() { + return ActivityManagerWrapper.getInstance().isLockToAppActive(); + } private InputConsumer newConsumer(boolean useSharedState, MotionEvent event) { - boolean validSystemUIFlags = (mSystemUiStateFlags & SYSUI_STATE_NAV_BAR_HIDDEN) == 0 - && (mSystemUiStateFlags & SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED) == 0; - boolean topTaskLocked = ActivityManagerWrapper.getInstance().isLockToAppActive(); - boolean isInValidSystemUiState = validSystemUIFlags && !topTaskLocked; + boolean topTaskLocked = topTaskLocked(); + boolean isInValidSystemUiState = validSystemUiFlags() && !topTaskLocked; if (!mIsUserUnlocked) { if (isInValidSystemUiState) { @@ -540,7 +569,55 @@ public class TouchInteractionService extends Service implements } @Override - protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { - TOUCH_INTERACTION_LOG.dump("", pw); + protected void dump(FileDescriptor fd, PrintWriter pw, String[] rawArgs) { + if (rawArgs.length > 0 && Utilities.IS_DEBUG_DEVICE) { + ArgList args = new ArgList(Arrays.asList(rawArgs)); + switch (args.nextArg()) { + case "cmd": + if (args.peekArg() == null) { + printAvailableCommands(pw); + } else { + onCommand(pw, args); + } + break; + } + } else { + // Dump everything + pw.println("TouchState:"); + pw.println(" navMode=" + mMode); + pw.println(" validSystemUiFlags=" + validSystemUiFlags() + + " flags=" + mSystemUiStateFlags); + pw.println(" topTaskLocked=" + topTaskLocked()); + pw.println(" isDeviceLocked=" + mKM.isDeviceLocked()); + pw.println(" screenPinned=" + + ActivityManagerWrapper.getInstance().isScreenPinningActive()); + pw.println(" assistantAvailable=" + mAssistantAvailable); + pw.println(" a11yClickable=" + + ((mSystemUiStateFlags & SYSUI_STATE_A11Y_BUTTON_CLICKABLE) != 0)); + pw.println(" a11yLongClickable=" + + ((mSystemUiStateFlags & SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE) != 0)); + pw.println(" resumed=" + + mOverviewComponentObserver.getActivityControlHelper().isResumed()); + pw.println(" useSharedState=" + mConsumer.useSharedSwipeState()); + if (mConsumer.useSharedSwipeState()) { + mSwipeSharedState.dump(" ", pw); + } + pw.println(" mConsumer=" + mConsumer.getName()); + TOUCH_INTERACTION_LOG.dump("", pw); + + } + } + + private void printAvailableCommands(PrintWriter pw) { + pw.println("Available commands:"); + pw.println(" clear-touch-log: Clears the touch interaction log"); + } + + private void onCommand(PrintWriter pw, ArgList args) { + switch (args.nextArg()) { + case "clear-touch-log": + TOUCH_INTERACTION_LOG.clear(); + break; + } } } diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/InputConsumer.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/InputConsumer.java index 2e8880dde..6e7cb8fca 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/InputConsumer.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/inputconsumers/InputConsumer.java @@ -63,4 +63,23 @@ public interface InputConsumer { onKeyEvent((KeyEvent) ev); } } + + default String getName() { + switch (getType()) { + case TYPE_OVERVIEW: + return "OVERVIEW"; + case TYPE_OTHER_ACTIVITY: + return "OTHER_ACTIVITY"; + case TYPE_ASSISTANT: + return "ASSISTANT"; + case TYPE_DEVICE_LOCKED: + return "DEVICE_LOCKED"; + case TYPE_ACCESSIBILITY: + return "ACCESSIBILITY"; + case TYPE_SCREEN_PINNED: + return "SCREEN_PINNED"; + default: + return "NO_OP"; + } + } } |