Merge "Centering clock in split shade when no visible notifications" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6e26646ec1
@@ -60,6 +60,8 @@ import android.os.SystemClock;
|
|||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.os.VibrationEffect;
|
import android.os.VibrationEffect;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
import android.transition.ChangeBounds;
|
||||||
|
import android.transition.TransitionManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.MathUtils;
|
import android.util.MathUtils;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@@ -616,6 +618,8 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
|
|
||||||
private KeyguardMediaController mKeyguardMediaController;
|
private KeyguardMediaController mKeyguardMediaController;
|
||||||
|
|
||||||
|
private boolean mStatusViewCentered = false;
|
||||||
|
|
||||||
private View.AccessibilityDelegate mAccessibilityDelegate = new View.AccessibilityDelegate() {
|
private View.AccessibilityDelegate mAccessibilityDelegate = new View.AccessibilityDelegate() {
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
|
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
|
||||||
@@ -1023,16 +1027,16 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
constraintSet.connect(
|
constraintSet.connect(
|
||||||
R.id.notification_stack_scroller, START,
|
R.id.notification_stack_scroller, START,
|
||||||
R.id.qs_edge_guideline, START);
|
R.id.qs_edge_guideline, START);
|
||||||
constraintSet.connect(R.id.keyguard_status_view, END, R.id.qs_edge_guideline, END);
|
|
||||||
} else {
|
} else {
|
||||||
constraintSet.connect(R.id.qs_frame, END, PARENT_ID, END);
|
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.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.notification_stack_scroller).layout.mWidth = panelWidth;
|
||||||
constraintSet.getConstraint(R.id.qs_frame).layout.mWidth = qsWidth;
|
constraintSet.getConstraint(R.id.qs_frame).layout.mWidth = qsWidth;
|
||||||
constraintSet.applyTo(mNotificationContainerParent);
|
constraintSet.applyTo(mNotificationContainerParent);
|
||||||
|
|
||||||
|
updateKeyguardStatusViewAlignment(false /* animate */);
|
||||||
|
|
||||||
mKeyguardMediaController.refreshMediaPosition();
|
mKeyguardMediaController.refreshMediaPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1283,6 +1287,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
} else {
|
} else {
|
||||||
mKeyguardStatusViewController.displayClock(LARGE);
|
mKeyguardStatusViewController.displayClock(LARGE);
|
||||||
}
|
}
|
||||||
|
updateKeyguardStatusViewAlignment(true /* animate */);
|
||||||
int userIconHeight = mKeyguardQsUserSwitchController != null
|
int userIconHeight = mKeyguardQsUserSwitchController != null
|
||||||
? mKeyguardQsUserSwitchController.getUserIconHeight() : 0;
|
? mKeyguardQsUserSwitchController.getUserIconHeight() : 0;
|
||||||
float expandedFraction =
|
float expandedFraction =
|
||||||
@@ -1326,6 +1331,26 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
updateClock();
|
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
|
* @return the padding of the stackscroller when unlocked
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -576,17 +576,19 @@ public class NotificationPanelViewTest extends SysuiTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testKeyguardStatusView_isAlignedToGuidelineInSplitShadeMode() {
|
public void testKeyguardStatusViewInSplitShade_changesConstraintsDependingOnNotifications() {
|
||||||
mNotificationPanelViewController.updateResources();
|
mStatusBarStateController.setState(KEYGUARD);
|
||||||
|
|
||||||
assertThat(getConstraintSetLayout(R.id.keyguard_status_view).endToEnd)
|
|
||||||
.isEqualTo(ConstraintSet.PARENT_ID);
|
|
||||||
|
|
||||||
enableSplitShade();
|
enableSplitShade();
|
||||||
mNotificationPanelViewController.updateResources();
|
|
||||||
|
|
||||||
|
when(mNotificationStackScrollLayoutController.getVisibleNotificationCount()).thenReturn(2);
|
||||||
|
mNotificationPanelViewController.updateResources();
|
||||||
assertThat(getConstraintSetLayout(R.id.keyguard_status_view).endToEnd)
|
assertThat(getConstraintSetLayout(R.id.keyguard_status_view).endToEnd)
|
||||||
.isEqualTo(R.id.qs_edge_guideline);
|
.isEqualTo(R.id.qs_edge_guideline);
|
||||||
|
|
||||||
|
when(mNotificationStackScrollLayoutController.getVisibleNotificationCount()).thenReturn(0);
|
||||||
|
mNotificationPanelViewController.updateResources();
|
||||||
|
assertThat(getConstraintSetLayout(R.id.keyguard_status_view).endToEnd)
|
||||||
|
.isEqualTo(ConstraintSet.PARENT_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user