diff options
| author | 2024-02-13 12:05:08 -0800 | |
|---|---|---|
| committer | 2024-02-14 15:47:23 -0800 | |
| commit | 94a6e2030e9adf663b57c59d023afa46d965a41f (patch) | |
| tree | 14797b3aeff85dd289c7752e4c64b9db2e2db5a7 | |
| parent | 2183a65d5602af7537b1ec01966def4ed0a7cf55 (diff) | |
Adding UI log events when volume sliders start and end tracking touch.
Test: atest SystemUITests:VolumeDialogImplTest
Flag: NONE
Bug: 316953430
Change-Id: I4e29432a6abd99cf91a554e1f5b75d717c4b40c5
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;  |