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

Commit 4c539619 authored by Victor Truong's avatar Victor Truong Committed by Automerger Merge Worker
Browse files

Merge "Add shadow to Dream status bar items." into tm-qpr-dev am: b00fd1d7

parents 2a39aa1d b00fd1d7
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@
            android:layout_width="@dimen/dream_overlay_status_bar_icon_size"
            android:layout_height="match_parent"
            android:layout_marginStart="@dimen/dream_overlay_status_icon_margin"
            android:layout_marginTop="@dimen/dream_overlay_status_bar_marginTop"
            android:src="@drawable/ic_alarm"
            android:tint="@android:color/white"
            android:visibility="gone"
@@ -67,6 +68,7 @@
            android:layout_width="@dimen/dream_overlay_status_bar_icon_size"
            android:layout_height="match_parent"
            android:layout_marginStart="@dimen/dream_overlay_status_icon_margin"
            android:layout_marginTop="@dimen/dream_overlay_status_bar_marginTop"
            android:src="@drawable/ic_qs_dnd_on"
            android:tint="@android:color/white"
            android:visibility="gone"
@@ -77,6 +79,7 @@
            android:layout_width="@dimen/dream_overlay_status_bar_icon_size"
            android:layout_height="match_parent"
            android:layout_marginStart="@dimen/dream_overlay_status_icon_margin"
            android:layout_marginTop="@dimen/dream_overlay_status_bar_marginTop"
            android:src="@drawable/ic_signal_wifi_off"
            android:visibility="gone"
            android:contentDescription="@string/dream_overlay_status_bar_wifi_off" />
+2 −0
Original line number Diff line number Diff line
@@ -1623,6 +1623,8 @@
    <dimen name="dream_overlay_status_bar_ambient_text_shadow_dx">0.5dp</dimen>
    <dimen name="dream_overlay_status_bar_ambient_text_shadow_dy">0.5dp</dimen>
    <dimen name="dream_overlay_status_bar_ambient_text_shadow_radius">2dp</dimen>
    <dimen name="dream_overlay_icon_inset_dimen">0dp</dimen>
    <dimen name="dream_overlay_status_bar_marginTop">22dp</dimen>

    <!-- Default device corner radius, used for assist UI -->
    <dimen name="config_rounded_mask_size">0px</dimen>
