Swap seekbar vert padding to keep height fixed

Reduce the vertical padding of the seekbar when it's enabled by 2dp to
account for the extra height in the track. That way the height of the
SeekBar view is always 33dp.

This has a nice side effect of properly setting the height of the track
when resuming.

Bug: 160242262
Test: manual
Change-Id: I9b6888f2a6bf5fb118075dea3f849618350ec18b
(cherry picked from commit b84e6ba27f)
This commit is contained in:
Fabian Kozynski
2020-09-01 14:50:51 -04:00
parent e530998c9e
commit 6f3c88ab86
3 changed files with 19 additions and 5 deletions

View File

@@ -166,8 +166,7 @@
android:layout_height="wrap_content"
android:clickable="true"
android:maxHeight="@dimen/qs_media_enabled_seekbar_height"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingVertical="@dimen/qs_media_enabled_seekbar_vertical_padding"
android:thumbTint="@color/media_primary_text"
android:progressTint="@color/media_seekbar_progress"
android:progressBackgroundTint="@color/media_disabled"

View File

@@ -1295,6 +1295,8 @@
<dimen name="qs_footer_horizontal_margin">22dp</dimen>
<dimen name="qs_media_disabled_seekbar_height">1dp</dimen>
<dimen name="qs_media_enabled_seekbar_height">3dp</dimen>
<dimen name="qs_media_enabled_seekbar_vertical_padding">15dp</dimen>
<dimen name="qs_media_disabled_seekbar_vertical_padding">16dp</dimen>
<dimen name="magnification_border_size">5dp</dimen>
<dimen name="magnification_frame_move_short">5dp</dimen>

View File

@@ -28,10 +28,14 @@ import com.android.systemui.R
*/
class SeekBarObserver(private val holder: PlayerViewHolder) : Observer<SeekBarViewModel.Progress> {
val seekBarDefaultMaxHeight = holder.seekBar.context.resources
val seekBarEnabledMaxHeight = holder.seekBar.context.resources
.getDimensionPixelSize(R.dimen.qs_media_enabled_seekbar_height)
val seekBarDisabledHeight = holder.seekBar.context.resources
.getDimensionPixelSize(R.dimen.qs_media_disabled_seekbar_height)
val seekBarEnabledVerticalPadding = holder.seekBar.context.resources
.getDimensionPixelSize(R.dimen.qs_media_enabled_seekbar_vertical_padding)
val seekBarDisabledVerticalPadding = holder.seekBar.context.resources
.getDimensionPixelSize(R.dimen.qs_media_disabled_seekbar_vertical_padding)
/** Updates seek bar views when the data model changes. */
@UiThread
@@ -39,6 +43,7 @@ class SeekBarObserver(private val holder: PlayerViewHolder) : Observer<SeekBarVi
if (!data.enabled) {
if (holder.seekBar.maxHeight != seekBarDisabledHeight) {
holder.seekBar.maxHeight = seekBarDisabledHeight
setVerticalPadding(seekBarDisabledVerticalPadding)
}
holder.seekBar.setEnabled(false)
holder.seekBar.getThumb().setAlpha(0)
@@ -51,8 +56,9 @@ class SeekBarObserver(private val holder: PlayerViewHolder) : Observer<SeekBarVi
holder.seekBar.getThumb().setAlpha(if (data.seekAvailable) 255 else 0)
holder.seekBar.setEnabled(data.seekAvailable)
if (holder.seekBar.maxHeight != seekBarDefaultMaxHeight) {
holder.seekBar.maxHeight = seekBarDefaultMaxHeight
if (holder.seekBar.maxHeight != seekBarEnabledMaxHeight) {
holder.seekBar.maxHeight = seekBarEnabledMaxHeight
setVerticalPadding(seekBarEnabledVerticalPadding)
}
data.duration?.let {
@@ -67,4 +73,11 @@ class SeekBarObserver(private val holder: PlayerViewHolder) : Observer<SeekBarVi
it / DateUtils.SECOND_IN_MILLIS))
}
}
@UiThread
fun setVerticalPadding(padding: Int) {
val leftPadding = holder.seekBar.paddingLeft
val rightPadding = holder.seekBar.paddingRight
holder.seekBar.setPadding(leftPadding, padding, rightPadding, padding)
}
}