Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a354728f authored by Juan Sebastian Martinez's avatar Juan Sebastian Martinez Committed by Android (Google) Code Review
Browse files

Merge "Adding UI log events when volume sliders start and end tracking touch." into main

parents 728b3821 94a6e203
Loading
Loading
Loading
Loading
+16 −1
Original line number Original line Diff line number Diff line
@@ -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_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_CLICK = 21;
    public static final int EVENT_ODI_CAPTIONS_TOOLTIP_CLICK = 22;
    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 = {
    private static final String[] EVENT_TAGS = {
            "show_dialog",
            "show_dialog",
@@ -84,7 +85,8 @@ public class Events {
            "show_usb_overheat_alarm",
            "show_usb_overheat_alarm",
            "dismiss_usb_overheat_alarm",
            "dismiss_usb_overheat_alarm",
            "odi_captions_click",
            "odi_captions_click",
            "odi_captions_tooltip_click"
            "odi_captions_tooltip_click",
            "slider_touch_tracking"
    };
    };


    public static final int DISMISS_REASON_UNKNOWN = 0;
    public static final int DISMISS_REASON_UNKNOWN = 0;
@@ -234,6 +236,10 @@ public class Events {
        VOLUME_DIALOG_SLIDER(150),
        VOLUME_DIALOG_SLIDER(150),
        @UiEvent(doc = "The audio stream was set to silent via slider")
        @UiEvent(doc = "The audio stream was set to silent via slider")
        VOLUME_DIALOG_SLIDER_TO_ZERO(151),
        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")
        @UiEvent(doc = "ODI captions was clicked")
        VOLUME_DIALOG_ODI_CAPTIONS_CLICKED(1503),
        VOLUME_DIALOG_ODI_CAPTIONS_CLICKED(1503),
        @UiEvent(doc = "ODI captions tooltip dismiss was clicked")
        @UiEvent(doc = "ODI captions tooltip dismiss was clicked")
@@ -491,6 +497,15 @@ public class Events {
                            .append(" keyguard=").append(keyguard);
                            .append(" keyguard=").append(keyguard);
                }
                }
                break;
                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:
            default:
                sb.append(Arrays.asList(list));
                sb.append(Arrays.asList(list));
                break;
                break;
+2 −0
Original line number Original line Diff line number Diff line
@@ -2518,6 +2518,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
        @Override
        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
        public void onStartTrackingTouch(SeekBar seekBar) {
            if (D.BUG) Log.d(TAG, "onStartTrackingTouch"+ " " + mRow.stream);
            if (D.BUG) Log.d(TAG, "onStartTrackingTouch"+ " " + mRow.stream);
            Events.writeEvent(Events.EVENT_SLIDER_TOUCH_TRACKING, /* startedTracking= */true);
            if (mRow.mHapticPlugin != null) {
            if (mRow.mHapticPlugin != null) {
                mRow.mHapticPlugin.onStartTrackingTouch(seekBar);
                mRow.mHapticPlugin.onStartTrackingTouch(seekBar);
            }
            }
@@ -2528,6 +2529,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
        @Override
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
        public void onStopTrackingTouch(SeekBar seekBar) {
            if (D.BUG) Log.d(TAG, "onStopTrackingTouch"+ " " + mRow.stream);
            if (D.BUG) Log.d(TAG, "onStopTrackingTouch"+ " " + mRow.stream);
            Events.writeEvent(Events.EVENT_SLIDER_TOUCH_TRACKING, /* startedTracking= */false);
            if (mRow.mHapticPlugin != null) {
            if (mRow.mHapticPlugin != null) {
                mRow.mHapticPlugin.onStopTrackingTouch(seekBar);
                mRow.mHapticPlugin.onStopTrackingTouch(seekBar);
            }
            }
+43 −0
Original line number Original line Diff line number Diff line
@@ -58,6 +58,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager;
import android.widget.ImageButton;
import android.widget.ImageButton;
import android.widget.SeekBar;


import androidx.test.core.view.MotionEventBuilder;
import androidx.test.core.view.MotionEventBuilder;
import androidx.test.filters.SmallTest;
import androidx.test.filters.SmallTest;
@@ -111,6 +112,7 @@ public class VolumeDialogImplTest extends SysuiTestCase {
    View mDrawerVibrate;
    View mDrawerVibrate;
    View mDrawerMute;
    View mDrawerMute;
    View mDrawerNormal;
    View mDrawerNormal;
    ViewGroup mDialogRowsView;
    CaptionsToggleImageButton mODICaptionsIcon;
    CaptionsToggleImageButton mODICaptionsIcon;


    private TestableLooper mTestableLooper;
    private TestableLooper mTestableLooper;
@@ -222,6 +224,8 @@ public class VolumeDialogImplTest extends SysuiTestCase {
        }
        }
        mODICaptionsIcon = mDialog.getDialogView().findViewById(R.id.odi_captions_icon);
        mODICaptionsIcon = mDialog.getDialogView().findViewById(R.id.odi_captions_icon);


        mDialogRowsView = mDialog.getDialogView().findViewById(R.id.volume_dialog_rows);

        Prefs.putInt(mContext,
        Prefs.putInt(mContext,
                Prefs.Key.SEEN_RINGER_GUIDANCE_COUNT,
                Prefs.Key.SEEN_RINGER_GUIDANCE_COUNT,
                VolumePrefs.SHOW_RINGER_TOAST_COUNT + 1);
                VolumePrefs.SHOW_RINGER_TOAST_COUNT + 1);
@@ -670,6 +674,45 @@ public class VolumeDialogImplTest extends SysuiTestCase {
                foundCaptionLog);
                foundCaptionLog);
    }
    }


    @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
    @Test
    public void turnOnDnD_volumeSliderIconChangesToDnd() {
    public void turnOnDnD_volumeSliderIconChangesToDnd() {
        State state = createShellState();
        State state = createShellState();