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

This commit is contained in:
Jeff DeCew
2023-05-23 13:26:30 +00:00
committed by Android (Google) Code Review

View File

@@ -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,16 +359,29 @@ 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) {
final boolean isTransparentBar = (barMode == MODE_TRANSPARENT final boolean isTransparentBar = (barMode == MODE_TRANSPARENT