diff options
| author | 2022-10-05 11:36:56 +0000 | |
|---|---|---|
| committer | 2022-10-05 11:36:56 +0000 | |
| commit | 2737d04ccca26578afb8e6bd450960c3ee24e88b (patch) | |
| tree | 045c7094c19835671f987974a75ecd56c4efe5af | |
| parent | 38be8a6db7b52d94022612c2c11c54c93bba5e62 (diff) | |
| parent | ae6346e302d3960a196ffdacffa56ff87357bc23 (diff) | |
Merge "Adding general KeyguardLogger and more logs to keyguard status bar"
7 files changed, 100 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardLogger.kt b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardLogger.kt new file mode 100644 index 000000000000..80b9c4e13c5c --- /dev/null +++ b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardLogger.kt @@ -0,0 +1,53 @@ +package com.android.keyguard.logging + +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.LogLevel +import com.android.systemui.log.LogLevel.DEBUG +import com.android.systemui.log.LogLevel.ERROR +import com.android.systemui.log.LogLevel.VERBOSE +import com.android.systemui.log.LogLevel.WARNING +import com.android.systemui.log.MessageInitializer +import com.android.systemui.log.MessagePrinter +import com.android.systemui.log.dagger.KeyguardLog +import com.google.errorprone.annotations.CompileTimeConstant +import javax.inject.Inject + +private const val TAG = "KeyguardLog" + +class KeyguardLogger @Inject constructor(@KeyguardLog private val buffer: LogBuffer) { + fun d(@CompileTimeConstant msg: String) = log(msg, DEBUG) + + fun e(@CompileTimeConstant msg: String) = log(msg, ERROR) + + fun v(@CompileTimeConstant msg: String) = log(msg, VERBOSE) + + fun w(@CompileTimeConstant msg: String) = log(msg, WARNING) + + fun log(msg: String, level: LogLevel) = buffer.log(TAG, level, msg) + + private fun debugLog(messageInitializer: MessageInitializer, messagePrinter: MessagePrinter) { + buffer.log(TAG, DEBUG, messageInitializer, messagePrinter) + } + + // TODO: remove after b/237743330 is fixed + fun logStatusBarCalculatedAlpha(alpha: Float) { + debugLog({ double1 = alpha.toDouble() }, { "Calculated new alpha: $double1" }) + } + + // TODO: remove after b/237743330 is fixed + fun logStatusBarExplicitAlpha(alpha: Float) { + debugLog({ double1 = alpha.toDouble() }, { "new mExplicitAlpha value: $double1" }) + } + + // TODO: remove after b/237743330 is fixed + fun logStatusBarAlphaVisibility(visibility: Int, alpha: Float, state: String) { + debugLog( + { + int1 = visibility + double1 = alpha.toDouble() + str1 = state + }, + { "changing visibility to $int1 with alpha $double1 in state: $str1" } + ) + } +} diff --git a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt index 7a00cd930f2a..bf9f4c88bde3 100644 --- a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt +++ b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt @@ -45,7 +45,7 @@ class KeyguardUpdateMonitorLogger @Inject constructor( fun e(@CompileTimeConstant msg: String) = log(msg, ERROR) - fun v(@CompileTimeConstant msg: String) = log(msg, ERROR) + fun v(@CompileTimeConstant msg: String) = log(msg, VERBOSE) fun w(@CompileTimeConstant msg: String) = log(msg, WARNING) diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/KeyguardLog.kt b/packages/SystemUI/src/com/android/systemui/log/dagger/KeyguardLog.kt new file mode 100644 index 000000000000..aef3471ea8ad --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/KeyguardLog.kt @@ -0,0 +1,10 @@ +package com.android.systemui.log.dagger + +import javax.inject.Qualifier + +/** + * A [com.android.systemui.log.LogBuffer] for keyguard-related stuff. Should be used mostly for + * adding temporary logs or logging from smaller classes when creating new separate log class might + * be an overkill. + */ +@Qualifier @MustBeDocumented @Retention(AnnotationRetention.RUNTIME) annotation class KeyguardLog diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java index f2f6badde2cf..968dbe727c51 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java @@ -344,4 +344,14 @@ public class LogModule { public static LogBuffer provideUdfpsLogBuffer(LogBufferFactory factory) { return factory.create("UdfpsLog", 1000); } + + /** + * Provides a {@link LogBuffer} for general keyguard-related logs. + */ + @Provides + @SysUISingleton + @KeyguardLog + public static LogBuffer provideKeyguardLogBuffer(LogBufferFactory factory) { + return factory.create("KeyguardLog", 250); + } } diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index 7254e090e32f..f2d1b38fdb3a 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -4700,6 +4700,8 @@ public final class NotificationPanelViewController extends PanelViewController { if (!animatingUnlockedShadeToKeyguard) { // Only make the status bar visible if we're not animating the screen off, since // we only want to be showing the clock/notifications during the animation. + mShadeLog.v("Updating keyguard status bar state to " + + (keyguardShowing ? "visible" : "invisible")); mKeyguardStatusBarViewController.updateViewState( /* alpha= */ 1f, keyguardShowing ? View.VISIBLE : View.INVISIBLE); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java index 0026b71a5304..054bd28e003d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java @@ -40,6 +40,7 @@ import androidx.annotation.VisibleForTesting; import com.android.keyguard.CarrierTextController; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; +import com.android.keyguard.logging.KeyguardLogger; import com.android.systemui.R; import com.android.systemui.animation.Interpolators; import com.android.systemui.battery.BatteryMeterViewController; @@ -116,6 +117,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat private final CommandQueue mCommandQueue; private final Executor mMainExecutor; private final Object mLock = new Object(); + private final KeyguardLogger mLogger; private final ConfigurationController.ConfigurationListener mConfigurationListener = new ConfigurationController.ConfigurationListener() { @@ -279,7 +281,8 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat StatusBarUserInfoTracker statusBarUserInfoTracker, SecureSettings secureSettings, CommandQueue commandQueue, - @Main Executor mainExecutor + @Main Executor mainExecutor, + KeyguardLogger logger ) { super(view); mCarrierTextController = carrierTextController; @@ -304,6 +307,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat mSecureSettings = secureSettings; mCommandQueue = commandQueue; mMainExecutor = mainExecutor; + mLogger = logger; mFirstBypassAttempt = mKeyguardBypassController.getBypassEnabled(); mKeyguardStateController.addCallback( @@ -430,6 +434,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat /** Animate the keyguard status bar in. */ public void animateKeyguardStatusBarIn() { + mLogger.d("animating status bar in"); if (mDisableStateTracker.isDisabled()) { // If our view is disabled, don't allow us to animate in. return; @@ -445,6 +450,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat /** Animate the keyguard status bar out. */ public void animateKeyguardStatusBarOut(long startDelay, long duration) { + mLogger.d("animating status bar out"); ValueAnimator anim = ValueAnimator.ofFloat(mView.getAlpha(), 0f); anim.addUpdateListener(mAnimatorUpdateListener); anim.setStartDelay(startDelay); @@ -481,6 +487,9 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat newAlpha = Math.min(getKeyguardContentsAlpha(), alphaQsExpansion) * mKeyguardStatusBarAnimateAlpha * (1.0f - mKeyguardHeadsUpShowingAmount); + if (newAlpha != mView.getAlpha() && (newAlpha == 0 || newAlpha == 1)) { + mLogger.logStatusBarCalculatedAlpha(newAlpha); + } } boolean hideForBypass = @@ -503,6 +512,10 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat if (mDisableStateTracker.isDisabled()) { visibility = View.INVISIBLE; } + if (visibility != mView.getVisibility()) { + mLogger.logStatusBarAlphaVisibility(visibility, alpha, + StatusBarState.toString(mStatusBarState)); + } mView.setAlpha(alpha); mView.setVisibility(visibility); } @@ -596,6 +609,8 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat pw.println("KeyguardStatusBarView:"); pw.println(" mBatteryListening: " + mBatteryListening); pw.println(" mExplicitAlpha: " + mExplicitAlpha); + pw.println(" alpha: " + mView.getAlpha()); + pw.println(" visibility: " + mView.getVisibility()); mView.dump(pw, args); } @@ -605,6 +620,10 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat * @param alpha a value between 0 and 1. -1 if the value is to be reset/ignored. */ public void setAlpha(float alpha) { + if (mExplicitAlpha != alpha && (mExplicitAlpha == -1 || alpha == -1)) { + // logged if value changed to ignored or from ignored + mLogger.logStatusBarExplicitAlpha(alpha); + } mExplicitAlpha = alpha; updateViewState(); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java index cfaa4707ef76..6ec5cf82a81e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java @@ -47,6 +47,7 @@ import androidx.test.filters.SmallTest; import com.android.keyguard.CarrierTextController; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; +import com.android.keyguard.logging.KeyguardLogger; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.battery.BatteryMeterViewController; @@ -123,6 +124,7 @@ public class KeyguardStatusBarViewControllerTest extends SysuiTestCase { private StatusBarUserInfoTracker mStatusBarUserInfoTracker; @Mock private SecureSettings mSecureSettings; @Mock private CommandQueue mCommandQueue; + @Mock private KeyguardLogger mLogger; private TestNotificationPanelViewStateProvider mNotificationPanelViewStateProvider; private KeyguardStatusBarView mKeyguardStatusBarView; @@ -172,7 +174,8 @@ public class KeyguardStatusBarViewControllerTest extends SysuiTestCase { mStatusBarUserInfoTracker, mSecureSettings, mCommandQueue, - mFakeExecutor + mFakeExecutor, + mLogger ); } |