Fixed an issue where children dissappeared the wrong way
Because we were comparing relative to absolute positions,
we need to calculate the next view the right way.
Test: add children in group, remove the last / middle one
Fixes: 35193074
Change-Id: I415a978b84d528ded402b99b872769b98aa49ec0
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
index 6a5f79f..3bbaf99 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
@@ -211,6 +211,8 @@
private boolean mIsColorized;
private boolean mUseIncreasedCollapsedHeight;
private boolean mUseIncreasedHeadsUpHeight;
+ private float mTranslationWhenRemoved;
+ private boolean mWasChildInGroupWhenRemoved;
@Override
public boolean isGroupExpansionChanging() {
@@ -836,10 +838,22 @@
public void setRemoved() {
mRemoved = true;
-
+ mTranslationWhenRemoved = getTranslationY();
+ mWasChildInGroupWhenRemoved = isChildInGroup();
+ if (isChildInGroup()) {
+ mTranslationWhenRemoved += getNotificationParent().getTranslationY();
+ }
mPrivateLayout.setRemoved();
}
+ public boolean wasChildInGroupWhenRemoved() {
+ return mWasChildInGroupWhenRemoved;
+ }
+
+ public float getTranslationWhenRemoved() {
+ return mTranslationWhenRemoved;
+ }
+
public NotificationChildrenContainer getChildrenContainer() {
return mChildrenContainer;
}