Merge "[Notif] Disable animations as screen is powering off" into pi-dev

am: a43acdabd4

Change-Id: I246937c5788782ef979e6fa03bb018222c08481a
This commit is contained in:
Rohan Shah
2018-04-05 17:29:50 -07:00
committed by android-build-merger

View File

@@ -3023,6 +3023,11 @@ public class NotificationStackScrollLayout extends ViewGroup
public void setAnimationsEnabled(boolean animationsEnabled) {
mAnimationsEnabled = animationsEnabled;
updateNotificationAnimationStates();
if (!animationsEnabled) {
mSwipedOutViews.clear();
mChildrenToRemoveAnimated.clear();
clearTemporaryViewsInGroup(this);
}
}
private void updateNotificationAnimationStates() {
@@ -3090,6 +3095,21 @@ public class NotificationStackScrollLayout extends ViewGroup
@Override
public void changeViewPosition(View child, int newIndex) {
int currentIndex = indexOfChild(child);
if (currentIndex == -1) {
boolean isTransient = false;
if (child instanceof ExpandableNotificationRow
&& ((ExpandableNotificationRow)child).getTransientContainer() != null) {
isTransient = true;
}
Log.e(TAG, "Attempting to re-position "
+ (isTransient ? "transient" : "")
+ " view {"
+ child
+ "}");
return;
}
if (child != null && child.getParent() == this && currentIndex != newIndex) {
mChangePositionInProgress = true;
((ExpandableView)child).setChangingPosition(true);
@@ -3569,17 +3589,17 @@ public class NotificationStackScrollLayout extends ViewGroup
private void clearTemporaryViews() {
// lets make sure nothing is in the overlay / transient anymore
clearTemporaryViews(this);
clearTemporaryViewsInGroup(this);
for (int i = 0; i < getChildCount(); i++) {
ExpandableView child = (ExpandableView) getChildAt(i);
if (child instanceof ExpandableNotificationRow) {
ExpandableNotificationRow row = (ExpandableNotificationRow) child;
clearTemporaryViews(row.getChildrenContainer());
clearTemporaryViewsInGroup(row.getChildrenContainer());
}
}
}
private void clearTemporaryViews(ViewGroup viewGroup) {
private void clearTemporaryViewsInGroup(ViewGroup viewGroup) {
while (viewGroup != null && viewGroup.getTransientViewCount() != 0) {
viewGroup.removeTransientView(viewGroup.getTransientView(0));
}