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

Commit f6efa0df authored by John Spurlock's avatar John Spurlock Committed by Android Git Automerger
Browse files

am 9bf6f5b0: Merge "Lose navigation bar icon alpha in transparent modes." into klp-dev

* commit '9bf6f5b0':
  Lose navigation bar icon alpha in transparent modes.
parents ae59980c 9bf6f5b0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
    <drawable name="notification_number_text_color">#ffffffff</drawable>
    <drawable name="ticker_background_color">#ff1d1d1d</drawable>
    <drawable name="status_bar_background">#ff000000</drawable>
    <color name="status_bar_background_transient">#55000000</color>
    <color name="status_bar_background_semi_transparent">#55000000</color>
    <color name="status_bar_background_transparent">#00000000</color>
    <color name="navigation_bar_background_transparent_start">#7f000000</color>
    <color name="navigation_bar_background_transparent_end">#00000000</color>
+17 −10
Original line number Diff line number Diff line
@@ -30,24 +30,24 @@ public class BarTransitions {
    private static final boolean DEBUG = false;

    public static final int MODE_NORMAL = 0;
    public static final int MODE_TRANSIENT = 1;
    public static final int MODE_SEMI_TRANSPARENT = 1;
    public static final int MODE_TRANSPARENT = 2;

    private final String mTag;
    private final View mTarget;
    private final Drawable mOpaque;
    private final Drawable mTransient;
    private final Drawable mSemiTransparent;

    private Drawable mTransparent;
    protected Drawable mTransparent;
    private int mMode;

    public BarTransitions(Context context, View target, Drawable transparent) {
    public BarTransitions(Context context, View target) {
        mTag = "BarTransitions." + target.getClass().getSimpleName();
        mTarget = target;
        final Resources res = context.getResources();
        mOpaque = new ColorDrawable(res.getColor(R.drawable.status_bar_background));
        mTransient = new ColorDrawable(res.getColor(R.color.status_bar_background_transient));
        mTransparent = transparent;
        mSemiTransparent =
                new ColorDrawable(res.getColor(R.color.status_bar_background_semi_transparent));
    }

    public void setTransparent(Drawable transparent) {
@@ -58,18 +58,25 @@ public class BarTransitions {
    }

    public void transitionTo(int mode) {
        if (mMode == mode) return;
        int oldMode = mMode;
        mMode = mode;
        if (!ActivityManager.isHighEndGfx()) return;
        if (DEBUG) Log.d(mTag, "transitionTo " + modeToString(mode));
        Drawable background = mode == MODE_TRANSIENT ? mTransient
                : mode == MODE_TRANSPARENT ? mTransparent
        if (DEBUG) Log.d(mTag, String.format("transition from %s to %s",
                modeToString(oldMode), modeToString(mode)));
        onTransition(oldMode, mMode);
    }

    protected void onTransition(int oldMode, int newMode) {
        Drawable background = newMode == MODE_SEMI_TRANSPARENT ? mSemiTransparent
                : newMode == MODE_TRANSPARENT ? mTransparent
                : mOpaque;
        mTarget.setBackground(background);
    }

    public static String modeToString(int mode) {
        if (mode == MODE_NORMAL) return "MODE_NORMAL";
        if (mode == MODE_TRANSIENT) return "MODE_TRANSIENT";
        if (mode == MODE_SEMI_TRANSPARENT) return "MODE_SEMI_TRANSPARENT";
        if (mode == MODE_TRANSPARENT) return "MODE_TRANSPARENT";
        throw new IllegalArgumentException("Unknown mode " + mode);
    }
+41 −11
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import com.android.systemui.R;
import com.android.systemui.statusbar.BaseStatusBar;
import com.android.systemui.statusbar.DelegateViewHelper;
import com.android.systemui.statusbar.policy.DeadZone;
import com.android.systemui.statusbar.policy.KeyButtonView;

import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -81,9 +82,7 @@ public class NavigationBarView extends LinearLayout {

    private DelegateViewHelper mDelegateHelper;
    private DeadZone mDeadZone;
    private final BarTransitions mBarTransitions;
    private final Drawable mTransparent;
    private final Drawable mTransparentVertical;
    private final NavigationBarTransitions mBarTransitions;

    // workaround for LayoutTransitions leaving the nav buttons in a weird state (bug 5549288)
    final static boolean WORKAROUND_INVALID_LAYOUT = true;
@@ -112,6 +111,43 @@ public class NavigationBarView extends LinearLayout {
        }
    }

    private final class NavigationBarTransitions extends BarTransitions {

        private final Drawable mTransparentBottom;
        private final Drawable mTransparentRight;

        public NavigationBarTransitions(Context context) {
            super(context, NavigationBarView.this);
            final Resources res = mContext.getResources();
            final int[] gradientColors = new int[] {
                    res.getColor(R.color.navigation_bar_background_transparent_start),
                    res.getColor(R.color.navigation_bar_background_transparent_end)
            };
            mTransparentBottom = new GradientDrawable(Orientation.BOTTOM_TOP, gradientColors);
            mTransparentRight = new GradientDrawable(Orientation.RIGHT_LEFT, gradientColors);
        }

        public void setVertical(boolean isVertical) {
            mTransparent = isVertical ? mTransparentRight : mTransparentBottom;
        }

        @Override
        protected void onTransition(int oldMode, int newMode) {
            super.onTransition(oldMode, newMode);
            final float alpha = newMode == MODE_NORMAL ? KeyButtonView.DEFAULT_QUIESCENT_ALPHA : 1f;
            setKeyButtonViewQuiescentAlpha(getBackButton(), alpha);
            setKeyButtonViewQuiescentAlpha(getHomeButton(), alpha);
            setKeyButtonViewQuiescentAlpha(getRecentsButton(), alpha);
            setKeyButtonViewQuiescentAlpha(getMenuButton(), alpha);
        }

        private void setKeyButtonViewQuiescentAlpha(View button, float alpha) {
            if (button instanceof KeyButtonView) {
                ((KeyButtonView) button).setQuiescentAlpha(alpha);
            }
        }
    }

    public NavigationBarView(Context context, AttributeSet attrs) {
        super(context, attrs);

@@ -130,13 +166,7 @@ public class NavigationBarView extends LinearLayout {

        getIcons(res);

        final int[] gradientColors = new int[] {
                res.getColor(R.color.navigation_bar_background_transparent_start),
                res.getColor(R.color.navigation_bar_background_transparent_end)
        };
        mTransparent = new GradientDrawable(Orientation.BOTTOM_TOP, gradientColors);
        mTransparentVertical = new GradientDrawable(Orientation.RIGHT_LEFT, gradientColors);
        mBarTransitions = new BarTransitions(context, this, mTransparent);
        mBarTransitions = new NavigationBarTransitions(context);
    }

    public BarTransitions getBarTransitions() {
@@ -423,7 +453,7 @@ public class NavigationBarView extends LinearLayout {
        }

        setNavigationIconHints(mNavigationIconHints, true);
        mBarTransitions.setTransparent(mVertical ? mTransparentVertical : mTransparent);
        mBarTransitions.setVertical(mVertical);
    }

    @Override
+3 −3
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@
package com.android.systemui.statusbar.phone;

import static com.android.systemui.statusbar.phone.BarTransitions.MODE_NORMAL;
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSIENT;
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;

import android.animation.Animator;
@@ -1912,7 +1912,7 @@ public class PhoneStatusBar extends BaseStatusBar {

            if (sbMode != -1 || nbMode != -1) {
                // update transient bar autohide
                if (sbMode == MODE_TRANSIENT || nbMode == MODE_TRANSIENT) {
                if (sbMode == MODE_SEMI_TRANSPARENT || nbMode == MODE_SEMI_TRANSPARENT) {
                    scheduleAutohide();
                } else {
                    cancelAutohide();
@@ -1936,7 +1936,7 @@ public class PhoneStatusBar extends BaseStatusBar {
    }

    private int barMode(int vis, int transientFlag, int transparentFlag) {
        return (vis & transientFlag) != 0 ? MODE_TRANSIENT
        return (vis & transientFlag) != 0 ? MODE_SEMI_TRANSPARENT
                : (vis & transparentFlag) != 0 ? MODE_TRANSPARENT
                : MODE_NORMAL;
    }
+10 −3
Original line number Diff line number Diff line
@@ -46,7 +46,15 @@ public class PhoneStatusBarView extends PanelBar {
    PanelView mLastFullyOpenedPanel = null;
    PanelView mNotificationPanel, mSettingsPanel;
    private boolean mShouldFade;
    private final BarTransitions mBarTransitions;
    private final StatusBarTransitions mBarTransitions;

    private final class StatusBarTransitions extends BarTransitions {
        public StatusBarTransitions(Context context) {
            super(context, PhoneStatusBarView.this);
            final Resources res = context.getResources();
            mTransparent = res.getDrawable(R.color.status_bar_background_transparent);
        }
    }

    public PhoneStatusBarView(Context context, AttributeSet attrs) {
        super(context, attrs);
@@ -60,8 +68,7 @@ public class PhoneStatusBarView extends PanelBar {
            mSettingsPanelDragzoneFrac = 0f;
        }
        mFullWidthNotifications = mSettingsPanelDragzoneFrac <= 0f;
        final Drawable transparent = res.getDrawable(R.color.status_bar_background_transparent);
        mBarTransitions = new BarTransitions(context, this, transparent);
        mBarTransitions = new StatusBarTransitions(context);
    }

    public BarTransitions getBarTransitions() {
Loading