From 40c043ac2b757b5c8fa109036e8ae7f6f4530e11 Mon Sep 17 00:00:00 2001 From: Govinda Wasserman Date: Mon, 12 Aug 2019 12:22:13 -0400 Subject: [PATCH] Allow assistant handles to be requested by the assistant Test: Tested locally BUG:131615462 Change-Id: I428086d6d500ee8838c856bc867cbb40d3d2a581 --- .../systemui/assist/AssistHandleBehaviorController.java | 7 +++++++ .../systemui/assist/AssistHandleReminderExpBehavior.java | 7 +++++++ .../src/com/android/systemui/assist/AssistManager.java | 9 +++++++++ 3 files changed, 23 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java index 6da3818c5d055..25d16455a1643 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java @@ -177,6 +177,12 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac mBehaviorMap.get(mCurrentBehavior).onAssistantGesturePerformed(); } + void onAssistHandlesRequested() { + if (mInGesturalMode) { + mBehaviorMap.get(mCurrentBehavior).onAssistHandlesRequested(); + } + } + void setBehavior(AssistHandleBehavior behavior) { if (mCurrentBehavior == behavior) { return; @@ -316,6 +322,7 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac void onModeActivated(Context context, AssistHandleCallbacks callbacks); default void onModeDeactivated() {} default void onAssistantGesturePerformed() {} + default void onAssistHandlesRequested() {} default void dump(PrintWriter pw, String prefix) {} } } diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java index f9ddeaef3e86d..c5064b7e04226 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleReminderExpBehavior.java @@ -211,6 +211,13 @@ final class AssistHandleReminderExpBehavior implements BehaviorController { mContext.getContentResolver(), LEARNING_EVENT_COUNT_KEY, ++mLearningCount); } + @Override + public void onAssistHandlesRequested() { + if (mAssistHandleCallbacks != null && !mIsDozing && !mIsNavBarHidden && !mOnLockscreen) { + mAssistHandleCallbacks.showAndGo(); + } + } + private static boolean isNavBarHidden(int sysuiStateFlags) { return (sysuiStateFlags & QuickStepContract.SYSUI_STATE_NAV_BAR_HIDDEN) != 0; } diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java index 4a4feada3c65f..df1269e44461a 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java @@ -97,6 +97,8 @@ public class AssistManager implements ConfigurationChangedReceiver { private static final String INVOCATION_TIME_MS_KEY = "invocation_time_ms"; private static final String INVOCATION_PHONE_STATE_KEY = "invocation_phone_state"; public static final String INVOCATION_TYPE_KEY = "invocation_type"; + protected static final String ACTION_KEY = "action"; + protected static final String SHOW_ASSIST_HANDLES_ACTION = "show_assist_handles"; public static final int INVOCATION_TYPE_GESTURE = 1; public static final int INVOCATION_TYPE_ACTIVE_EDGE = 2; @@ -204,6 +206,9 @@ public class AssistManager implements ConfigurationChangedReceiver { if (VERBOSE) { Log.v(TAG, "UI hints received"); } + if (SHOW_ASSIST_HANDLES_ACTION.equals(hints.getString(ACTION_KEY))) { + requestAssistHandles(); + } } }); } @@ -277,6 +282,10 @@ public class AssistManager implements ConfigurationChangedReceiver { mUiController.onGestureCompletion(velocity); } + protected void requestAssistHandles() { + mHandleController.onAssistHandlesRequested(); + } + public void hideAssist() { mAssistUtils.hideCurrentSession(); }