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
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"
|
||||
|
||||
@@ -1261,6 +1261,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>
|
||||
|
||||
<!-- Window magnification -->
|
||||
<dimen name="magnification_border_drag_size">35dp</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