Fix gear being covered on notification update
If a notification is updated to be non clearable but is in the middle of being dismissed then it is snapped back into place. Part of the ways to check if it was being dismissed is by checking the translation of the notification. In the case that the notification was translated to display the gear, then when it was updated it would be snapped back over the gear. This CL fixes this issue by snapping back to the gear instead of 0 in this situation. Bug: 28019486 Change-Id: Ic6c4c29b0adee15d7b358fcdbc8446e8a4cd9f82
This commit is contained in:
@@ -494,7 +494,15 @@ public class SwipeHelper implements Gefingerpoken {
|
||||
updateSwipeProgressFromOffset(view, canAnimViewBeDismissed);
|
||||
}
|
||||
|
||||
public void snapChildIfNeeded(final View view, boolean animate) {
|
||||
/**
|
||||
* Called when a view is updated to be non-dismissable, if the view was being dismissed before
|
||||
* the update this will handle snapping it back into place.
|
||||
*
|
||||
* @param view the view to snap if necessary.
|
||||
* @param animate whether to animate the snap or not.
|
||||
* @param targetLeft the target to snap to.
|
||||
*/
|
||||
public void snapChildIfNeeded(final View view, boolean animate, float targetLeft) {
|
||||
if ((mDragging && mCurrView == view) || mSnappingChild) {
|
||||
return;
|
||||
}
|
||||
@@ -508,7 +516,7 @@ public class SwipeHelper implements Gefingerpoken {
|
||||
}
|
||||
if (needToSnap) {
|
||||
if (animate) {
|
||||
snapChild(view, 0 /* targetLeft */, 0.0f /* velocity */);
|
||||
snapChild(view, targetLeft, 0.0f /* velocity */);
|
||||
} else {
|
||||
snapChildInstantly(view);
|
||||
}
|
||||
|
||||
@@ -990,9 +990,11 @@ public class NotificationStackScrollLayout extends ViewGroup
|
||||
true /* isDismissAll */);
|
||||
}
|
||||
|
||||
public void snapViewIfNeeded(View child) {
|
||||
public void snapViewIfNeeded(ExpandableNotificationRow child) {
|
||||
boolean animate = mIsExpanded || isPinnedHeadsUp(child);
|
||||
mSwipeHelper.snapChildIfNeeded(child, animate);
|
||||
// If the child is showing the gear to go to settings, snap to that
|
||||
float targetLeft = child.getSettingsRow().isVisible() ? child.getTranslation() : 0;
|
||||
mSwipeHelper.snapChildIfNeeded(child, animate, targetLeft);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user