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

Commit 9352b31b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11953554

Change-Id: I369bec98098ee0e022375c3c0abc2a8380dbff1d
parents 23b19caa b011b821
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