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

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

Merge changes I73bb98a0,Ie545c3b6

* changes:
  Extend DrawableWrapper to set tint and alpha
  Fix colors of thick brightness slider
parents aaf8faf7 e08c9b76
Loading
Loading
Loading
Loading
+21 −9
Original line number Diff line number Diff line
@@ -16,6 +16,27 @@
  -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
            android:paddingMode="stack">
    <item android:id="@android:id/background"
        android:gravity="center_vertical|fill_horizontal">
        <layer-list >
            <item>
                <shape
                    android:tint="?android:attr/colorControlActivated"
                    android:alpha="?android:attr/disabledAlpha">
                    <size android:height="48dp" />
                    <solid android:color="@color/white_disabled" />
                    <corners android:radius="24dp" />
                </shape>
            </item>
            <item
                android:gravity="center_vertical|start"
                android:start="32dp">
                <com.android.systemui.util.AlphaTintDrawableWrapper
                    android:drawable="@drawable/ic_brightness"
                    android:tint="?android:attr/colorControlActivated" />
            </item>
        </layer-list>
    </item>
    <item android:id="@android:id/progress"
          android:gravity="center_vertical|fill_horizontal">
        <clip
@@ -24,13 +45,4 @@
            android:gravity="left"
        />
    </item>
    <item android:id="@android:id/background"
          android:gravity="center_vertical|fill_horizontal">
        <shape android:shape="rectangle"
               android:tint="?android:attr/colorControlNormal">
            <size android:height="48dp" />
            <solid android:color="@color/white_disabled" />
            <corners android:radius="24dp" />
        </shape>
    </item>
</layer-list>
 No newline at end of file
+18 −7
Original line number Diff line number Diff line
@@ -15,10 +15,21 @@
  ~ limitations under the License.
  -->

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle"
       android:tint="?android:attr/colorControlActivated">
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/slider_foreground">
        <shape>
            <size android:height="48dp" />
    <solid android:color="@android:color/white" />
            <solid android:color="?android:attr/colorControlActivated" />
            <corners android:radius="24dp"/>
        </shape>
    </item>
    <item
        android:id="@+id/slider_icon"
        android:gravity="center_vertical|start"
        android:start="32dp">
        <com.android.systemui.util.AlphaTintDrawableWrapper
            android:drawable="@drawable/ic_brightness"
            android:tint="?android:attr/colorBackground"
            android:alpha="0.8"/>
    </item>
</layer-list>
 No newline at end of file
+4 −15
Original line number Diff line number Diff line
@@ -38,16 +38,5 @@
            android:progressDrawable="@drawable/brightness_progress_drawable_thick"
            android:splitTrack="false"
        />

        <ImageView
            android:id="@+id/image"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:layout_marginLeft="48dp"
            android:layout_gravity="center_vertical"
            android:src="@drawable/ic_brightness"
            android:tint="?android:attr/textColorTertiary"
            android:visibility="visible"
        />
    </com.android.systemui.settings.brightness.BrightnessSliderView>
</FrameLayout>
+6 −0
Original line number Diff line number Diff line
@@ -161,5 +161,11 @@
        <attr name="sensorPressureCoefficient" format="float"/>
        <attr name="sensorTouchAreaCoefficient" format="float"/>
    </declare-styleable>

    <declare-styleable name="AlphaTintDrawableWrapper">
        <attr name="android:tint" />
        <attr name="android:drawable" />
        <attr name="android:alpha" />
    </declare-styleable>
</resources>
+36 −1
Original line number Diff line number Diff line
@@ -17,6 +17,9 @@
package com.android.systemui.settings.brightness;

import android.content.Context;
import android.graphics.drawable.ClipDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
@@ -27,6 +30,7 @@ import android.widget.SeekBar;
import androidx.annotation.Nullable;

import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.Utils;
import com.android.systemui.R;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import com.android.systemui.util.ViewController;
@@ -269,14 +273,45 @@ public class BrightnessSlider

        private BrightnessSlider fromTree(ViewGroup root, boolean useMirror) {
            BrightnessSliderView v = root.requireViewById(R.id.brightness_slider);

            // TODO(175026098) Workaround. Remove when b/175026098 is fixed
            applyTheme(v);

            return new BrightnessSlider(root, v, useMirror);
        }

        /** Get the layout to inflate based on what slider to use */
        public int getLayout() {
        private int getLayout() {
            return mSettings.useThickSlider()
                    ? R.layout.quick_settings_brightness_dialog_thick
                    : R.layout.quick_settings_brightness_dialog;
        }

        private LayerDrawable findProgressClippableDrawable(BrightnessSliderView v) {
            SeekBar b = v.requireViewById(R.id.slider);
            if (b.getProgressDrawable() instanceof LayerDrawable) {
                Drawable progress = ((LayerDrawable) b.getProgressDrawable())
                        .findDrawableByLayerId(com.android.internal.R.id.progress);
                if (progress instanceof ClipDrawable) {
                    Drawable inner = ((ClipDrawable) progress).getDrawable();
                    if (inner instanceof LayerDrawable) {
                        return (LayerDrawable) inner;
                    }
                }
            }
            return null;
        }

        private void applyTheme(BrightnessSliderView v) {
            LayerDrawable layer = findProgressClippableDrawable(v);
            if (layer != null) {
                layer.findDrawableByLayerId(R.id.slider_foreground).setTintList(
                        Utils.getColorAttr(v.getContext(),
                                com.android.internal.R.attr.colorControlActivated));
                layer.findDrawableByLayerId(R.id.slider_icon).setTintList(
                        Utils.getColorAttr(v.getContext(),
                                com.android.internal.R.attr.colorBackground));
            }
        }
    }
}
Loading