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

Commit 1ddaa996 authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Implement latest design on thick brightness slider

Add a DrawableWrapper that can deal with progress bar with rounded
corners. The right (end) bound indicates the level of the progress, so a
full/empty bar has the expected value.

For some reason, start/end in the icons don't work as expected with RTL,
but left/right do.

Test: manual
Bug: 171319433
Change-Id: I291375ac63dfb8f18865c9b3e90c234d32ac9e7d
parent 2d37557f
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -23,14 +23,16 @@
                <shape
                    android:tint="?android:attr/colorControlActivated"
                    android:alpha="?android:attr/disabledAlpha">
                    <size android:height="48dp" />
                    <size android:height="@dimen/rounded_slider_height" />
                    <solid android:color="@color/white_disabled" />
                    <corners android:radius="24dp" />
                    <corners android:radius="@dimen/rounded_slider_corner_radius" />
                </shape>
            </item>
            <item
                android:gravity="center_vertical|start"
                android:start="32dp">
                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" />
@@ -39,10 +41,8 @@
    </item>
    <item android:id="@android:id/progress"
          android:gravity="center_vertical|fill_horizontal">
        <clip
            <com.android.systemui.util.RoundedCornerProgressDrawable
                android:drawable="@drawable/brightness_progress_full_drawable"
            android:clipOrientation="horizontal"
            android:gravity="left"
            />
    </item>
</layer-list>
 No newline at end of file
+8 −5
Original line number Diff line number Diff line
@@ -15,18 +15,21 @@
  ~ limitations under the License.
  -->

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:autoMirrored="true">
    <item android:id="@+id/slider_foreground">
        <shape>
            <size android:height="48dp" />
            <size android:height="@dimen/rounded_slider_height" />
            <solid android:color="?android:attr/colorControlActivated" />
            <corners android:radius="24dp"/>
            <corners android:radius="@dimen/rounded_slider_corner_radius"/>
        </shape>
    </item>
    <item
        android:id="@+id/slider_icon"
        android:gravity="center_vertical|start"
        android:start="32dp">
        android:gravity="center_vertical|right"
        android:height="@dimen/rounded_slider_icon_size"
        android:width="@dimen/rounded_slider_icon_size"
        android:right="@dimen/rounded_slider_icon_inset">
        <com.android.systemui.util.AlphaTintDrawableWrapper
            android:drawable="@drawable/ic_brightness"
            android:tint="?android:attr/colorBackground"
+4 −0
Original line number Diff line number Diff line
@@ -177,5 +177,9 @@
        <attr name="handleColor" format="color" />
        <attr name="scrimColor" format="color" />
    </declare-styleable>

    <declare-styleable name="RoundedCornerProgressDrawable">
        <attr name="android:drawable" />
    </declare-styleable>
</resources>
+8 −0
Original line number Diff line number Diff line
@@ -1333,4 +1333,12 @@
    <dimen name="people_space_widget_radius">24dp</dimen>
    <dimen name="people_space_widget_round_radius">100dp</dimen>
    <dimen name="people_space_widget_background_padding">6dp</dimen>

    <dimen name="rounded_slider_height">48dp</dimen>
    <!-- rounded_slider_height / 2 -->
    <dimen name="rounded_slider_corner_radius">24dp</dimen>
    <!-- rounded_slider_height / 2 -->
    <dimen name="rounded_slider_icon_size">24dp</dimen>
    <!-- rounded_slider_icon_size / 2 -->
    <dimen name="rounded_slider_icon_inset">12dp</dimen>
</resources>
+3 −8
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.systemui.settings.brightness;

import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.util.settings.SecureSettings;

import javax.inject.Inject;

@@ -30,25 +29,21 @@ public class BrightnessControllerSettings {

    private static final String THICK_BRIGHTNESS_SLIDER = "sysui_thick_brightness";
    private final FeatureFlags mFeatureFlags;
    private final boolean mUseThickSlider;
    private final boolean mUseMirrorOnThickSlider;

    @Inject
    public BrightnessControllerSettings(SecureSettings settings, FeatureFlags featureFlags) {
    public BrightnessControllerSettings(FeatureFlags featureFlags) {
        mFeatureFlags = featureFlags;
        mUseThickSlider = settings.getInt(THICK_BRIGHTNESS_SLIDER, 0) != 0;
        mUseMirrorOnThickSlider = settings.getInt(THICK_BRIGHTNESS_SLIDER, 0) != 2;
    }

    // Changing this setting between zero and non-zero may crash systemui down the line. Better to
    // restart systemui after changing it.
    /** */
    boolean useThickSlider() {
        return mUseThickSlider && mFeatureFlags.useNewBrightnessSlider();
        return mFeatureFlags.useNewBrightnessSlider();
    }

    /** */
    boolean useMirrorOnThickSlider() {
        return !useThickSlider() || (useThickSlider() && mUseMirrorOnThickSlider);
        return !useThickSlider();
    }
}
Loading