Merge "Fix width of Seekbar when enabled but not seekable" into rvc-dev am: b011b82109 am: c9950b7da5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11953554 Change-Id: I3ab8c05291988a3b2001856da7e941b50909cd81
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user