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

Commit 63c8b74e authored by Fabian Kozynski's avatar Fabian Kozynski Committed by android-build-merger
Browse files

Merge "Scale all StatusBarIconView status icons to 17dp" into qt-dev

am: 0d747286

Change-Id: I3ff4621746cf80c812a20a77b6e2e1d921890488
parents cd60bc92 0d747286
Loading
Loading
Loading
Loading
+26 −3
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import android.os.UserHandle;
import android.service.notification.StatusBarNotification;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.FloatProperty;
import android.util.Log;
import android.util.Property;
@@ -73,7 +74,10 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
     * want to scale them (in a way that doesn't require an asset dump) down 2dp. So
     * 17dp * (15 / 17) = 15dp, the new height.
     */
    private static final float SYSTEM_ICON_SCALE = 15.f / 17.f;
    private static final float SYSTEM_ICON_DESIRED_HEIGHT = 15f;
    private static final float SYSTEM_ICON_INTRINSIC_HEIGHT = 17f;
    private static final float SYSTEM_ICON_SCALE =
            SYSTEM_ICON_DESIRED_HEIGHT / SYSTEM_ICON_INTRINSIC_HEIGHT;
    private final int ANIMATION_DURATION_FAST = 100;

    public static final int STATE_ICON = 0;
@@ -202,9 +206,26 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
        updatePivot();
    }

    // Makes sure that all icons are scaled to the same height (15dp). If we cannot get a height
    // for the icon, it uses the default SCALE (15f / 17f) which is the old behavior
    private void updateIconScaleForSystemIcons() {
        float iconHeight = getIconHeightInDps();
        if (iconHeight != 0) {
            mIconScale = SYSTEM_ICON_DESIRED_HEIGHT / iconHeight;
        } else {
            mIconScale = SYSTEM_ICON_SCALE;
        }
    }

    private float getIconHeightInDps() {
        Drawable d = getDrawable();
        if (d != null) {
            return ((float) getDrawable().getIntrinsicHeight() * DisplayMetrics.DENSITY_DEFAULT)
                    / mDensity;
        } else {
            return SYSTEM_ICON_INTRINSIC_HEIGHT;
        }
    }

    public float getIconScaleFullyDark() {
        return (float) mStatusBarIconDrawingSizeDark / mStatusBarIconDrawingSize;
@@ -221,8 +242,8 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
        if (density != mDensity) {
            mDensity = density;
            reloadDimens();
            maybeUpdateIconScaleDimens();
            updateDrawable();
            maybeUpdateIconScaleDimens();
        }
        boolean nightMode = (newConfig.uiMode & Configuration.UI_MODE_NIGHT_MASK)
                == Configuration.UI_MODE_NIGHT_YES;
@@ -305,6 +326,8 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
            if (!updateDrawable(false /* no clear */)) return false;
            // we have to clear the grayscale tag since it may have changed
            setTag(R.id.icon_is_grayscale, null);
            // Maybe set scale based on icon height
            maybeUpdateIconScaleDimens();
        }
        if (!levelEquals) {
            setImageLevel(icon.iconLevel);
+3 −3
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ public class PhoneStatusBarPolicy
    private static final String TAG = "PhoneStatusBarPolicy";
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

    public static final int LOCATION_STATUS_ICON_ID = R.drawable.stat_sys_location;
    public static final int LOCATION_STATUS_ICON_ID = PrivacyType.TYPE_LOCATION.getIconId();

    private final String mSlotCast;
    private final String mSlotHotspot;
@@ -230,10 +230,10 @@ public class PhoneStatusBarPolicy
        mIconController.setIconVisibility(mSlotDataSaver, false);

        // privacy items
        mIconController.setIcon(mSlotMicrophone, R.drawable.stat_sys_mic_none,
        mIconController.setIcon(mSlotMicrophone, PrivacyType.TYPE_MICROPHONE.getIconId(),
                PrivacyType.TYPE_MICROPHONE.getName(mContext));
        mIconController.setIconVisibility(mSlotMicrophone, false);
        mIconController.setIcon(mSlotCamera, R.drawable.stat_sys_camera,
        mIconController.setIcon(mSlotCamera, PrivacyType.TYPE_CAMERA.getIconId(),
                PrivacyType.TYPE_CAMERA.getName(mContext));
        mIconController.setIconVisibility(mSlotCamera, false);
        mIconController.setIcon(mSlotLocation, LOCATION_STATUS_ICON_ID,