diff options
author | 2020-06-09 23:50:18 +0000 | |
---|---|---|
committer | 2020-06-09 23:50:18 +0000 | |
commit | d6b9d5a608b8915102f51a728a11d69f8ddb305c (patch) | |
tree | 017ccfaaf1aba1a0b6fb0d2200851cb4c8427f07 | |
parent | dee3bbc82311bf9f350cf626c2a22b2ade603384 (diff) | |
parent | 119913a45007120551d97727af30d33a56ab9f68 (diff) |
Merge "add uievent logs for nav assistant longpress" into rvc-dev
4 files changed, 55 insertions, 20 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java index bf53a2f113e9..8954d98d0201 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java @@ -96,6 +96,8 @@ import androidx.annotation.VisibleForTesting; import com.android.internal.accessibility.dialog.AccessibilityButtonChooserActivity; import com.android.internal.logging.MetricsLogger; +import com.android.internal.logging.UiEvent; +import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.util.LatencyTracker; import com.android.internal.view.AppearanceRegion; @@ -225,6 +227,25 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback private int mCurrentRotation; private boolean mFixedRotationEnabled; private ViewTreeObserver.OnGlobalLayoutListener mOrientationHandleGlobalLayoutListener; + private UiEventLogger mUiEventLogger; + + @com.android.internal.annotations.VisibleForTesting + public enum NavBarActionEvent implements UiEventLogger.UiEventEnum { + + @UiEvent(doc = "Assistant invoked via home button long press.") + NAVBAR_ASSIST_LONGPRESS(550); + + private final int mId; + + NavBarActionEvent(int id) { + mId = id; + } + + @Override + public int getId() { + return mId; + } + } /** Only for default display */ @Nullable @@ -367,7 +388,8 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback ShadeController shadeController, NotificationRemoteInputManager notificationRemoteInputManager, SystemActions systemActions, - @Main Handler mainHandler) { + @Main Handler mainHandler, + UiEventLogger uiEventLogger) { mAccessibilityManagerWrapper = accessibilityManagerWrapper; mDeviceProvisionedController = deviceProvisionedController; mStatusBarStateController = statusBarStateController; @@ -387,6 +409,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback mRecentsOptional = recentsOptional; mSystemActions = systemActions; mHandler = mainHandler; + mUiEventLogger = uiEventLogger; } // ----- Fragment Lifecycle Callbacks ----- @@ -1008,6 +1031,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback return false; } mMetricsLogger.action(MetricsEvent.ACTION_ASSIST_LONG_PRESS); + mUiEventLogger.log(NavBarActionEvent.NAVBAR_ASSIST_LONGPRESS); Bundle args = new Bundle(); args.putInt( AssistManager.INVOCATION_TYPE_KEY, AssistManager.INVOCATION_HOME_BUTTON_LONG_PRESS); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java index 58f5d2a5b43f..0ca8ef009173 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java @@ -87,7 +87,7 @@ public class KeyButtonView extends ImageView implements ButtonInterface { private boolean mHasOvalBg = false; @VisibleForTesting - public enum NavBarActionsEvent implements UiEventLogger.UiEventEnum { + public enum NavBarButtonEvent implements UiEventLogger.UiEventEnum { @UiEvent(doc = "The home button was pressed in the navigation bar.") NAVBAR_HOME_BUTTON_TAP(533), @@ -111,7 +111,7 @@ public class KeyButtonView extends ImageView implements ButtonInterface { private final int mId; - NavBarActionsEvent(int id) { + NavBarButtonEvent(int id) { mId = id; } @@ -368,7 +368,7 @@ public class KeyButtonView extends ImageView implements ButtonInterface { private void logSomePresses(int action, int flags) { boolean longPressSet = (flags & KeyEvent.FLAG_LONG_PRESS) != 0; - NavBarActionsEvent uiEvent = NavBarActionsEvent.NONE; + NavBarButtonEvent uiEvent = NavBarButtonEvent.NONE; if (action == MotionEvent.ACTION_UP && mLongClicked) { return; // don't log the up after a long press } @@ -382,21 +382,21 @@ public class KeyButtonView extends ImageView implements ButtonInterface { switch(mCode) { case KeyEvent.KEYCODE_BACK: uiEvent = longPressSet - ? NavBarActionsEvent.NAVBAR_BACK_BUTTON_LONGPRESS - : NavBarActionsEvent.NAVBAR_BACK_BUTTON_TAP; + ? NavBarButtonEvent.NAVBAR_BACK_BUTTON_LONGPRESS + : NavBarButtonEvent.NAVBAR_BACK_BUTTON_TAP; break; case KeyEvent.KEYCODE_HOME: uiEvent = longPressSet - ? NavBarActionsEvent.NAVBAR_HOME_BUTTON_LONGPRESS - : NavBarActionsEvent.NAVBAR_HOME_BUTTON_TAP; + ? NavBarButtonEvent.NAVBAR_HOME_BUTTON_LONGPRESS + : NavBarButtonEvent.NAVBAR_HOME_BUTTON_TAP; break; case KeyEvent.KEYCODE_APP_SWITCH: uiEvent = longPressSet - ? NavBarActionsEvent.NAVBAR_OVERVIEW_BUTTON_LONGPRESS - : NavBarActionsEvent.NAVBAR_OVERVIEW_BUTTON_TAP; + ? NavBarButtonEvent.NAVBAR_OVERVIEW_BUTTON_LONGPRESS + : NavBarButtonEvent.NAVBAR_OVERVIEW_BUTTON_TAP; break; } - if (uiEvent != NavBarActionsEvent.NONE) { + if (uiEvent != NavBarButtonEvent.NONE) { mUiEventLogger.log(uiEvent); } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java index a77f8c649f30..00cbddc87726 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java @@ -21,6 +21,8 @@ import static android.inputmethodservice.InputMethodService.IME_VISIBLE; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.DisplayAdjustments.DEFAULT_DISPLAY_ADJUSTMENTS; +import static com.android.systemui.statusbar.phone.NavigationBarFragment.NavBarActionEvent.NAVBAR_ASSIST_LONGPRESS; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -28,6 +30,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -59,6 +62,7 @@ import android.view.accessibility.AccessibilityManager.AccessibilityServicesStat import androidx.test.filters.SmallTest; import com.android.internal.logging.MetricsLogger; +import com.android.internal.logging.UiEventLogger; import com.android.systemui.Dependency; import com.android.systemui.SysuiBaseFragmentTest; import com.android.systemui.SysuiTestableContext; @@ -105,6 +109,8 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { private Recents mRecents; @Mock private SystemActions mSystemActions; + @Mock + private UiEventLogger mUiEventLogger; private AccessibilityManagerWrapper mAccessibilityWrapper = new AccessibilityManagerWrapper(mContext) { @@ -187,6 +193,8 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { mFragments.dispatchResume(); processAllMessages(); navigationBarFragment.onHomeLongClick(navigationBarFragment.getView()); + + verify(mUiEventLogger, times(1)).log(NAVBAR_ASSIST_LONGPRESS); } @Test @@ -242,6 +250,7 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { protected Fragment instantiate(Context context, String className, Bundle arguments) { DeviceProvisionedController deviceProvisionedController = mock(DeviceProvisionedController.class); + when(deviceProvisionedController.isDeviceProvisioned()).thenReturn(true); assertNotNull(mAccessibilityWrapper); return new NavigationBarFragment( context.getDisplayId() == DEFAULT_DISPLAY ? mAccessibilityWrapper @@ -261,7 +270,8 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { mock(ShadeController.class), mock(NotificationRemoteInputManager.class), mock(SystemActions.class), - mHandler); + mHandler, + mUiEventLogger); } private class HostCallbacksForExternalDisplay extends @@ -319,6 +329,7 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest { mock(LightBarTransitionsController.class)); when(view.getRotationButtonController()).thenReturn( mock(RotationButtonController.class)); + when(view.isRecentsButtonVisible()).thenReturn(true); return view; } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/KeyButtonViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/KeyButtonViewTest.java index 5e9d592ab773..d52d6860bf42 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/KeyButtonViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/KeyButtonViewTest.java @@ -23,12 +23,12 @@ import static android.view.KeyEvent.KEYCODE_APP_SWITCH; import static android.view.KeyEvent.KEYCODE_BACK; import static android.view.KeyEvent.KEYCODE_HOME; -import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarActionsEvent.NAVBAR_BACK_BUTTON_LONGPRESS; -import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarActionsEvent.NAVBAR_BACK_BUTTON_TAP; -import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarActionsEvent.NAVBAR_HOME_BUTTON_LONGPRESS; -import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarActionsEvent.NAVBAR_HOME_BUTTON_TAP; -import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarActionsEvent.NAVBAR_OVERVIEW_BUTTON_LONGPRESS; -import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarActionsEvent.NAVBAR_OVERVIEW_BUTTON_TAP; +import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarButtonEvent.NAVBAR_BACK_BUTTON_LONGPRESS; +import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarButtonEvent.NAVBAR_BACK_BUTTON_TAP; +import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarButtonEvent.NAVBAR_HOME_BUTTON_LONGPRESS; +import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarButtonEvent.NAVBAR_HOME_BUTTON_TAP; +import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarButtonEvent.NAVBAR_OVERVIEW_BUTTON_LONGPRESS; +import static com.android.systemui.statusbar.policy.KeyButtonView.NavBarButtonEvent.NAVBAR_OVERVIEW_BUTTON_TAP; import static junit.framework.Assert.assertEquals; @@ -140,11 +140,11 @@ public class KeyButtonViewTest extends SysuiTestCase { } private void checkmetrics(int code, int action, int flag, - KeyButtonView.NavBarActionsEvent expected) { + KeyButtonView.NavBarButtonEvent expected) { mKeyButtonView.setCode(code); mKeyButtonView.sendEvent(action, flag); if (expected == null) { - verify(mUiEventLogger, never()).log(any(KeyButtonView.NavBarActionsEvent.class)); + verify(mUiEventLogger, never()).log(any(KeyButtonView.NavBarButtonEvent.class)); } else { verify(mUiEventLogger, times(1)).log(expected); } |