Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f3c88ab authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

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 b84e6ba2)
parent e530998c
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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"
+2 −0
Original line number Diff line number Diff line
@@ -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>
+16 −3
Original line number Diff line number Diff line
@@ -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)
    }
}