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

Commit aef9221b authored by Juan Sebastian Martinez's avatar Juan Sebastian Martinez
Browse files

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
parent 80a235b2
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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)
        }
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -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,
}
+21 −0
Original line number Diff line number Diff line
@@ -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)
    }
}