port more global actions legacy logs to new pipeline
Bug: 147508238
Test: atest GlobalActionsDialogTest
Change-Id: I57d9d43b6076eb4a10d74fd007becd585ff01d68
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
index a4a5894..3f095dc 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
@@ -222,11 +222,27 @@
private ControlsController mControlsController;
private SharedPreferences mControlsPreferences;
private final RingerModeTracker mRingerModeTracker;
+ private int mDialogPressDelay = DIALOG_PRESS_DELAY; // ms
@VisibleForTesting
public enum GlobalActionsEvent implements UiEventLogger.UiEventEnum {
@UiEvent(doc = "The global actions / power menu surface became visible on the screen.")
- GA_POWER_MENU_OPEN(337);
+ GA_POWER_MENU_OPEN(337),
+
+ @UiEvent(doc = "The global actions bugreport button was pressed.")
+ GA_BUGREPORT_PRESS(344),
+
+ @UiEvent(doc = "The global actions bugreport button was long pressed.")
+ GA_BUGREPORT_LONG_PRESS(345),
+
+ @UiEvent(doc = "The global actions emergency button was pressed.")
+ GA_EMERGENCY_DIALER_PRESS(346),
+
+ @UiEvent(doc = "The global actions screenshot button was pressed.")
+ GA_SCREENSHOT_PRESS(347),
+
+ @UiEvent(doc = "The global actions screenshot button was long pressed.")
+ GA_SCREENSHOT_LONG_PRESS(348);
private final int mId;
@@ -679,7 +695,8 @@
}
}
- private class EmergencyDialerAction extends EmergencyAction {
+ @VisibleForTesting
+ class EmergencyDialerAction extends EmergencyAction {
private EmergencyDialerAction() {
super(com.android.systemui.R.drawable.ic_emergency_star,
R.string.global_action_emergency);
@@ -688,6 +705,7 @@
@Override
public void onPress() {
mMetricsLogger.action(MetricsEvent.ACTION_EMERGENCY_DIALER_FROM_POWER_MENU);
+ mUiEventLogger.log(GlobalActionsEvent.GA_EMERGENCY_DIALER_PRESS);
if (mTelecomManager != null) {
Intent intent = mTelecomManager.createLaunchEmergencyDialerIntent(
null /* number */);
@@ -701,6 +719,11 @@
}
}
+ @VisibleForTesting
+ EmergencyDialerAction makeEmergencyDialerActionForTesting() {
+ return new EmergencyDialerAction();
+ }
+
private final class RestartAction extends SinglePressAction implements LongPressAction {
private RestartAction() {
super(R.drawable.ic_restart, R.string.global_action_restart);
@@ -731,7 +754,8 @@
}
}
- private class ScreenshotAction extends SinglePressAction implements LongPressAction {
+ @VisibleForTesting
+ class ScreenshotAction extends SinglePressAction implements LongPressAction {
public ScreenshotAction() {
super(R.drawable.ic_screenshot, R.string.global_action_screenshot);
}
@@ -747,8 +771,9 @@
public void run() {
mScreenshotHelper.takeScreenshot(1, true, true, mHandler, null);
mMetricsLogger.action(MetricsEvent.ACTION_SCREENSHOT_POWER_MENU);
+ mUiEventLogger.log(GlobalActionsEvent.GA_SCREENSHOT_PRESS);
}
- }, 500);
+ }, mDialogPressDelay);
}
@Override
@@ -764,6 +789,7 @@
@Override
public boolean onLongPress() {
if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SCREENRECORD_LONG_PRESS)) {
+ mUiEventLogger.log(GlobalActionsEvent.GA_SCREENSHOT_LONG_PRESS);
mScreenRecordHelper.launchRecordPrompt();
} else {
onPress();
@@ -772,7 +798,13 @@
}
}
- private class BugReportAction extends SinglePressAction implements LongPressAction {
+ @VisibleForTesting
+ ScreenshotAction makeScreenshotActionForTesting() {
+ return new ScreenshotAction();
+ }
+
+ @VisibleForTesting
+ class BugReportAction extends SinglePressAction implements LongPressAction {
public BugReportAction() {
super(R.drawable.ic_lock_bugreport, R.string.bugreport_title);
@@ -795,6 +827,7 @@
// Take an "interactive" bugreport.
mMetricsLogger.action(
MetricsEvent.ACTION_BUGREPORT_FROM_POWER_MENU_INTERACTIVE);
+ mUiEventLogger.log(GlobalActionsEvent.GA_BUGREPORT_PRESS);
if (!mIActivityManager.launchBugReportHandlerApp()) {
Log.w(TAG, "Bugreport handler could not be launched");
mIActivityManager.requestInteractiveBugReport();
@@ -802,7 +835,7 @@
} catch (RemoteException e) {
}
}
- }, 500);
+ }, mDialogPressDelay);
}
@Override
@@ -815,6 +848,7 @@
try {
// Take a "full" bugreport.
mMetricsLogger.action(MetricsEvent.ACTION_BUGREPORT_FROM_POWER_MENU_FULL);
+ mUiEventLogger.log(GlobalActionsEvent.GA_BUGREPORT_LONG_PRESS);
mIActivityManager.requestFullBugReport();
} catch (RemoteException e) {
}
@@ -831,6 +865,11 @@
}
}
+ @VisibleForTesting
+ BugReportAction makeBugReportActionForTesting() {
+ return new BugReportAction();
+ }
+
private final class LogoutAction extends SinglePressAction {
private LogoutAction() {
super(R.drawable.ic_logout, R.string.global_action_logout);
@@ -858,7 +897,7 @@
} catch (RemoteException re) {
Log.e(TAG, "Couldn't logout user " + re);
}
- }, 500);
+ }, mDialogPressDelay);
}
}
@@ -1599,6 +1638,11 @@
private static final int MESSAGE_REFRESH = 1;
private static final int MESSAGE_SHOW = 2;
private static final int DIALOG_DISMISS_DELAY = 300; // ms
+ private static final int DIALOG_PRESS_DELAY = 500; // ms
+
+ @VisibleForTesting void setZeroDialogPressDelayForTesting() {
+ mDialogPressDelay = 0; // ms
+ }
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogTest.java b/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogTest.java
index 300cb21..3af164d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogTest.java
@@ -32,6 +32,7 @@
import android.telephony.TelephonyManager;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
+import android.util.FeatureFlagUtils;
import android.view.IWindowManager;
import androidx.test.filters.SmallTest;
@@ -66,7 +67,7 @@
@SmallTest
@RunWith(AndroidTestingRunner.class)
-@TestableLooper.RunWithLooper
+@TestableLooper.RunWithLooper()
public class GlobalActionsDialogTest extends SysuiTestCase {
private GlobalActionsDialog mGlobalActionsDialog;
@@ -143,11 +144,60 @@
mUiEventLogger,
mRingerModeTracker
);
+ mGlobalActionsDialog.setZeroDialogPressDelayForTesting();
}
+
@Test
public void testShouldLogVisibility() {
mGlobalActionsDialog.onShow(null);
+ mTestableLooper.processAllMessages();
+ verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent.GA_POWER_MENU_OPEN);
+ }
+
+ @Test
+ public void testShouldLogBugreportPress() throws InterruptedException {
+ GlobalActionsDialog.BugReportAction bugReportAction =
+ mGlobalActionsDialog.makeBugReportActionForTesting();
+ bugReportAction.onPress();
+ verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent.GA_BUGREPORT_PRESS);
+ }
+
+ @Test
+ public void testShouldLogBugreportLongPress() {
+ GlobalActionsDialog.BugReportAction bugReportAction =
+ mGlobalActionsDialog.makeBugReportActionForTesting();
+ bugReportAction.onLongPress();
+ verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent.GA_BUGREPORT_LONG_PRESS);
+ }
+
+ @Test
+ public void testShouldLogEmergencyDialerPress() {
+ GlobalActionsDialog.EmergencyDialerAction emergencyDialerAction =
+ mGlobalActionsDialog.makeEmergencyDialerActionForTesting();
+ emergencyDialerAction.onPress();
+ verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent.GA_EMERGENCY_DIALER_PRESS);
+ }
+
+ @Test
+ public void testShouldLogScreenshotPress() {
+ GlobalActionsDialog.ScreenshotAction screenshotAction =
+ mGlobalActionsDialog.makeScreenshotActionForTesting();
+ screenshotAction.onPress();
+ verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent.GA_SCREENSHOT_PRESS);
+ }
+
+ @Test
+ public void testShouldLogScreenshotLongPress() {
+ FeatureFlagUtils.setEnabled(mContext, FeatureFlagUtils.SCREENRECORD_LONG_PRESS, true);
+ GlobalActionsDialog.ScreenshotAction screenshotAction =
+ mGlobalActionsDialog.makeScreenshotActionForTesting();
+ screenshotAction.onLongPress();
+ verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent.GA_SCREENSHOT_LONG_PRESS);
+ }
+
+ private void verifyLogPosted(GlobalActionsDialog.GlobalActionsEvent event) {
+ mTestableLooper.processAllMessages();
verify(mUiEventLogger, times(1))
- .log(GlobalActionsDialog.GlobalActionsEvent.GA_POWER_MENU_OPEN);
+ .log(event);
}
}