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

Commit 1b9ca1ef authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Selim Cinek
Browse files

Fix width of Seekbar when enabled but not seekable

Test: manual
Test: atest SeekBarObserverTest
Fixes: 159369236
Change-Id: Iba38e65168b7a748ddc8e3e88267ffbe4ae4e27c
parent 9de64deb
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -36,12 +36,11 @@ class SeekBarObserver(private val holder: PlayerViewHolder) : Observer<SeekBarVi
    /** Updates seek bar views when the data model changes. */
    @UiThread
    override fun onChanged(data: SeekBarViewModel.Progress) {
        val previouslyEnabled = holder.seekBar.isEnabled
        if (!data.enabled) {
            holder.seekBar.setEnabled(false)
            if (previouslyEnabled) {
            if (holder.seekBar.maxHeight != seekBarDisabledHeight) {
                holder.seekBar.maxHeight = seekBarDisabledHeight
            }
            holder.seekBar.setEnabled(false)
            holder.seekBar.getThumb().setAlpha(0)
            holder.seekBar.setProgress(0)
            holder.elapsedTimeView.setText("")
@@ -52,12 +51,8 @@ class SeekBarObserver(private val holder: PlayerViewHolder) : Observer<SeekBarVi
        holder.seekBar.getThumb().setAlpha(if (data.seekAvailable) 255 else 0)
        holder.seekBar.setEnabled(data.seekAvailable)

        if (previouslyEnabled != holder.seekBar.isEnabled) {
            holder.seekBar.maxHeight = if (holder.seekBar.isEnabled) {
                seekBarDefaultMaxHeight
            } else {
                seekBarDisabledHeight
            }
        if (holder.seekBar.maxHeight != seekBarDefaultMaxHeight) {
            holder.seekBar.maxHeight = seekBarDefaultMaxHeight
        }

        data.elapsedTime?.let {
+15 −2
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.view.View
import android.widget.SeekBar
import android.widget.TextView
import androidx.test.filters.SmallTest
import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.google.common.truth.Truth.assertThat
import org.junit.Before
@@ -36,6 +37,9 @@ import org.mockito.Mockito.`when` as whenever
@TestableLooper.RunWithLooper
public class SeekBarObserverTest : SysuiTestCase() {

    private val disabledHeight = 1
    private val enabledHeight = 2

    private lateinit var observer: SeekBarObserver
    @Mock private lateinit var mockHolder: PlayerViewHolder
    private lateinit var seekBarView: SeekBar
@@ -45,12 +49,19 @@ public class SeekBarObserverTest : SysuiTestCase() {
    @Before
    fun setUp() {
        mockHolder = mock(PlayerViewHolder::class.java)

        context.orCreateTestableResources
            .addOverride(R.dimen.qs_media_enabled_seekbar_height, enabledHeight)
        context.orCreateTestableResources
            .addOverride(R.dimen.qs_media_disabled_seekbar_height, disabledHeight)

        seekBarView = SeekBar(context)
        elapsedTimeView = TextView(context)
        totalTimeView = TextView(context)
        whenever(mockHolder.seekBar).thenReturn(seekBarView)
        whenever(mockHolder.elapsedTimeView).thenReturn(elapsedTimeView)
        whenever(mockHolder.totalTimeView).thenReturn(totalTimeView)

        observer = SeekBarObserver(mockHolder)
    }

@@ -60,11 +71,12 @@ public class SeekBarObserverTest : SysuiTestCase() {
        val isEnabled = false
        val data = SeekBarViewModel.Progress(isEnabled, false, null, null)
        observer.onChanged(data)
        // THEN seek bar shows just a line with no text
        // THEN seek bar shows just a thin line with no text
        assertThat(seekBarView.isEnabled()).isFalse()
        assertThat(seekBarView.getThumb().getAlpha()).isEqualTo(0)
        assertThat(elapsedTimeView.getText()).isEqualTo("")
        assertThat(totalTimeView.getText()).isEqualTo("")
        assertThat(seekBarView.maxHeight).isEqualTo(disabledHeight)
    }

    @Test
@@ -73,10 +85,11 @@ public class SeekBarObserverTest : SysuiTestCase() {
        val isEnabled = true
        val data = SeekBarViewModel.Progress(isEnabled, true, 3000, 12000)
        observer.onChanged(data)
        // THEN seek bar is visible
        // THEN seek bar is visible and thick
        assertThat(seekBarView.getVisibility()).isEqualTo(View.VISIBLE)
        assertThat(elapsedTimeView.getVisibility()).isEqualTo(View.VISIBLE)
        assertThat(totalTimeView.getVisibility()).isEqualTo(View.VISIBLE)
        assertThat(seekBarView.maxHeight).isEqualTo(enabledHeight)
    }

    @Test