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

Commit 88a9bc11 authored by Michał Brzeziński's avatar Michał Brzeziński Committed by Automerger Merge Worker
Browse files

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14974996

Change-Id: I57686f1ad14a5eb6a4235e4fa5a08b62f625e238
parents d4311486 6e26646e
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