Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e26646e authored by Michał Brzeziński's avatar Michał Brzeziński Committed by Android (Google) Code Review
Browse files

Merge "Centering clock in split shade when no visible notifications" into sc-v2-dev

parents ab58f58b 928c11a1
Loading
Loading
Loading
Loading
+27 −2
Original line number Diff line number Diff line
@@ -60,6 +60,8 @@ import android.os.SystemClock;
import android.os.UserManager;
import android.os.VibrationEffect;
import android.provider.Settings;
import android.transition.ChangeBounds;
import android.transition.TransitionManager;
import android.util.Log;
import android.util.MathUtils;
import android.view.LayoutInflater;
@@ -616,6 +618,8 @@ public class NotificationPanelViewController extends PanelViewController {

    private KeyguardMediaController mKeyguardMediaController;

    private boolean mStatusViewCentered = false;

    private View.AccessibilityDelegate mAccessibilityDelegate = new View.AccessibilityDelegate() {
        @Override
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
@@ -1023,16 +1027,16 @@ public class NotificationPanelViewController extends PanelViewController {
            constraintSet.connect(
                    R.id.notification_stack_scroller, START,
                    R.id.qs_edge_guideline, START);
            constraintSet.connect(R.id.keyguard_status_view, END, R.id.qs_edge_guideline, END);
        } else {
            constraintSet.connect(R.id.qs_frame, END, PARENT_ID, END);
            constraintSet.connect(R.id.notification_stack_scroller, START, PARENT_ID, START);
            constraintSet.connect(R.id.keyguard_status_view, END, PARENT_ID, END);
        }
        constraintSet.getConstraint(R.id.notification_stack_scroller).layout.mWidth = panelWidth;
        constraintSet.getConstraint(R.id.qs_frame).layout.mWidth = qsWidth;
        constraintSet.applyTo(mNotificationContainerParent);

        updateKeyguardStatusViewAlignment(false /* animate */);

        mKeyguardMediaController.refreshMediaPosition();
    }

@@ -1283,6 +1287,7 @@ public class NotificationPanelViewController extends PanelViewController {
        } else {
            mKeyguardStatusViewController.displayClock(LARGE);
        }
        updateKeyguardStatusViewAlignment(true /* animate */);
        int userIconHeight = mKeyguardQsUserSwitchController != null
                ? mKeyguardQsUserSwitchController.getUserIconHeight() : 0;
        float expandedFraction =
@@ -1326,6 +1331,26 @@ public class NotificationPanelViewController extends PanelViewController {
        updateClock();
    }

    private void updateKeyguardStatusViewAlignment(boolean animate) {
        boolean hasVisibleNotifications = mNotificationStackScrollLayoutController
                .getVisibleNotificationCount() != 0 || mMediaDataManager.hasActiveMedia();
        boolean shouldBeCentered = !mShouldUseSplitNotificationShade || !hasVisibleNotifications;
        if (mStatusViewCentered != shouldBeCentered) {
            mStatusViewCentered = shouldBeCentered;
            ConstraintSet constraintSet = new ConstraintSet();
            constraintSet.clone(mNotificationContainerParent);
            int statusConstraint = shouldBeCentered ? PARENT_ID : R.id.qs_edge_guideline;
            constraintSet.connect(R.id.keyguard_status_view, END, statusConstraint, END);
            if (animate) {
                ChangeBounds transition = new ChangeBounds();
                transition.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
                transition.setDuration(StackStateAnimator.ANIMATION_DURATION_STANDARD);
                TransitionManager.beginDelayedTransition(mNotificationContainerParent, transition);
            }
            constraintSet.applyTo(mNotificationContainerParent);
        }
    }

    /**
     * @return the padding of the stackscroller when unlocked
     */
+8 −6
Original line number Diff line number Diff line
@@ -576,17 +576,19 @@ public class NotificationPanelViewTest extends SysuiTestCase {
    }

    @Test
    public void testKeyguardStatusView_isAlignedToGuidelineInSplitShadeMode() {
        mNotificationPanelViewController.updateResources();
    public void testKeyguardStatusViewInSplitShade_changesConstraintsDependingOnNotifications() {
        mStatusBarStateController.setState(KEYGUARD);
        enableSplitShade();

        when(mNotificationStackScrollLayoutController.getVisibleNotificationCount()).thenReturn(2);
        mNotificationPanelViewController.updateResources();
        assertThat(getConstraintSetLayout(R.id.keyguard_status_view).endToEnd)
                .isEqualTo(ConstraintSet.PARENT_ID);
                .isEqualTo(R.id.qs_edge_guideline);

        enableSplitShade();
        when(mNotificationStackScrollLayoutController.getVisibleNotificationCount()).thenReturn(0);
        mNotificationPanelViewController.updateResources();

        assertThat(getConstraintSetLayout(R.id.keyguard_status_view).endToEnd)
                .isEqualTo(R.id.qs_edge_guideline);
                .isEqualTo(ConstraintSet.PARENT_ID);
    }

    @Test