Merge "Fix frozen notifications after bouncer dismissal" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
54102c21f2
@@ -102,6 +102,16 @@ public class AmbientState {
|
|||||||
/** Whether we are swiping up. */
|
/** Whether we are swiping up. */
|
||||||
private boolean mIsSwipingUp;
|
private boolean mIsSwipingUp;
|
||||||
|
|
||||||
|
/** Whether we are flinging the shade open or closed. */
|
||||||
|
private boolean mIsFlinging;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether we need to do a fling down after swiping up on lockscreen.
|
||||||
|
* True right after we swipe up on lockscreen and have not finished the fling down that follows.
|
||||||
|
* False when we stop flinging or leave lockscreen.
|
||||||
|
*/
|
||||||
|
private boolean mNeedFlingAfterLockscreenSwipeUp = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Height of the notifications panel without top padding when expansion completes.
|
* @return Height of the notifications panel without top padding when expansion completes.
|
||||||
*/
|
*/
|
||||||
@@ -142,6 +152,10 @@ public class AmbientState {
|
|||||||
* @param isSwipingUp Whether we are swiping up.
|
* @param isSwipingUp Whether we are swiping up.
|
||||||
*/
|
*/
|
||||||
public void setSwipingUp(boolean isSwipingUp) {
|
public void setSwipingUp(boolean isSwipingUp) {
|
||||||
|
if (!isSwipingUp && mIsSwipingUp) {
|
||||||
|
// Just stopped swiping up.
|
||||||
|
mNeedFlingAfterLockscreenSwipeUp = true;
|
||||||
|
}
|
||||||
mIsSwipingUp = isSwipingUp;
|
mIsSwipingUp = isSwipingUp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,6 +166,17 @@ public class AmbientState {
|
|||||||
return mIsSwipingUp;
|
return mIsSwipingUp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param isFlinging Whether we are flinging the shade open or closed.
|
||||||
|
*/
|
||||||
|
public void setIsFlinging(boolean isFlinging) {
|
||||||
|
if (isOnKeyguard() && !isFlinging && mIsFlinging) {
|
||||||
|
// Just stopped flinging.
|
||||||
|
mNeedFlingAfterLockscreenSwipeUp = false;
|
||||||
|
}
|
||||||
|
mIsFlinging = isFlinging;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Fraction of shade expansion.
|
* @return Fraction of shade expansion.
|
||||||
*/
|
*/
|
||||||
@@ -459,6 +484,9 @@ public class AmbientState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setStatusBarState(int statusBarState) {
|
public void setStatusBarState(int statusBarState) {
|
||||||
|
if (mStatusBarState != StatusBarState.KEYGUARD) {
|
||||||
|
mNeedFlingAfterLockscreenSwipeUp = false;
|
||||||
|
}
|
||||||
mStatusBarState = statusBarState;
|
mStatusBarState = statusBarState;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -521,6 +549,13 @@ public class AmbientState {
|
|||||||
return mUnlockHintRunning;
|
return mUnlockHintRunning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Whether we need to do a fling down after swiping up on lockscreen.
|
||||||
|
*/
|
||||||
|
public boolean isFlingingAfterSwipeUpOnLockscreen() {
|
||||||
|
return mIsFlinging && mNeedFlingAfterLockscreenSwipeUp;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return whether a view is dozing and not pulsing right now
|
* @return whether a view is dozing and not pulsing right now
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -202,9 +202,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
|
|||||||
private float mQsExpansionFraction;
|
private float mQsExpansionFraction;
|
||||||
private final int mSplitShadeMinContentHeight;
|
private final int mSplitShadeMinContentHeight;
|
||||||
|
|
||||||
/** Whether we are flinging the shade open or closed. */
|
|
||||||
private boolean mIsFlinging;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The algorithm which calculates the properties for our children
|
* The algorithm which calculates the properties for our children
|
||||||
*/
|
*/
|
||||||
@@ -1263,13 +1260,16 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Whether we should skip stack height update for lockscreen swipe-up or unlock hint.
|
* @return Whether we should skip stack height updates.
|
||||||
|
* True when
|
||||||
|
* 1) Unlock hint is running
|
||||||
|
* 2) Swiping up on lockscreen or flinging down after swipe up
|
||||||
*/
|
*/
|
||||||
private boolean shouldSkipHeightUpdate() {
|
private boolean shouldSkipHeightUpdate() {
|
||||||
// After the user swipes up on lockscreen and lets go,
|
return mAmbientState.isOnKeyguard()
|
||||||
// {@link PanelViewController) flings the shade back down.
|
&& (mAmbientState.isUnlockHintRunning()
|
||||||
return mAmbientState.isOnKeyguard() && (
|
|| mAmbientState.isSwipingUp()
|
||||||
mAmbientState.isUnlockHintRunning() || mAmbientState.isSwipingUp() || mIsFlinging);
|
|| mAmbientState.isFlingingAfterSwipeUpOnLockscreen());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -5009,13 +5009,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
|
|||||||
mAmbientState.setUnlockHintRunning(running);
|
mAmbientState.setUnlockHintRunning(running);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param isFlinging Whether we are flinging the shade open or closed.
|
|
||||||
*/
|
|
||||||
public void setIsFlinging(boolean isFlinging) {
|
|
||||||
mIsFlinging = isFlinging;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
|
@ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
|
||||||
public void setHeadsUpGoingAwayAnimationsAllowed(boolean headsUpGoingAwayAnimationsAllowed) {
|
public void setHeadsUpGoingAwayAnimationsAllowed(boolean headsUpGoingAwayAnimationsAllowed) {
|
||||||
mHeadsUpGoingAwayAnimationsAllowed = headsUpGoingAwayAnimationsAllowed;
|
mHeadsUpGoingAwayAnimationsAllowed = headsUpGoingAwayAnimationsAllowed;
|
||||||
|
|||||||
@@ -1181,13 +1181,6 @@ public class NotificationStackScrollLayoutController {
|
|||||||
mView.setUnlockHintRunning(running);
|
mView.setUnlockHintRunning(running);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param isFlinging Whether we are flinging the shade open or close.
|
|
||||||
*/
|
|
||||||
public void setIsFlinging(boolean isFlinging) {
|
|
||||||
mView.setIsFlinging(isFlinging);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isFooterViewNotGone() {
|
public boolean isFooterViewNotGone() {
|
||||||
return mView.isFooterViewNotGone();
|
return mView.isFooterViewNotGone();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1758,14 +1758,14 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
mHeadsUpTouchHelper.notifyFling(!expand);
|
mHeadsUpTouchHelper.notifyFling(!expand);
|
||||||
mKeyguardStateController.notifyPanelFlingStart(!expand /* flingingToDismiss */);
|
mKeyguardStateController.notifyPanelFlingStart(!expand /* flingingToDismiss */);
|
||||||
setClosingWithAlphaFadeout(!expand && !isOnKeyguard() && getFadeoutAlpha() == 1.0f);
|
setClosingWithAlphaFadeout(!expand && !isOnKeyguard() && getFadeoutAlpha() == 1.0f);
|
||||||
mNotificationStackScrollLayoutController.setIsFlinging(true);
|
mAmbientState.setIsFlinging(true);
|
||||||
super.flingToHeight(vel, expand, target, collapseSpeedUpFactor, expandBecauseOfFalsing);
|
super.flingToHeight(vel, expand, target, collapseSpeedUpFactor, expandBecauseOfFalsing);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onFlingEnd(boolean cancelled) {
|
protected void onFlingEnd(boolean cancelled) {
|
||||||
super.onFlingEnd(cancelled);
|
super.onFlingEnd(cancelled);
|
||||||
mNotificationStackScrollLayoutController.setIsFlinging(false);
|
mAmbientState.setIsFlinging(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean onQsIntercept(MotionEvent event) {
|
private boolean onQsIntercept(MotionEvent event) {
|
||||||
|
|||||||
@@ -397,6 +397,7 @@ public abstract class PanelViewController {
|
|||||||
|
|
||||||
private void endMotionEvent(MotionEvent event, float x, float y, boolean forceCancel) {
|
private void endMotionEvent(MotionEvent event, float x, float y, boolean forceCancel) {
|
||||||
mTrackingPointer = -1;
|
mTrackingPointer = -1;
|
||||||
|
mAmbientState.setSwipingUp(false);
|
||||||
if ((mTracking && mTouchSlopExceeded) || Math.abs(x - mInitialTouchX) > mTouchSlop
|
if ((mTracking && mTouchSlopExceeded) || Math.abs(x - mInitialTouchX) > mTouchSlop
|
||||||
|| Math.abs(y - mInitialTouchY) > mTouchSlop
|
|| Math.abs(y - mInitialTouchY) > mTouchSlop
|
||||||
|| event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
|
|| event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
|
||||||
@@ -460,7 +461,6 @@ public abstract class PanelViewController {
|
|||||||
boolean expands = onEmptySpaceClick(mInitialTouchX);
|
boolean expands = onEmptySpaceClick(mInitialTouchX);
|
||||||
onTrackingStopped(expands);
|
onTrackingStopped(expands);
|
||||||
}
|
}
|
||||||
mAmbientState.setSwipingUp(false);
|
|
||||||
mVelocityTracker.clear();
|
mVelocityTracker.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user