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

Commit cc2883bb authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Android (Google) Code Review
Browse files

Merge "RESTRICT AUTOMERGE Implement latest design of brightness slider" into sc-dev

parents c95396e1 86ecbb5d
Loading
Loading
Loading
Loading
+10 −23
Original line number Original line Diff line number Diff line
@@ -18,33 +18,20 @@
            android:paddingMode="stack" >
            android:paddingMode="stack" >
    <item android:id="@android:id/background"
    <item android:id="@android:id/background"
        android:gravity="center_vertical|fill_horizontal">
        android:gravity="center_vertical|fill_horizontal">
        <layer-list>
        <inset
            <item>
            android:insetLeft="@dimen/rounded_slider_track_inset"
                <shape
            android:insetRight="@dimen/rounded_slider_track_inset" >
                    android:tint="?android:attr/colorControlActivated"
            <shape>
                    android:alpha="?android:attr/disabledAlpha">
                <size android:height="@dimen/rounded_slider_track_width" />
                    <size android:height="@dimen/rounded_slider_height" />
                <corners android:radius="@dimen/rounded_slider_track_corner_radius" />
                    <solid android:color="@color/white_disabled" />
                <solid android:color="?android:attr/textColorPrimary" />
                    <corners android:radius="@dimen/rounded_slider_corner_radius" />
            </shape>
            </shape>
            </item>
        </inset>
            <item
                android:gravity="center_vertical|left"
                android:height="@dimen/rounded_slider_icon_size"
                android:width="@dimen/rounded_slider_icon_size"
                android:left="@dimen/rounded_slider_icon_inset">
                <com.android.systemui.util.AlphaTintDrawableWrapper
                    android:drawable="@drawable/ic_brightness"
                    android:tint="?android:attr/colorControlActivated" />
            </item>
        </layer-list>
    </item>
    </item>
    <item android:id="@android:id/progress"
    <item android:id="@android:id/progress"
          android:gravity="center_vertical|fill_horizontal">
          android:gravity="center_vertical|fill_horizontal">
            <clip
            <com.android.systemui.util.RoundedCornerProgressDrawable
                android:drawable="@drawable/brightness_progress_full_drawable"
                android:drawable="@drawable/brightness_progress_full_drawable"
                android:clipOrientation="horizontal"
                android:gravity="left"
            />
            />
    </item>
    </item>
</layer-list>
</layer-list>
 No newline at end of file
+2 −2
Original line number Original line Diff line number Diff line
@@ -26,10 +26,10 @@
    </item>
    </item>
    <item
    <item
        android:id="@+id/slider_icon"
        android:id="@+id/slider_icon"
        android:gravity="center_vertical|left"
        android:gravity="center_vertical|right"
        android:height="@dimen/rounded_slider_icon_size"
        android:height="@dimen/rounded_slider_icon_size"
        android:width="@dimen/rounded_slider_icon_size"
        android:width="@dimen/rounded_slider_icon_size"
        android:left="@dimen/rounded_slider_icon_inset">
        android:right="@dimen/rounded_slider_icon_inset">
        <com.android.systemui.util.AlphaTintDrawableWrapper
        <com.android.systemui.util.AlphaTintDrawableWrapper
            android:drawable="@drawable/ic_brightness"
            android:drawable="@drawable/ic_brightness"
            android:tint="?android:attr/colorBackground"
            android:tint="?android:attr/colorBackground"
