Merge "[Notif] Disable animations as screen is powering off" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a43acdabd4
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user