diff options
| author | 2023-12-18 15:52:52 -0800 | |
|---|---|---|
| committer | 2023-12-21 10:40:12 -0800 | |
| commit | aef9221b8e27d0fd45b3a914239d5b6103da9086 (patch) | |
| tree | 411701b60639dc1657ef4b91503fa81e30fc45d1 | |
| parent | 80a235b2051c6316eae243ba7f6b3d9e4433fe23 (diff) | |
Adding support for external stimulus release event in the
SeekableSliderEventProducer.
The event when a seekable slider is released from external stimulus
control (e.g., a button or a physical key) is now produced by the
SeekableSliderEventProducer.
Test: atest SystemUITests:SeekableSliderEventProducerTest
Bug: 316953430
Flag: NONE
Change-Id: I3026085580f84e0ee4ddae48ce811071a97fdf61
3 files changed, 29 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/haptics/slider/SeekableSliderEventProducer.kt b/packages/SystemUI/src/com/android/systemui/haptics/slider/SeekableSliderEventProducer.kt index 629b361064a7..cfa5294567b7 100644 --- a/packages/SystemUI/src/com/android/systemui/haptics/slider/SeekableSliderEventProducer.kt +++ b/packages/SystemUI/src/com/android/systemui/haptics/slider/SeekableSliderEventProducer.kt @@ -65,4 +65,11 @@ class SeekableSliderEventProducer : SliderEventProducer, OnSeekBarChangeListener SliderEvent(SliderEventType.STOPPED_TRACKING_TOUCH, previousEvent.currentProgress) } } + + /** The arrow navigation that was operating the slider has stopped. */ + fun onArrowUp() { + _currentEvent.update { previousEvent -> + SliderEvent(SliderEventType.ARROW_UP, previousEvent.currentProgress) + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderEventType.kt b/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderEventType.kt index 413e27763ba8..4a63941b3f8c 100644 --- a/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderEventType.kt +++ b/packages/SystemUI/src/com/android/systemui/haptics/slider/SliderEventType.kt @@ -29,5 +29,5 @@ enum class SliderEventType { /* The slider has stopped tracking touch events. */ STOPPED_TRACKING_TOUCH, /* The external (not touch) stimulus that was modifying the slider progress has stopped. */ - EXTERNAL_STIMULUS_RELEASE, + ARROW_UP, } diff --git a/packages/SystemUI/tests/src/com/android/systemui/haptics/slider/SeekableSliderEventProducerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/haptics/slider/SeekableSliderEventProducerTest.kt index 71a56cd8588c..c22d35cb214f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/haptics/slider/SeekableSliderEventProducerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/haptics/slider/SeekableSliderEventProducerTest.kt @@ -123,4 +123,25 @@ class SeekableSliderEventProducerTest : SysuiTestCase() { assertEquals(SliderEvent(SliderEventType.STOPPED_TRACKING_TOUCH, 0.5F), latest) } + + @Test + fun onArrowUp_afterStartTrackingTouch_ArrowUpProduced() = runTest { + val latest by collectLastValue(eventFlow) + + eventProducer.onStartTrackingTouch(seekBar) + eventProducer.onArrowUp() + + assertEquals(SliderEvent(SliderEventType.ARROW_UP, 0f), latest) + } + + @Test + fun onArrowUp_afterChangeByProgram_ArrowUpProduced_withProgress() = runTest { + val progress = 50 + val latest by collectLastValue(eventFlow) + + eventProducer.onProgressChanged(seekBar, progress, false) + eventProducer.onArrowUp() + + assertEquals(SliderEvent(SliderEventType.ARROW_UP, 0.5f), latest) + } } |