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

Commit 47c8bddc authored by Jeff DeCew's avatar Jeff DeCew Committed by Automerger Merge Worker
Browse files

Merge "Improve performance of logging logic in LightBarController" into udc-dev am: a9401052

parents d1724517 a9401052
Loading
Loading
Loading
Loading
+75 −47
Original line number Original line Diff line number Diff line
@@ -30,6 +30,8 @@ import android.view.InsetsFlags;
import android.view.ViewDebug;
import android.view.ViewDebug;
import android.view.WindowInsetsController.Appearance;
import android.view.WindowInsetsController.Appearance;


import androidx.annotation.NonNull;

import com.android.internal.colorextraction.ColorExtractor.GradientColors;
import com.android.internal.colorextraction.ColorExtractor.GradientColors;
import com.android.internal.view.AppearanceRegion;
import com.android.internal.view.AppearanceRegion;
import com.android.systemui.Dumpable;
import com.android.systemui.Dumpable;
@@ -46,7 +48,6 @@ import com.android.systemui.util.Compile;


import java.io.PrintWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Date;


import javax.inject.Inject;
import javax.inject.Inject;


@@ -57,7 +58,8 @@ import javax.inject.Inject;
public class LightBarController implements BatteryController.BatteryStateChangeCallback, Dumpable {
public class LightBarController implements BatteryController.BatteryStateChangeCallback, Dumpable {


    private static final String TAG = "LightBarController";
    private static final String TAG = "LightBarController";
    private static final boolean DEBUG = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.DEBUG);
    private static final boolean DEBUG_NAVBAR = Compile.IS_DEBUG;
    private static final boolean DEBUG_LOGS = Compile.IS_DEBUG && Log.isLoggable(TAG, Log.DEBUG);


    private static final float NAV_BAR_INVERSION_SCRIM_ALPHA_THRESHOLD = 0.1f;
    private static final float NAV_BAR_INVERSION_SCRIM_ALPHA_THRESHOLD = 0.1f;


@@ -113,6 +115,7 @@ public class LightBarController implements BatteryController.BatteryStateChangeC


    private String mLastSetScrimStateLog;
    private String mLastSetScrimStateLog;
    private String mLastNavigationBarAppearanceChangedLog;
    private String mLastNavigationBarAppearanceChangedLog;
    private StringBuilder mLogStringBuilder = null;


