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) {
|
public void setAnimationsEnabled(boolean animationsEnabled) {
|
||||||
mAnimationsEnabled = animationsEnabled;
|
mAnimationsEnabled = animationsEnabled;
|
||||||
updateNotificationAnimationStates();
|
updateNotificationAnimationStates();
|
||||||
|
if (!animationsEnabled) {
|
||||||
|
mSwipedOutViews.clear();
|
||||||
|
mChildrenToRemoveAnimated.clear();
|
||||||
|
clearTemporaryViewsInGroup(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateNotificationAnimationStates() {
|
private void updateNotificationAnimationStates() {
|
||||||
@@ -3090,6 +3095,21 @@ public class NotificationStackScrollLayout extends ViewGroup
|
|||||||
@Override
|
@Override
|
||||||
public void changeViewPosition(View child, int newIndex) {
|
public void changeViewPosition(View child, int newIndex) {
|
||||||
int currentIndex = indexOfChild(child);
|
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) {
|
if (child != null && child.getParent() == this && currentIndex != newIndex) {
|
||||||
mChangePositionInProgress = true;
|
mChangePositionInProgress = true;
|
||||||
((ExpandableView)child).setChangingPosition(true);
|
((ExpandableView)child).setChangingPosition(true);
|
||||||
@@ -3569,17 +3589,17 @@ public class NotificationStackScrollLayout extends ViewGroup
|
|||||||
|
|
||||||
private void clearTemporaryViews() {
|
private void clearTemporaryViews() {
|
||||||
// lets make sure nothing is in the overlay / transient anymore
|
// lets make sure nothing is in the overlay / transient anymore
|
||||||
clearTemporaryViews(this);
|
clearTemporaryViewsInGroup(this);
|
||||||
for (int i = 0; i < getChildCount(); i++) {
|
for (int i = 0; i < getChildCount(); i++) {
|
||||||
ExpandableView child = (ExpandableView) getChildAt(i);
|
ExpandableView child = (ExpandableView) getChildAt(i);
|
||||||
if (child instanceof ExpandableNotificationRow) {
|
if (child instanceof ExpandableNotificationRow) {
|
||||||
ExpandableNotificationRow row = (ExpandableNotificationRow) child;
|
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) {
|
while (viewGroup != null && viewGroup.getTransientViewCount() != 0) {
|
||||||
viewGroup.removeTransientView(viewGroup.getTransientView(0));
|
viewGroup.removeTransientView(viewGroup.getTransientView(0));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user