Refactored the stack animation logic
Animations are now also applicable to normal views
and are more modularly applied to specific stack
view states.
Test: Add notifications, observe animations
Bug: 32437839
Change-Id: I75ebf98657749b50d43c88c4c39c5d4c302b1280
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
index bba411c..f7fb079 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
@@ -51,11 +51,11 @@
import com.android.systemui.statusbar.notification.HybridNotificationView;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.policy.HeadsUpManager;
+import com.android.systemui.statusbar.stack.AnimationProperties;
+import com.android.systemui.statusbar.stack.ExpandableViewState;
import com.android.systemui.statusbar.stack.NotificationChildrenContainer;
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.stack.StackScrollState;
-import com.android.systemui.statusbar.stack.StackStateAnimator;
-import com.android.systemui.statusbar.stack.ExpandableViewState;
import java.util.ArrayList;
import java.util.List;
@@ -485,11 +485,9 @@
}
}
- public void startChildAnimation(StackScrollState finalState,
- StackStateAnimator stateAnimator, long delay, long duration) {
+ public void startChildAnimation(StackScrollState finalState, AnimationProperties properties) {
if (mIsSummaryWithChildren) {
- mChildrenContainer.startAnimationToState(finalState, stateAnimator, delay,
- duration);
+ mChildrenContainer.startAnimationToState(finalState, properties);
}
}
@@ -1762,7 +1760,7 @@
return new NotificationViewState(stackScrollState);
}
- public static class NotificationViewState extends ExpandableViewState {
+ public class NotificationViewState extends ExpandableViewState {
private final StackScrollState mOverallState;
@@ -1782,5 +1780,22 @@
row.applyChildrenState(mOverallState);
}
}
+
+ @Override
+ protected void onYTranslationAnimationFinished() {
+ super.onYTranslationAnimationFinished();
+ if (mHeadsupDisappearRunning) {
+ setHeadsupDisappearRunning(false);
+ }
+ }
+
+ @Override
+ public void animateTo(View child, AnimationProperties properties) {
+ super.animateTo(child, properties);
+ if (child instanceof ExpandableNotificationRow) {
+ ExpandableNotificationRow row = (ExpandableNotificationRow) child;
+ row.startChildAnimation(mOverallState, properties);
+ }
+ }
}
}