    @Inject
    @Inject
    public LightBarController(
    public LightBarController(
@@ -193,35 +196,43 @@ public class LightBarController implements BatteryController.BatteryStateChangeC
                final boolean darkForTop = darkForQs || mGlobalActionsVisible;
                final boolean darkForTop = darkForQs || mGlobalActionsVisible;
                mNavigationLight =
                mNavigationLight =
                        ((mHasLightNavigationBar && !darkForScrim) || lightForScrim) && !darkForTop;
                        ((mHasLightNavigationBar && !darkForScrim) || lightForScrim) && !darkForTop;
                mLastNavigationBarAppearanceChangedLog = "onNavigationBarAppearanceChanged()"
                if (DEBUG_NAVBAR) {
                        + " appearance=" + appearance
                    mLastNavigationBarAppearanceChangedLog = getLogStringBuilder()
                        + " nbModeChanged=" + nbModeChanged
                            .append("onNavigationBarAppearanceChanged()")
                        + " navigationBarMode=" + navigationBarMode
                            .append(" appearance=").append(appearance)
                        + " navbarColorManagedByIme=" + navbarColorManagedByIme
                            .append(" nbModeChanged=").append(nbModeChanged)
                        + " mHasLightNavigationBar=" + mHasLightNavigationBar
                            .append(" navigationBarMode=").append(navigationBarMode)
                        + " ignoreScrimForce=" + ignoreScrimForce
                            .append(" navbarColorManagedByIme=").append(navbarColorManagedByIme)
                        + " darkForScrim=" + darkForScrim
                            .append(" mHasLightNavigationBar=").append(mHasLightNavigationBar)
                        + " lightForScrim=" + lightForScrim
                            .append(" ignoreScrimForce=").append(ignoreScrimForce)
                        + " darkForQs=" + darkForQs
                            .append(" darkForScrim=").append(darkForScrim)
                        + " darkForTop=" + darkForTop
                            .append(" lightForScrim=").append(lightForScrim)
                        + " mNavigationLight=" + mNavigationLight
                            .append(" darkForQs=").append(darkForQs)
                        + " last=" + last
                            .append(" darkForTop=").append(darkForTop)
                        + " timestamp=" + new Date();
                            .append(" mNavigationLight=").append(mNavigationLight)
                if (DEBUG) Log.d(TAG, mLastNavigationBarAppearanceChangedLog);
                            .append(" last=").append(last)
                            .append(" timestamp=").append(System.currentTimeMillis())
                            .toString();
                    if (DEBUG_LOGS) Log.d(TAG, mLastNavigationBarAppearanceChangedLog);
                }
            } else {
            } else {
                mNavigationLight = mHasLightNavigationBar
                mNavigationLight = mHasLightNavigationBar
                        && (mDirectReplying && mNavbarColorManagedByIme || !mForceDarkForScrim)
                        && (mDirectReplying && mNavbarColorManagedByIme || !mForceDarkForScrim)
                        && !mQsCustomizing;
                        && !mQsCustomizing;
                mLastNavigationBarAppearanceChangedLog = "onNavigationBarAppearanceChanged()"
                if (DEBUG_NAVBAR) {
                        + " appearance=" + appearance
                    mLastNavigationBarAppearanceChangedLog = getLogStringBuilder()
                        + " nbModeChanged=" + nbModeChanged
                            .append("onNavigationBarAppearanceChanged()")
                        + " navigationBarMode=" + navigationBarMode
                            .append(" appearance=").append(appearance)
                        + " navbarColorManagedByIme=" + navbarColorManagedByIme
                            .append(" nbModeChanged=").append(nbModeChanged)
                        + " mHasLightNavigationBar=" + mHasLightNavigationBar
                            .append(" navigationBarMode=").append(navigationBarMode)
                        + " mNavigationLight=" + mNavigationLight
                            .append(" navbarColorManagedByIme=").append(navbarColorManagedByIme)
                        + " last=" + last
                            .append(" mHasLightNavigationBar=").append(mHasLightNavigationBar)
                        + " timestamp=" + new Date();
                            .append(" mNavigationLight=").append(mNavigationLight)
                if (DEBUG) Log.d(TAG, mLastNavigationBarAppearanceChangedLog);
                            .append(" last=").append(last)
                            .append(" timestamp=").append(System.currentTimeMillis())
                            .toString();
                    if (DEBUG_LOGS) Log.d(TAG, mLastNavigationBarAppearanceChangedLog);
                }
            }
            }
            if (mNavigationLight != last) {
            if (mNavigationLight != last) {
                updateNavigation();
                updateNavigation();
@@ -319,18 +330,22 @@ public class LightBarController implements BatteryController.BatteryStateChangeC
            } else {
            } else {
                if (mForceLightForScrim != forceLightForScrimLast) reevaluate();
                if (mForceLightForScrim != forceLightForScrimLast) reevaluate();
            }
            }
            mLastSetScrimStateLog = "setScrimState()"
            if (DEBUG_NAVBAR) {
                    + " scrimState=" + scrimState
                mLastSetScrimStateLog = getLogStringBuilder()
                    + " scrimBehindAlpha=" + scrimBehindAlpha
                        .append("setScrimState()")
                    + " scrimInFrontColor=" + scrimInFrontColor
                        .append(" scrimState=").append(scrimState)
                    + " forceForScrim=" + forceForScrim
                        .append(" scrimBehindAlpha=").append(scrimBehindAlpha)
                    + " scrimColorIsLight=" + scrimColorIsLight
                        .append(" scrimInFrontColor=").append(scrimInFrontColor)
                    + " mHasLightNavigationBar=" + mHasLightNavigationBar
                        .append(" forceForScrim=").append(forceForScrim)
                    + " mBouncerVisible=" + mBouncerVisible
                        .append(" scrimColorIsLight=").append(scrimColorIsLight)
                    + " mForceDarkForScrim=" + mForceDarkForScrim
                        .append(" mHasLightNavigationBar=").append(mHasLightNavigationBar)
                    + " mForceLightForScrim=" + mForceLightForScrim
                        .append(" mBouncerVisible=").append(mBouncerVisible)
                    + " timestamp=" + new Date();
                        .append(" mForceDarkForScrim=").append(mForceDarkForScrim)
            if (DEBUG) Log.d(TAG, mLastSetScrimStateLog);
                        .append(" mForceLightForScrim=").append(mForceLightForScrim)
                        .append(" timestamp=").append(System.currentTimeMillis())
                        .toString();
                if (DEBUG_LOGS) Log.d(TAG, mLastSetScrimStateLog);
            }
        } else {
        } else {
            boolean forceDarkForScrimLast = mForceDarkForScrim;
            boolean forceDarkForScrimLast = mForceDarkForScrim;
            // For BOUNCER/BOUNCER_SCRIMMED cases, we assume that alpha is always below threshold.
            // For BOUNCER/BOUNCER_SCRIMMED cases, we assume that alpha is always below threshold.
@@ -344,15 +359,28 @@ public class LightBarController implements BatteryController.BatteryStateChangeC
            if (mHasLightNavigationBar && (mForceDarkForScrim != forceDarkForScrimLast)) {
            if (mHasLightNavigationBar && (mForceDarkForScrim != forceDarkForScrimLast)) {
                reevaluate();
                reevaluate();
            }
            }
            mLastSetScrimStateLog = "setScrimState()"
            if (DEBUG_NAVBAR) {
                    + " scrimState=" + scrimState
                mLastSetScrimStateLog = getLogStringBuilder()
                    + " scrimBehindAlpha=" + scrimBehindAlpha
                        .append("setScrimState()")
                    + " scrimInFrontColor=" + scrimInFrontColor
                        .append(" scrimState=").append(scrimState)
                    + " mHasLightNavigationBar=" + mHasLightNavigationBar
                        .append(" scrimBehindAlpha=").append(scrimBehindAlpha)
                    + " mForceDarkForScrim=" + mForceDarkForScrim
                        .append(" scrimInFrontColor=").append(scrimInFrontColor)
                    + " timestamp=" + new Date();
                        .append(" mHasLightNavigationBar=").append(mHasLightNavigationBar)
            if (DEBUG) Log.d(TAG, mLastSetScrimStateLog);
                        .append(" mForceDarkForScrim=").append(mForceDarkForScrim)
                        .append(" timestamp=").append(System.currentTimeMillis())
                        .toString();
                if (DEBUG_LOGS) Log.d(TAG, mLastSetScrimStateLog);
            }
        }
    }

    @NonNull
    private StringBuilder getLogStringBuilder() {
        if (mLogStringBuilder == null) {
            mLogStringBuilder = new StringBuilder();
        }
        }
        mLogStringBuilder.setLength(0);
        return mLogStringBuilder;
    }
    }


    private static boolean isLight(int appearance, int barMode, int flag) {
    private static boolean isLight(int appearance, int barMode, int flag) {