Loading packages/SystemUI/src/com/android/systemui/volume/Events.java +16 −1 Original line number Original line Diff line number Diff line Loading @@ -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", Loading @@ -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; Loading Loading @@ -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") Loading Loading @@ -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; Loading packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -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); } } Loading @@ -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); } } Loading packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java +43 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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(); Loading Loading
packages/SystemUI/src/com/android/systemui/volume/Events.java +16 −1 Original line number Original line Diff line number Diff line Loading @@ -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", Loading @@ -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; Loading Loading @@ -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") Loading Loading @@ -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; Loading
packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -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); } } Loading @@ -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); } } Loading
packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java +43 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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(); Loading