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

Commit f852ed40 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "AOD: Increase shelf icon size while dark" into oc-dev

parents 4226b27e 138f0343
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -130,6 +130,9 @@
    <!-- size at which Notification icons will be drawn in the status bar -->
    <dimen name="status_bar_icon_drawing_size">17dp</dimen>

    <!-- size at which Notification icons will be drawn on Ambient Display -->
    <dimen name="status_bar_icon_drawing_size_dark">@*android:dimen/notification_header_icon_size_ambient</dimen>

    <!-- opacity at which Notification icons will be drawn in the status bar -->
    <item type="dimen" name="status_bar_icon_drawing_alpha">90%</item>

+24 −8
Original line number Diff line number Diff line
@@ -89,6 +89,9 @@ public class StatusBarIconView extends AnimatedImageView {
    };

    private boolean mAlwaysScaleIcon;
    private int mStatusBarIconDrawingSizeDark = 1;
    private int mStatusBarIconDrawingSize = 1;
    private int mStatusBarIconSize = 1;
    private StatusBarIcon mIcon;
    @ViewDebug.ExportedProperty private String mSlot;
    private Drawable mNumberBackground;
@@ -139,7 +142,7 @@ public class StatusBarIconView extends AnimatedImageView {
        mNumberPain.setColor(context.getColor(R.drawable.notification_number_text_color));
        mNumberPain.setAntiAlias(true);
        setNotification(notification);
        maybeUpdateIconScale();
        maybeUpdateIconScaleDimens();
        setScaleType(ScaleType.CENTER);
        mDensity = context.getResources().getDisplayMetrics().densityDpi;
        if (mNotification != null) {
@@ -149,18 +152,30 @@ public class StatusBarIconView extends AnimatedImageView {
        reloadDimens();
    }

    private void maybeUpdateIconScale() {
    private void maybeUpdateIconScaleDimens() {
        // We do not resize and scale system icons (on the right), only notification icons (on the
        // left).
        if (mNotification != null || mAlwaysScaleIcon) {
            updateIconScale();
            updateIconScaleDimens();
        }
    }

    private void updateIconScale() {
    private void updateIconScaleDimens() {
        Resources res = mContext.getResources();
        final int outerBounds = res.getDimensionPixelSize(R.dimen.status_bar_icon_size);
        final int imageBounds = res.getDimensionPixelSize(R.dimen.status_bar_icon_drawing_size);
        mStatusBarIconSize = res.getDimensionPixelSize(R.dimen.status_bar_icon_size);
        mStatusBarIconDrawingSizeDark =
                res.getDimensionPixelSize(R.dimen.status_bar_icon_drawing_size_dark);
        mStatusBarIconDrawingSize =
                res.getDimensionPixelSize(R.dimen.status_bar_icon_drawing_size);
        updateIconScale();
    }

    private void updateIconScale() {
        final float imageBounds = NotificationUtils.interpolate(
                mStatusBarIconDrawingSize,
                mStatusBarIconDrawingSizeDark,
                mDarkAmount);
        final int outerBounds = mStatusBarIconSize;
        mIconScale = (float)imageBounds / (float)outerBounds;
    }

@@ -174,7 +189,7 @@ public class StatusBarIconView extends AnimatedImageView {
        int density = newConfig.densityDpi;
        if (density != mDensity) {
            mDensity = density;
            maybeUpdateIconScale();
            maybeUpdateIconScaleDimens();
            updateDrawable();
            reloadDimens();
        }
@@ -198,7 +213,7 @@ public class StatusBarIconView extends AnimatedImageView {
        mDozer = new NotificationIconDozeHelper(context);
        mBlocked = false;
        mAlwaysScaleIcon = true;
        updateIconScale();
        updateIconScaleDimens();
        mDensity = context.getResources().getDisplayMetrics().densityDpi;
    }

@@ -681,6 +696,7 @@ public class StatusBarIconView extends AnimatedImageView {
    public void setDark(boolean dark, boolean fade, long delay) {
        mDozer.setIntensityDark(f -> {
            mDarkAmount = f;
            updateIconScale();
            updateDecorColor();
            updateIconColor();
        }, dark, fade, delay);