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

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

Merge "Fixes for increased usage of light navigation bar" into oc-dr1-dev

parents f2dc5c69 ff46d4c9
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -202,8 +202,7 @@ public class ScrimView extends View implements ConfigurationController.Configura
        return mDrawable;
    }

    @VisibleForTesting
    ColorExtractor.GradientColors getColors() {
    public ColorExtractor.GradientColors getColors() {
        return mColors;
    }

+21 −2
Original line number Diff line number Diff line
@@ -16,11 +16,16 @@

package com.android.systemui.statusbar.phone;

import android.app.WallpaperColors;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Rect;
import android.view.View;

import com.android.internal.colorextraction.ColorExtractor.GradientColors;
import com.android.systemui.Dependency;
import com.android.systemui.Dumpable;
import com.android.systemui.R;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.DarkIconDispatcher;

@@ -49,6 +54,7 @@ public class LightBarController implements BatteryController.BatteryStateChangeC
    private boolean mDockedLight;
    private int mLastStatusBarMode;
    private int mLastNavigationBarMode;
    private final Color mDarkModeColor;

    /**
     * Whether the navigation bar should be light factoring in already how much alpha the scrim has
@@ -61,12 +67,14 @@ public class LightBarController implements BatteryController.BatteryStateChangeC
     */
    private boolean mHasLightNavigationBar;
    private boolean mScrimAlphaBelowThreshold;
    private boolean mInvertLightNavBarWithScrim;
    private float mScrimAlpha;

    private final Rect mLastFullscreenBounds = new Rect();
    private final Rect mLastDockedBounds = new Rect();

    public LightBarController() {
    public LightBarController(Context ctx) {
        mDarkModeColor = Color.valueOf(ctx.getColor(R.color.dark_mode_icon_color_single_tone));
        mStatusBarIconController = Dependency.get(DarkIconDispatcher.class);
        mBatteryController = Dependency.get(BatteryController.class);
        mBatteryController.addCallback(this);
@@ -74,6 +82,7 @@ public class LightBarController implements BatteryController.BatteryStateChangeC

    public void setNavigationBar(LightBarTransitionsController navigationBar) {
        mNavigationBarController = navigationBar;
        updateNavigation();
    }

    public void setFingerprintUnlockController(
@@ -119,7 +128,8 @@ public class LightBarController implements BatteryController.BatteryStateChangeC
            boolean last = mNavigationLight;
            mHasLightNavigationBar = isLight(vis, navigationBarMode,
                    View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
            mNavigationLight = mHasLightNavigationBar && mScrimAlphaBelowThreshold;
            mNavigationLight = mHasLightNavigationBar
                    && (mScrimAlphaBelowThreshold || !mInvertLightNavBarWithScrim);
            if (mNavigationLight != last) {
                updateNavigation();
            }
@@ -145,6 +155,15 @@ public class LightBarController implements BatteryController.BatteryStateChangeC
        }
    }

    public void setScrimColor(GradientColors colors) {
        boolean invertLightNavBarWithScrimBefore = mInvertLightNavBarWithScrim;
        mInvertLightNavBarWithScrim = !colors.supportsDarkText();
        if (mHasLightNavigationBar
                && invertLightNavBarWithScrimBefore != mInvertLightNavBarWithScrim) {
            reevaluate();
        }
    }

    private boolean isLight(int vis, int barMode, int flag) {
        boolean isTransparentBar = (barMode == MODE_TRANSPARENT
                || barMode == MODE_LIGHTS_OUT_TRANSPARENT);
+5 −5
Original line number Diff line number Diff line
@@ -23,8 +23,8 @@ import android.os.Handler;
import android.os.SystemClock;
import android.util.TimeUtils;

import com.android.systemui.Dumpable;
import com.android.systemui.Dependency;
import com.android.systemui.Dumpable;
import com.android.systemui.Interpolators;
import com.android.systemui.SysUiServiceProvider;
import com.android.systemui.statusbar.CommandQueue;
@@ -55,7 +55,6 @@ public class LightBarTransitionsController implements Dumpable, Callbacks {
    private ValueAnimator mTintAnimator;
    private float mDarkIntensity;
    private float mNextDarkIntensity;

    private final Runnable mTransitionDeferringDoneRunnable = new Runnable() {
        @Override
        public void run() {
@@ -130,6 +129,7 @@ public class LightBarTransitionsController implements Dumpable, Callbacks {
    public void setIconsDark(boolean dark, boolean animate) {
        if (!animate) {
            setIconTintInternal(dark ? 1.0f : 0.0f);
            mNextDarkIntensity = dark ? 1.0f : 0.0f;
        } else if (mTransitionPending) {
            deferIconTintChange(dark ? 1.0f : 0.0f);
        } else if (mTransitionDeferring) {
@@ -155,12 +155,12 @@ public class LightBarTransitionsController implements Dumpable, Callbacks {

    private void animateIconTint(float targetDarkIntensity, long delay,
            long duration) {
        if (mNextDarkIntensity == targetDarkIntensity) {
            return;
        }
        if (mTintAnimator != null) {
            mTintAnimator.cancel();
        }
        if (mDarkIntensity == targetDarkIntensity) {
            return;
        }
        mNextDarkIntensity = targetDarkIntensity;
        mTintAnimator = ValueAnimator.ofFloat(mDarkIntensity, targetDarkIntensity);
        mTintAnimator.addUpdateListener(
+1 −0
Original line number Diff line number Diff line
@@ -315,6 +315,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
                mScrimInFront.setColors(mSystemColors, animateScrimInFront);
                mScrimBehind.setColors(mSystemColors, animateScrimBehind);
            }
            mLightBarController.setScrimColor(mScrimInFront.getColors());
        }

        if (mAnimateKeyguardFadingOut || mForceHideScrims) {
+1 −1
Original line number Diff line number Diff line
@@ -1108,7 +1108,7 @@ public class StatusBar extends SystemUI implements DemoMode,
            }
        });

        mLightBarController = new LightBarController();
        mLightBarController = new LightBarController(context);
        if (mNavigationBar != null) {
            mNavigationBar.setLightBarController(mLightBarController);
        }
Loading