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

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

Change-Id: I5aad89b9a90a95ee375b4da74f291845f7775e44
This commit is contained in:
TreeHugger Robot
2020-06-23 06:43:03 +00:00
committed by Automerger Merge Worker
2 changed files with 19 additions and 11 deletions

View File

@@ -36,12 +36,11 @@ class SeekBarObserver(private val holder: PlayerViewHolder) : Observer<SeekBarVi
/** Updates seek bar views when the data model changes. */ /** Updates seek bar views when the data model changes. */
@UiThread @UiThread
override fun onChanged(data: SeekBarViewModel.Progress) { override fun onChanged(data: SeekBarViewModel.Progress) {
val previouslyEnabled = holder.seekBar.isEnabled
if (!data.enabled) { if (!data.enabled) {
holder.seekBar.setEnabled(false) if (holder.seekBar.maxHeight != seekBarDisabledHeight) {
if (previouslyEnabled) {
holder.seekBar.maxHeight = seekBarDisabledHeight holder.seekBar.maxHeight = seekBarDisabledHeight
} }
holder.seekBar.setEnabled(false)
holder.seekBar.getThumb().setAlpha(0) holder.seekBar.getThumb().setAlpha(0)
holder.seekBar.setProgress(0) holder.seekBar.setProgress(0)
holder.elapsedTimeView.setText("") 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.getThumb().setAlpha(if (data.seekAvailable) 255 else 0)
holder.seekBar.setEnabled(data.seekAvailable) holder.seekBar.setEnabled(data.seekAvailable)
if (previouslyEnabled != holder.seekBar.isEnabled) { if (holder.seekBar.maxHeight != seekBarDefaultMaxHeight) {
holder.seekBar.maxHeight = if (holder.seekBar.isEnabled) { holder.seekBar.maxHeight = seekBarDefaultMaxHeight
seekBarDefaultMaxHeight
} else {
seekBarDisabledHeight
}
} }
data.elapsedTime?.let { data.elapsedTime?.let {

View File

@@ -22,6 +22,7 @@ import android.view.View
import android.widget.SeekBar import android.widget.SeekBar
import android.widget.TextView import android.widget.TextView
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import com.android.systemui.R
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import org.junit.Before import org.junit.Before
@@ -36,6 +37,9 @@ import org.mockito.Mockito.`when` as whenever
@TestableLooper.RunWithLooper @TestableLooper.RunWithLooper
public class SeekBarObserverTest : SysuiTestCase() { public class SeekBarObserverTest : SysuiTestCase() {
private val disabledHeight = 1
private val enabledHeight = 2
private lateinit var observer: SeekBarObserver private lateinit var observer: SeekBarObserver
@Mock private lateinit var mockHolder: PlayerViewHolder @Mock private lateinit var mockHolder: PlayerViewHolder
private lateinit var seekBarView: SeekBar private lateinit var seekBarView: SeekBar
@@ -45,12 +49,19 @@ public class SeekBarObserverTest : SysuiTestCase() {
@Before @Before
fun setUp() { fun setUp() {
mockHolder = mock(PlayerViewHolder::class.java) 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) seekBarView = SeekBar(context)
elapsedTimeView = TextView(context) elapsedTimeView = TextView(context)
totalTimeView = TextView(context) totalTimeView = TextView(context)
whenever(mockHolder.seekBar).thenReturn(seekBarView) whenever(mockHolder.seekBar).thenReturn(seekBarView)
whenever(mockHolder.elapsedTimeView).thenReturn(elapsedTimeView) whenever(mockHolder.elapsedTimeView).thenReturn(elapsedTimeView)
whenever(mockHolder.totalTimeView).thenReturn(totalTimeView) whenever(mockHolder.totalTimeView).thenReturn(totalTimeView)
observer = SeekBarObserver(mockHolder) observer = SeekBarObserver(mockHolder)
} }
@@ -60,11 +71,12 @@ public class SeekBarObserverTest : SysuiTestCase() {
val isEnabled = false val isEnabled = false
val data = SeekBarViewModel.Progress(isEnabled, false, null, null) val data = SeekBarViewModel.Progress(isEnabled, false, null, null)
observer.onChanged(data) 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.isEnabled()).isFalse()
assertThat(seekBarView.getThumb().getAlpha()).isEqualTo(0) assertThat(seekBarView.getThumb().getAlpha()).isEqualTo(0)
assertThat(elapsedTimeView.getText()).isEqualTo("") assertThat(elapsedTimeView.getText()).isEqualTo("")
assertThat(totalTimeView.getText()).isEqualTo("") assertThat(totalTimeView.getText()).isEqualTo("")
assertThat(seekBarView.maxHeight).isEqualTo(disabledHeight)
} }
@Test @Test
@@ -73,10 +85,11 @@ public class SeekBarObserverTest : SysuiTestCase() {
val isEnabled = true val isEnabled = true
val data = SeekBarViewModel.Progress(isEnabled, true, 3000, 12000) val data = SeekBarViewModel.Progress(isEnabled, true, 3000, 12000)
observer.onChanged(data) observer.onChanged(data)
// THEN seek bar is visible // THEN seek bar is visible and thick
assertThat(seekBarView.getVisibility()).isEqualTo(View.VISIBLE) assertThat(seekBarView.getVisibility()).isEqualTo(View.VISIBLE)
assertThat(elapsedTimeView.getVisibility()).isEqualTo(View.VISIBLE) assertThat(elapsedTimeView.getVisibility()).isEqualTo(View.VISIBLE)
assertThat(totalTimeView.getVisibility()).isEqualTo(View.VISIBLE) assertThat(totalTimeView.getVisibility()).isEqualTo(View.VISIBLE)
assertThat(seekBarView.maxHeight).isEqualTo(enabledHeight)
} }
@Test @Test