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