+10 −30
Original line number Diff line number Diff line
@@ -48,48 +48,28 @@ constructor(
        val drawableInsetSize: Int
        try {
            val keyShadowBlur =
                attributes.getDimensionPixelSize(R.styleable.DoubleShadowTextView_keyShadowBlur, 0)
                attributes.getDimension(R.styleable.DoubleShadowTextView_keyShadowBlur, 0f)
            val keyShadowOffsetX =
                attributes.getDimensionPixelSize(
                    R.styleable.DoubleShadowTextView_keyShadowOffsetX,
                    0
                )
                attributes.getDimension(R.styleable.DoubleShadowTextView_keyShadowOffsetX, 0f)
            val keyShadowOffsetY =
                attributes.getDimensionPixelSize(
                    R.styleable.DoubleShadowTextView_keyShadowOffsetY,
                    0
                )
                attributes.getDimension(R.styleable.DoubleShadowTextView_keyShadowOffsetY, 0f)
            val keyShadowAlpha =
                attributes.getFloat(R.styleable.DoubleShadowTextView_keyShadowAlpha, 0f)
            mKeyShadowInfo =
                ShadowInfo(
                    keyShadowBlur.toFloat(),
                    keyShadowOffsetX.toFloat(),
                    keyShadowOffsetY.toFloat(),
                    keyShadowAlpha
                )
                ShadowInfo(keyShadowBlur, keyShadowOffsetX, keyShadowOffsetY, keyShadowAlpha)
            val ambientShadowBlur =
                attributes.getDimensionPixelSize(
                    R.styleable.DoubleShadowTextView_ambientShadowBlur,
                    0
                )
                attributes.getDimension(R.styleable.DoubleShadowTextView_ambientShadowBlur, 0f)
            val ambientShadowOffsetX =
                attributes.getDimensionPixelSize(
                    R.styleable.DoubleShadowTextView_ambientShadowOffsetX,
                    0
                )
                attributes.getDimension(R.styleable.DoubleShadowTextView_ambientShadowOffsetX, 0f)
            val ambientShadowOffsetY =
                attributes.getDimensionPixelSize(
                    R.styleable.DoubleShadowTextView_ambientShadowOffsetY,
                    0
                )
                attributes.getDimension(R.styleable.DoubleShadowTextView_ambientShadowOffsetY, 0f)
            val ambientShadowAlpha =
                attributes.getFloat(R.styleable.DoubleShadowTextView_ambientShadowAlpha, 0f)
            mAmbientShadowInfo =
                ShadowInfo(
                    ambientShadowBlur.toFloat(),
                    ambientShadowOffsetX.toFloat(),
                    ambientShadowOffsetY.toFloat(),
                    ambientShadowBlur,
                    ambientShadowOffsetX,
                    ambientShadowOffsetY,
                    ambientShadowAlpha
                )
            drawableSize =
+67 −3
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.dreams;
import android.annotation.IntDef;
import android.annotation.Nullable;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
@@ -26,6 +27,9 @@ import android.view.ViewGroup;
import androidx.constraintlayout.widget.ConstraintLayout;

import com.android.systemui.R;
import com.android.systemui.shared.shadow.DoubleShadowIconDrawable;
import com.android.systemui.shared.shadow.DoubleShadowTextHelper.ShadowInfo;
import com.android.systemui.statusbar.AlphaOptimizedImageView;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -60,8 +64,15 @@ public class DreamOverlayStatusBarView extends ConstraintLayout {
    public static final int STATUS_ICON_PRIORITY_MODE_ON = 6;

    private final Map<Integer, View> mStatusIcons = new HashMap<>();
    private Context mContext;
    private ViewGroup mSystemStatusViewGroup;
    private ViewGroup mExtraSystemStatusViewGroup;
    private ShadowInfo mKeyShadowInfo;
    private ShadowInfo mAmbientShadowInfo;
    private int mDrawableSize;
    private int mDrawableInsetSize;
    private static final float KEY_SHADOW_ALPHA = 0.35f;
    private static final float AMBIENT_SHADOW_ALPHA = 0.4f;

    public DreamOverlayStatusBarView(Context context) {
        this(context, null);
@@ -73,6 +84,7 @@ public class DreamOverlayStatusBarView extends ConstraintLayout {

    public DreamOverlayStatusBarView(Context context, AttributeSet attrs, int defStyleAttr) {
        this(context, attrs, defStyleAttr, 0);
        mContext = context;
    }

    public DreamOverlayStatusBarView(
@@ -80,14 +92,36 @@ public class DreamOverlayStatusBarView extends ConstraintLayout {
        super(context, attrs, defStyleAttr, defStyleRes);
    }


    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();

        mKeyShadowInfo = createShadowInfo(
            R.dimen.dream_overlay_status_bar_key_text_shadow_radius,
            R.dimen.dream_overlay_status_bar_key_text_shadow_dx,
            R.dimen.dream_overlay_status_bar_key_text_shadow_dy,
            KEY_SHADOW_ALPHA
        );

        mAmbientShadowInfo = createShadowInfo(
            R.dimen.dream_overlay_status_bar_ambient_text_shadow_radius,
            R.dimen.dream_overlay_status_bar_ambient_text_shadow_dx,
            R.dimen.dream_overlay_status_bar_ambient_text_shadow_dy,
            AMBIENT_SHADOW_ALPHA
        );

        mDrawableSize = mContext
                        .getResources()
                        .getDimensionPixelSize(R.dimen.dream_overlay_status_bar_icon_size);
        mDrawableInsetSize = mContext
                             .getResources()
                             .getDimensionPixelSize(R.dimen.dream_overlay_icon_inset_dimen);

        mStatusIcons.put(STATUS_ICON_WIFI_UNAVAILABLE,
                fetchStatusIconForResId(R.id.dream_overlay_wifi_status));
                addDoubleShadow(fetchStatusIconForResId(R.id.dream_overlay_wifi_status)));
        mStatusIcons.put(STATUS_ICON_ALARM_SET,
                fetchStatusIconForResId(R.id.dream_overlay_alarm_set));
                addDoubleShadow(fetchStatusIconForResId(R.id.dream_overlay_alarm_set)));
        mStatusIcons.put(STATUS_ICON_CAMERA_DISABLED,
                fetchStatusIconForResId(R.id.dream_overlay_camera_off));
        mStatusIcons.put(STATUS_ICON_MIC_DISABLED,
@@ -97,7 +131,7 @@ public class DreamOverlayStatusBarView extends ConstraintLayout {
        mStatusIcons.put(STATUS_ICON_NOTIFICATIONS,
                fetchStatusIconForResId(R.id.dream_overlay_notification_indicator));
        mStatusIcons.put(STATUS_ICON_PRIORITY_MODE_ON,
                fetchStatusIconForResId(R.id.dream_overlay_priority_mode));
                addDoubleShadow(fetchStatusIconForResId(R.id.dream_overlay_priority_mode)));

        mSystemStatusViewGroup = findViewById(R.id.dream_overlay_system_status);
        mExtraSystemStatusViewGroup = findViewById(R.id.dream_overlay_extra_items);
@@ -137,4 +171,34 @@ public class DreamOverlayStatusBarView extends ConstraintLayout {
        }
        return false;
    }

    private View addDoubleShadow(View icon) {
        if (icon instanceof AlphaOptimizedImageView) {
            AlphaOptimizedImageView i = (AlphaOptimizedImageView) icon;
            Drawable drawableIcon = i.getDrawable();
            i.setImageDrawable(new DoubleShadowIconDrawable(
                    mKeyShadowInfo,
                    mAmbientShadowInfo,
                    drawableIcon,
                    mDrawableSize,
                    mDrawableInsetSize
            ));
        }
        return icon;
    }

    private ShadowInfo createShadowInfo(int blurId, int offsetXId, int offsetYId, float alpha) {
        return new ShadowInfo(
            fetchDimensionForResId(blurId),
            fetchDimensionForResId(offsetXId),
            fetchDimensionForResId(offsetYId),
            alpha
        );
    }

    private Float fetchDimensionForResId(int resId) {
        return mContext
               .getResources()
               .getDimension(resId);
    }
}