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

Commit b011b821 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix width of Seekbar when enabled but not seekable" into rvc-dev

parents a48f9637 1b9ca1ef
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