+9 −5
Original line number Original line Diff line number Diff line
@@ -1356,11 +1356,15 @@
    <dimen name="people_space_image_radius">20dp</dimen>
    <dimen name="people_space_image_radius">20dp</dimen>
    <dimen name="people_space_widget_background_padding">6dp</dimen>
    <dimen name="people_space_widget_background_padding">6dp</dimen>


    <dimen name="rounded_slider_height">48dp</dimen>
    <dimen name="rounded_slider_height">44dp</dimen>
    <!-- rounded_slider_height / 2 -->
    <!-- rounded_slider_height / 2 -->
    <dimen name="rounded_slider_corner_radius">24dp</dimen>
    <dimen name="rounded_slider_corner_radius">22dp</dimen>
    <!-- rounded_slider_height / 2 -->
    <dimen name="rounded_slider_icon_size">20dp</dimen>
    <dimen name="rounded_slider_icon_size">24dp</dimen>
    <!-- (rounded_slider_height - rounded_slider_icon_size) / 2 -->
    <!-- rounded_slider_icon_size / 2 -->
    <dimen name="rounded_slider_icon_inset">12dp</dimen>
    <dimen name="rounded_slider_icon_inset">12dp</dimen>
    <!-- rounded_slider_corner_radius - rounded_slider_track_corner_radius -->
    <dimen name="rounded_slider_track_inset">18dp</dimen>
    <dimen name="rounded_slider_track_width">8dp</dimen>
    <!-- rounded_slider_track_width / 2 -->
    <dimen name="rounded_slider_track_corner_radius">4dp</dimen>
</resources>
</resources>
+4 −34
Original line number Original line Diff line number Diff line
@@ -17,8 +17,6 @@
package com.android.systemui.util
package com.android.systemui.util


import android.content.res.Resources
import android.content.res.Resources
import android.graphics.Canvas
import android.graphics.Path
import android.graphics.Rect
import android.graphics.Rect
import android.graphics.drawable.Drawable
import android.graphics.drawable.Drawable
import android.graphics.drawable.DrawableWrapper
import android.graphics.drawable.DrawableWrapper
@@ -43,53 +41,25 @@ class RoundedCornerProgressDrawable @JvmOverloads constructor(
        private const val MAX_LEVEL = 10000 // Taken from Drawable
        private const val MAX_LEVEL = 10000 // Taken from Drawable
    }
    }


    private var clipPath: Path = Path()

    init {
        setClipPath(Rect())
    }

    override fun onLayoutDirectionChanged(layoutDirection: Int): Boolean {
    override fun onLayoutDirectionChanged(layoutDirection: Int): Boolean {
        onLevelChange(level)
        onLevelChange(level)
        return super.onLayoutDirectionChanged(layoutDirection)
        return super.onLayoutDirectionChanged(layoutDirection)
    }
    }


    override fun onBoundsChange(bounds: Rect) {
    override fun onBoundsChange(bounds: Rect) {
        setClipPath(bounds)
        super.onBoundsChange(bounds)
        super.onBoundsChange(bounds)
        onLevelChange(level)
        onLevelChange(level)
    }
    }


    private fun setClipPath(bounds: Rect) {
        clipPath.reset()
        clipPath.addRoundRect(
                bounds.left.toFloat(),
                bounds.top.toFloat(),
                bounds.right.toFloat(),
                bounds.bottom.toFloat(),
                bounds.height().toFloat() / 2,
                bounds.height().toFloat() / 2,
                Path.Direction.CW
        )
    }

    override fun onLevelChange(level: Int): Boolean {
    override fun onLevelChange(level: Int): Boolean {
        val db = drawable?.bounds!!
        val db = drawable?.bounds!!
        val width = bounds.width() * level / MAX_LEVEL
        // On 0, the width is bounds.height (a circle), and on MAX_LEVEL, the width is bounds.width
        // Extra space on the left to keep the rounded shape on the right end
        val width = bounds.height() + (bounds.width() - bounds.height()) * level / MAX_LEVEL
        val leftBound = bounds.left - bounds.height()
        drawable?.setBounds(bounds.left, db.top, bounds.left + width, db.bottom)
        drawable?.setBounds(leftBound, db.top, bounds.left + width, db.bottom)
        return super.onLevelChange(level)
        return super.onLevelChange(level)
    }
    }


    override fun draw(canvas: Canvas) {
    override fun getConstantState(): ConstantState {
        canvas.save()
        canvas.clipPath(clipPath)
        super.draw(canvas)
        canvas.restore()
    }

    override fun getConstantState(): ConstantState? {
        // This should not be null as it was created with a state in the constructor.
        // This should not be null as it was created with a state in the constructor.
        return RoundedCornerState(super.getConstantState()!!)
        return RoundedCornerState(super.getConstantState()!!)
    }
    }