Merge "Add logging to KeyguardVisibilityHelper" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e4cfc06683
@@ -20,6 +20,7 @@ import android.graphics.Rect;
|
||||
import android.util.Slog;
|
||||
|
||||
import com.android.keyguard.KeyguardClockSwitch.ClockSize;
|
||||
import com.android.keyguard.logging.KeyguardLogger;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.flags.Flags;
|
||||
import com.android.systemui.plugins.ClockAnimations;
|
||||
@@ -62,14 +63,16 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
|
||||
ConfigurationController configurationController,
|
||||
DozeParameters dozeParameters,
|
||||
FeatureFlags featureFlags,
|
||||
ScreenOffAnimationController screenOffAnimationController) {
|
||||
ScreenOffAnimationController screenOffAnimationController,
|
||||
KeyguardLogger logger) {
|
||||
super(keyguardStatusView);
|
||||
mKeyguardSliceViewController = keyguardSliceViewController;
|
||||
mKeyguardClockSwitchController = keyguardClockSwitchController;
|
||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||
mConfigurationController = configurationController;
|
||||
mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, keyguardStateController,
|
||||
dozeParameters, screenOffAnimationController, /* animateYPos= */ true);
|
||||
dozeParameters, screenOffAnimationController, /* animateYPos= */ true,
|
||||
logger.getBuffer());
|
||||
mKeyguardVisibilityHelper.setOcclusionTransitionFlagEnabled(
|
||||
featureFlags.isEnabled(Flags.UNOCCLUSION_TRANSITION));
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ import android.view.View;
|
||||
import android.view.ViewPropertyAnimator;
|
||||
|
||||
import com.android.systemui.animation.Interpolators;
|
||||
import com.android.systemui.plugins.log.LogBuffer;
|
||||
import com.android.systemui.plugins.log.LogLevel;
|
||||
import com.android.systemui.statusbar.StatusBarState;
|
||||
import com.android.systemui.statusbar.notification.AnimatableProperty;
|
||||
import com.android.systemui.statusbar.notification.PropertyAnimator;
|
||||
@@ -31,11 +33,14 @@ import com.android.systemui.statusbar.phone.DozeParameters;
|
||||
import com.android.systemui.statusbar.phone.ScreenOffAnimationController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
|
||||
import com.google.errorprone.annotations.CompileTimeConstant;
|
||||
|
||||
/**
|
||||
* Helper class for updating visibility of keyguard views based on keyguard and status bar state.
|
||||
* This logic is shared by both the keyguard status view and the keyguard user switcher.
|
||||
*/
|
||||
public class KeyguardVisibilityHelper {
|
||||
private static final String TAG = "KeyguardVisibilityHelper";
|
||||
|
||||
private View mView;
|
||||
private final KeyguardStateController mKeyguardStateController;
|
||||
@@ -46,17 +51,26 @@ public class KeyguardVisibilityHelper {
|
||||
private boolean mLastOccludedState = false;
|
||||
private boolean mIsUnoccludeTransitionFlagEnabled = false;
|
||||
private final AnimationProperties mAnimationProperties = new AnimationProperties();
|
||||
private final LogBuffer mLogBuffer;
|
||||
|
||||
public KeyguardVisibilityHelper(View view,
|
||||
KeyguardStateController keyguardStateController,
|
||||
DozeParameters dozeParameters,
|
||||
ScreenOffAnimationController screenOffAnimationController,
|
||||
boolean animateYPos) {
|
||||
boolean animateYPos,
|
||||
LogBuffer logBuffer) {
|
||||
mView = view;
|
||||
mKeyguardStateController = keyguardStateController;
|
||||
mDozeParameters = dozeParameters;
|
||||
mScreenOffAnimationController = screenOffAnimationController;
|
||||
mAnimateYPos = animateYPos;
|
||||
mLogBuffer = logBuffer;
|
||||
}
|
||||
|
||||
private void log(@CompileTimeConstant String message) {
|
||||
if (mLogBuffer != null) {
|
||||
mLogBuffer.log(TAG, LogLevel.DEBUG, message);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isVisibilityAnimating() {
|
||||
@@ -94,6 +108,9 @@ public class KeyguardVisibilityHelper {
|
||||
.setStartDelay(mKeyguardStateController.getKeyguardFadingAwayDelay())
|
||||
.setDuration(mKeyguardStateController.getShortenedFadingAwayDuration())
|
||||
.start();
|
||||
log("goingToFullShade && keyguardFadingAway");
|
||||
} else {
|
||||
log("goingToFullShade && !keyguardFadingAway");
|
||||
}
|
||||
} else if (oldStatusBarState == StatusBarState.SHADE_LOCKED && statusBarState == KEYGUARD) {
|
||||
mView.setVisibility(View.VISIBLE);
|
||||
@@ -105,6 +122,7 @@ public class KeyguardVisibilityHelper {
|
||||
.setDuration(320)
|
||||
.setInterpolator(Interpolators.ALPHA_IN)
|
||||
.withEndAction(mAnimateKeyguardStatusViewVisibleEndRunnable);
|
||||
log("keyguardFadingAway transition w/ Y Aniamtion");
|
||||
} else if (statusBarState == KEYGUARD) {
|
||||
if (keyguardFadingAway) {
|
||||
mKeyguardViewVisibilityAnimating = true;
|
||||
@@ -125,9 +143,13 @@ public class KeyguardVisibilityHelper {
|
||||
true /* animate */);
|
||||
animator.setDuration(duration)
|
||||
.setStartDelay(delay);
|
||||
log("keyguardFadingAway transition w/ Y Aniamtion");
|
||||
} else {
|
||||
log("keyguardFadingAway transition w/o Y Animation");
|
||||
}
|
||||
animator.start();
|
||||
} else if (mScreenOffAnimationController.shouldAnimateInKeyguard()) {
|
||||
log("ScreenOff transition");
|
||||
mKeyguardViewVisibilityAnimating = true;
|
||||
|
||||
// Ask the screen off animation controller to animate the keyguard visibility for us
|
||||
@@ -136,6 +158,7 @@ public class KeyguardVisibilityHelper {
|
||||
mView, mAnimateKeyguardStatusViewVisibleEndRunnable);
|
||||
} else if (!mIsUnoccludeTransitionFlagEnabled && mLastOccludedState && !isOccluded) {
|
||||
// An activity was displayed over the lock screen, and has now gone away
|
||||
log("Unoccluded transition");
|
||||
mView.setVisibility(View.VISIBLE);
|
||||
mView.setAlpha(0f);
|
||||
|
||||
@@ -146,12 +169,14 @@ public class KeyguardVisibilityHelper {
|
||||
.withEndAction(mAnimateKeyguardStatusViewVisibleEndRunnable)
|
||||
.start();
|
||||
} else {
|
||||
log("Direct set Visibility to VISIBLE");
|
||||
mView.setVisibility(View.VISIBLE);
|
||||
if (!mIsUnoccludeTransitionFlagEnabled) {
|
||||
mView.setAlpha(1f);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log("Direct set Visibility to GONE");
|
||||
mView.setVisibility(View.GONE);
|
||||
mView.setAlpha(1f);
|
||||
}
|
||||
@@ -162,14 +187,18 @@ public class KeyguardVisibilityHelper {
|
||||
private final Runnable mAnimateKeyguardStatusViewInvisibleEndRunnable = () -> {
|
||||
mKeyguardViewVisibilityAnimating = false;
|
||||
mView.setVisibility(View.INVISIBLE);
|
||||
log("Callback Set Visibility to INVISIBLE");
|
||||
};
|
||||
|
||||
private final Runnable mAnimateKeyguardStatusViewGoneEndRunnable = () -> {
|
||||
mKeyguardViewVisibilityAnimating = false;
|
||||
mView.setVisibility(View.GONE);
|
||||
log("CallbackSet Visibility to GONE");
|
||||
};
|
||||
|
||||
private final Runnable mAnimateKeyguardStatusViewVisibleEndRunnable = () -> {
|
||||
mKeyguardViewVisibilityAnimating = false;
|
||||
mView.setVisibility(View.VISIBLE);
|
||||
log("Callback Set Visibility to VISIBLE");
|
||||
};
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ private const val TAG = "KeyguardLog"
|
||||
* temporary logs or logs for smaller classes when creating whole new [LogBuffer] wrapper might be
|
||||
* an overkill.
|
||||
*/
|
||||
class KeyguardLogger @Inject constructor(@KeyguardLog private val buffer: LogBuffer) :
|
||||
class KeyguardLogger @Inject constructor(@KeyguardLog val buffer: LogBuffer) :
|
||||
ConstantStringsLogger by ConstantStringsLoggerImpl(buffer, TAG) {
|
||||
|
||||
fun logException(ex: Exception, @CompileTimeConstant logMsg: String) {
|
||||
|
||||
@@ -160,7 +160,7 @@ public class KeyguardQsUserSwitchController extends ViewController<FrameLayout>
|
||||
mStatusBarStateController = statusBarStateController;
|
||||
mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView,
|
||||
keyguardStateController, dozeParameters,
|
||||
screenOffAnimationController, /* animateYPos= */ false);
|
||||
screenOffAnimationController, /* animateYPos= */ false, /* logBuffer= */ null);
|
||||
mUserSwitchDialogController = userSwitchDialogController;
|
||||
mUiEventLogger = uiEventLogger;
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ public class KeyguardUserSwitcherController extends ViewController<KeyguardUserS
|
||||
mUserSwitcherController, this);
|
||||
mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView,
|
||||
keyguardStateController, dozeParameters,
|
||||
screenOffAnimationController, /* animateYPos= */ false);
|
||||
screenOffAnimationController, /* animateYPos= */ false, /* logBuffer= */ null);
|
||||
mBackground = new KeyguardUserSwitcherScrim(context);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.graphics.Rect;
|
||||
import android.test.suitebuilder.annotation.SmallTest;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
|
||||
import com.android.keyguard.logging.KeyguardLogger;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.plugins.ClockAnimations;
|
||||
@@ -65,6 +66,8 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase {
|
||||
ScreenOffAnimationController mScreenOffAnimationController;
|
||||
@Captor
|
||||
private ArgumentCaptor<KeyguardUpdateMonitorCallback> mKeyguardUpdateMonitorCallbackCaptor;
|
||||
@Mock
|
||||
KeyguardLogger mKeyguardLogger;
|
||||
|
||||
private KeyguardStatusViewController mController;
|
||||
|
||||
@@ -81,7 +84,8 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase {
|
||||
mConfigurationController,
|
||||
mDozeParameters,
|
||||
mFeatureFlags,
|
||||
mScreenOffAnimationController);
|
||||
mScreenOffAnimationController,
|
||||
mKeyguardLogger);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user