summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Juan Sebastian Martinez <juansmartinez@google.com> 2024-02-13 12:05:08 -0800
committer Juan Sebastian Martinez <juansmartinez@google.com> 2024-02-14 15:47:23 -0800
commit94a6e2030e9adf663b57c59d023afa46d965a41f (patch)
tree14797b3aeff85dd289c7752e4c64b9db2e2db5a7
parent2183a65d5602af7537b1ec01966def4ed0a7cf55 (diff)
Adding UI log events when volume sliders start and end tracking touch.
Test: atest SystemUITests:VolumeDialogImplTest Flag: NONE Bug: 316953430 Change-Id: I4e29432a6abd99cf91a554e1f5b75d717c4b40c5
-rw-r--r--packages/SystemUI/src/com/android/systemui/volume/Events.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java43
3 files changed, 61 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/volume/Events.java b/packages/SystemUI/src/com/android/systemui/volume/Events.java
index 50d15475434b..e10d1cb833fa 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/Events.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/Events.java
@@ -60,6 +60,7 @@ public class Events {
public static final int EVENT_DISMISS_USB_OVERHEAT_ALARM = 20; // (reason|int) (keyguard|bool)
public static final int EVENT_ODI_CAPTIONS_CLICK = 21;
public static final int EVENT_ODI_CAPTIONS_TOOLTIP_CLICK = 22;
+ public static final int EVENT_SLIDER_TOUCH_TRACKING = 23; // (tracking|bool)
private static final String[] EVENT_TAGS = {
"show_dialog",
@@ -84,7 +85,8 @@ public class Events {
"show_usb_overheat_alarm",
"dismiss_usb_overheat_alarm",
"odi_captions_click",
- "odi_captions_tooltip_click"
+ "odi_captions_tooltip_click",
+ "slider_touch_tracking"
};
public static final int DISMISS_REASON_UNKNOWN = 0;
@@ -234,6 +236,10 @@ public class Events {
VOLUME_DIALOG_SLIDER(150),
@UiEvent(doc = "The audio stream was set to silent via slider")
VOLUME_DIALOG_SLIDER_TO_ZERO(151),
+ @UiEvent(doc = "The right-most slider started tracking touch")
+ VOLUME_DIALOG_SLIDER_STARTED_TRACKING_TOUCH(1620),
+ @UiEvent(doc = "The right-most slider stopped tracking touch")
+ VOLUME_DIALOG_SLIDER_STOPPED_TRACKING_TOUCH(1621),
@UiEvent(doc = "ODI captions was clicked")
VOLUME_DIALOG_ODI_CAPTIONS_CLICKED(1503),
@UiEvent(doc = "ODI captions tooltip dismiss was clicked")
@@ -491,6 +497,15 @@ public class Events {
.append(" keyguard=").append(keyguard);
}
break;
+ case EVENT_SLIDER_TOUCH_TRACKING:
+ final boolean startedTracking = (boolean) list[0];
+ final VolumeDialogEvent event;
+ if (startedTracking) {
+ event = VolumeDialogEvent.VOLUME_DIALOG_SLIDER_STARTED_TRACKING_TOUCH;
+ } else {
+ event = VolumeDialogEvent.VOLUME_DIALOG_SLIDER_STOPPED_TRACKING_TOUCH;
+ }
+ sUiEventLogger.log(event);
default:
sb.append(Arrays.asList(list));
break;
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
index 90c5c62718ad..404563087041 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
@@ -2518,6 +2518,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
if (D.BUG) Log.d(TAG, "onStartTrackingTouch"+ " " + mRow.stream);
+ Events.writeEvent(Events.EVENT_SLIDER_TOUCH_TRACKING, /* startedTracking= */true);
if (mRow.mHapticPlugin != null) {
mRow.mHapticPlugin.onStartTrackingTouch(seekBar);
}
@@ -2528,6 +2529,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if (D.BUG) Log.d(TAG, "onStopTrackingTouch"+ " " + mRow.stream);
+ Events.writeEvent(Events.EVENT_SLIDER_TOUCH_TRACKING, /* startedTracking= */false);
if (mRow.mHapticPlugin != null) {
mRow.mHapticPlugin.onStopTrackingTouch(seekBar);
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java
index 25a0bc4fba61..1a3cb87b3422 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java
@@ -58,6 +58,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityManager;
import android.widget.ImageButton;
+import android.widget.SeekBar;
import androidx.test.core.view.MotionEventBuilder;
import androidx.test.filters.SmallTest;
@@ -111,6 +112,7 @@ public class VolumeDialogImplTest extends SysuiTestCase {
View mDrawerVibrate;
View mDrawerMute;
View mDrawerNormal;
+ ViewGroup mDialogRowsView;
CaptionsToggleImageButton mODICaptionsIcon;
private TestableLooper mTestableLooper;
@@ -222,6 +224,8 @@ public class VolumeDialogImplTest extends SysuiTestCase {
}
mODICaptionsIcon = mDialog.getDialogView().findViewById(R.id.odi_captions_icon);
+ mDialogRowsView = mDialog.getDialogView().findViewById(R.id.volume_dialog_rows);
+
Prefs.putInt(mContext,
Prefs.Key.SEEN_RINGER_GUIDANCE_COUNT,
VolumePrefs.SHOW_RINGER_TOAST_COUNT + 1);
@@ -671,6 +675,45 @@ public class VolumeDialogImplTest extends SysuiTestCase {
}
@Test
+ public void volumeSliderTracksTouch_logsStartAndStopTrackingUiEvents() {
+ UiEventLoggerFake logger = new UiEventLoggerFake();
+ Events.sUiEventLogger = logger;
+
+ mDialog.show(SHOW_REASON_UNKNOWN);
+ mTestableLooper.processAllMessages();
+
+ MotionEvent down = MotionEventBuilder.newBuilder()
+ .setAction(MotionEvent.ACTION_DOWN).build();
+ MotionEvent up = MotionEventBuilder.newBuilder().setAction(MotionEvent.ACTION_UP).build();
+
+ SeekBar slider =
+ mDialogRowsView.getChildAt(0).findViewById(R.id.volume_row_slider);
+ slider.onTouchEvent(down);
+ slider.onTouchEvent(up);
+ mTestableLooper.moveTimeForward(300);
+ mTestableLooper.processAllMessages();
+
+ boolean foundStartTrackingTouch = false;
+ boolean foundStopTrackingTouch = false;
+ for (UiEventLoggerFake.FakeUiEvent event : logger.getLogs()) {
+ if (event.eventId
+ == Events.VolumeDialogEvent.VOLUME_DIALOG_SLIDER_STARTED_TRACKING_TOUCH.getId()
+ ) {
+ foundStartTrackingTouch = true;
+ }
+ if (event.eventId
+ == Events.VolumeDialogEvent.VOLUME_DIALOG_SLIDER_STOPPED_TRACKING_TOUCH.getId()
+ ) {
+ foundStopTrackingTouch = true;
+ }
+ }
+ Assert.assertTrue("Did not log the event of start tracking touch.",
+ foundStartTrackingTouch);
+ Assert.assertTrue("Did not log the event of stop tracking touch.",
+ foundStopTrackingTouch);
+ }
+
+ @Test
public void turnOnDnD_volumeSliderIconChangesToDnd() {
State state = createShellState();
state.zenMode = Settings.Global.ZEN_MODE_NO_INTERRUPTIONS;