Revert^2 "ADD CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION"
6f82cb827c
Change-Id: I9c32bd030e79f67cc888fe3c19805dfce680a91a
Merged-In: I8a574715e3a341b7a3a0edd368cdb0015b8b4b50
This commit is contained in:
@@ -33,6 +33,7 @@ import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_IN
|
||||
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_OPEN_ALL_APPS;
|
||||
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_QUICK_SWITCH;
|
||||
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_UNLOCK_ENTRANCE_ANIMATION;
|
||||
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LOCKSCREEN_CLOCK_MOVE_ANIMATION;
|
||||
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LOCKSCREEN_LAUNCH_CAMERA;
|
||||
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LOCKSCREEN_OCCLUSION;
|
||||
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LOCKSCREEN_PASSWORD_APPEAR;
|
||||
@@ -231,6 +232,7 @@ public class InteractionJankMonitor {
|
||||
public static final int CUJ_LAUNCHER_APP_SWIPE_TO_RECENTS = 66;
|
||||
public static final int CUJ_LAUNCHER_CLOSE_ALL_APPS_SWIPE = 67;
|
||||
public static final int CUJ_LAUNCHER_CLOSE_ALL_APPS_TO_HOME = 68;
|
||||
public static final int CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION = 70;
|
||||
|
||||
private static final int NO_STATSD_LOGGING = -1;
|
||||
|
||||
@@ -308,6 +310,8 @@ public class InteractionJankMonitor {
|
||||
UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_APP_SWIPE_TO_RECENTS,
|
||||
UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_CLOSE_ALL_APPS_SWIPE,
|
||||
UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_CLOSE_ALL_APPS_TO_HOME,
|
||||
NO_STATSD_LOGGING,
|
||||
UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LOCKSCREEN_CLOCK_MOVE_ANIMATION,
|
||||
};
|
||||
|
||||
private static volatile InteractionJankMonitor sInstance;
|
||||
@@ -396,7 +400,8 @@ public class InteractionJankMonitor {
|
||||
CUJ_RECENTS_SCROLLING,
|
||||
CUJ_LAUNCHER_APP_SWIPE_TO_RECENTS,
|
||||
CUJ_LAUNCHER_CLOSE_ALL_APPS_SWIPE,
|
||||
CUJ_LAUNCHER_CLOSE_ALL_APPS_TO_HOME
|
||||
CUJ_LAUNCHER_CLOSE_ALL_APPS_TO_HOME,
|
||||
CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface CujType {
|
||||
@@ -917,6 +922,8 @@ public class InteractionJankMonitor {
|
||||
return "LAUNCHER_CLOSE_ALL_APPS_SWIPE";
|
||||
case CUJ_LAUNCHER_CLOSE_ALL_APPS_TO_HOME:
|
||||
return "LAUNCHER_CLOSE_ALL_APPS_TO_HOME";
|
||||
case CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION:
|
||||
return "LOCKSCREEN_CLOCK_MOVE_ANIMATION";
|
||||
}
|
||||
return "UNKNOWN";
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import static android.view.View.VISIBLE;
|
||||
import static androidx.constraintlayout.widget.ConstraintSet.END;
|
||||
import static androidx.constraintlayout.widget.ConstraintSet.PARENT_ID;
|
||||
|
||||
import static com.android.internal.jank.InteractionJankMonitor.CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION;
|
||||
import static com.android.keyguard.KeyguardClockSwitch.LARGE;
|
||||
import static com.android.keyguard.KeyguardClockSwitch.SMALL;
|
||||
import static com.android.systemui.animation.Interpolators.EMPHASIZED_ACCELERATE;
|
||||
@@ -71,6 +72,7 @@ import android.os.VibrationEffect;
|
||||
import android.provider.Settings;
|
||||
import android.transition.ChangeBounds;
|
||||
import android.transition.Transition;
|
||||
import android.transition.TransitionListenerAdapter;
|
||||
import android.transition.TransitionManager;
|
||||
import android.transition.TransitionSet;
|
||||
import android.transition.TransitionValues;
|
||||
@@ -98,6 +100,7 @@ import android.widget.FrameLayout;
|
||||
import androidx.constraintlayout.widget.ConstraintSet;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.jank.InteractionJankMonitor;
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.policy.SystemBarUtils;
|
||||
@@ -353,6 +356,7 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
private final NotificationGutsManager mGutsManager;
|
||||
private final AlternateBouncerInteractor mAlternateBouncerInteractor;
|
||||
private final QuickSettingsController mQsController;
|
||||
private final InteractionJankMonitor mInteractionJankMonitor;
|
||||
|
||||
private long mDownTime;
|
||||
private boolean mTouchSlopExceededBeforeDown;
|
||||
@@ -642,6 +646,19 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
step.getTransitionState() == TransitionState.RUNNING;
|
||||
};
|
||||
|
||||
private final TransitionListenerAdapter mKeyguardStatusAlignmentTransitionListener =
|
||||
new TransitionListenerAdapter() {
|
||||
@Override
|
||||
public void onTransitionCancel(Transition transition) {
|
||||
mInteractionJankMonitor.cancel(CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransitionEnd(Transition transition) {
|
||||
mInteractionJankMonitor.end(CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION);
|
||||
}
|
||||
};
|
||||
|
||||
@Inject
|
||||
public NotificationPanelViewController(NotificationPanelView view,
|
||||
@Main Handler handler,
|
||||
@@ -706,6 +723,7 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
NotificationStackSizeCalculator notificationStackSizeCalculator,
|
||||
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
|
||||
ShadeTransitionController shadeTransitionController,
|
||||
InteractionJankMonitor interactionJankMonitor,
|
||||
SystemClock systemClock,
|
||||
KeyguardBottomAreaViewModel keyguardBottomAreaViewModel,
|
||||
KeyguardBottomAreaInteractor keyguardBottomAreaInteractor,
|
||||
@@ -720,6 +738,7 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
DumpManager dumpManager,
|
||||
KeyguardLongPressViewModel keyguardLongPressViewModel,
|
||||
KeyguardInteractor keyguardInteractor) {
|
||||
mInteractionJankMonitor = interactionJankMonitor;
|
||||
keyguardStateController.addCallback(new KeyguardStateController.Callback() {
|
||||
@Override
|
||||
public void onKeyguardFadingAwayChanged() {
|
||||
@@ -1540,6 +1559,7 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
int statusConstraint = shouldBeCentered ? PARENT_ID : R.id.qs_edge_guideline;
|
||||
constraintSet.connect(R.id.keyguard_status_view, END, statusConstraint, END);
|
||||
if (animate) {
|
||||
mInteractionJankMonitor.begin(mView, CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION);
|
||||
ChangeBounds transition = new ChangeBounds();
|
||||
if (mSplitShadeEnabled) {
|
||||
// Excluding media from the transition on split-shade, as it doesn't transition
|
||||
@@ -1563,6 +1583,7 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
// The clock container can sometimes be null. If it is, just fall back to the
|
||||
// old animation rather than setting up the custom animations.
|
||||
if (clockContainerView == null || clockContainerView.getChildCount() == 0) {
|
||||
transition.addListener(mKeyguardStatusAlignmentTransitionListener);
|
||||
TransitionManager.beginDelayedTransition(
|
||||
mNotificationContainerParent, transition);
|
||||
} else {
|
||||
@@ -1581,10 +1602,11 @@ public final class NotificationPanelViewController implements Dumpable {
|
||||
adapter.setDuration(KEYGUARD_STATUS_VIEW_CUSTOM_CLOCK_MOVE_DURATION);
|
||||
adapter.addTarget(clockView);
|
||||
set.addTransition(adapter);
|
||||
|
||||
set.addListener(mKeyguardStatusAlignmentTransitionListener);
|
||||
TransitionManager.beginDelayedTransition(mNotificationContainerParent, set);
|
||||
}
|
||||
} else {
|
||||
transition.addListener(mKeyguardStatusAlignmentTransitionListener);
|
||||
TransitionManager.beginDelayedTransition(
|
||||
mNotificationContainerParent, transition);
|
||||
}
|
||||
|
||||
@@ -551,6 +551,7 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
|
||||
mNotificationStackSizeCalculator,
|
||||
mUnlockedScreenOffAnimationController,
|
||||
mShadeTransitionController,
|
||||
mInteractionJankMonitor,
|
||||
systemClock,
|
||||
mKeyguardBottomAreaViewModel,
|
||||
mKeyguardBottomAreaInteractor,
|
||||
|
||||
Reference in New Issue
Block a user