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:
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user