summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java44
2 files changed, 19 insertions, 30 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java
index f2b971f..4a7ea96 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java
@@ -23,7 +23,6 @@ import com.android.systemui.statusbar.ExpandableNotificationRow;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import java.util.ArrayList;
-import java.util.TreeSet;
/**
* A global state to track all input states for the algorithm.
@@ -130,10 +129,6 @@ public class AmbientState {
mHeadsUpManager = headsUpManager;
}
- public TreeSet<HeadsUpManager.HeadsUpEntry> getSortedHeadsUpEntries() {
- return mHeadsUpManager.getSortedEntries();
- }
-
public float getStackTranslation() {
return mStackTranslation;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
index d98bcfe..2a49a4c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
@@ -29,7 +29,6 @@ import com.android.systemui.statusbar.policy.HeadsUpManager;
import java.util.ArrayList;
import java.util.List;
-import java.util.TreeSet;
/**
* The Algorithm of the {@link com.android.systemui.statusbar.stack
@@ -155,7 +154,7 @@ public class StackScrollAlgorithm {
scrollY = Math.max(0, scrollY);
algorithmState.scrollY = (int) (scrollY + mCollapsedSize + bottomOverScroll);
- updateVisibleChildren(resultState, algorithmState, ambientState);
+ updateVisibleChildren(resultState, algorithmState);
// Phase 1:
findNumberOfItemsInTopStackAndUpdateState(resultState, algorithmState, ambientState);
@@ -337,27 +336,18 @@ public class StackScrollAlgorithm {
* Update the visible children on the state.
*/
private void updateVisibleChildren(StackScrollState resultState,
- StackScrollAlgorithmState state, AmbientState ambientState) {
+ StackScrollAlgorithmState state) {
ViewGroup hostView = resultState.getHostView();
int childCount = hostView.getChildCount();
state.visibleChildren.clear();
state.visibleChildren.ensureCapacity(childCount);
int notGoneIndex = 0;
- TreeSet<HeadsUpManager.HeadsUpEntry> headsUpEntries
- = ambientState.getSortedHeadsUpEntries();
- for (HeadsUpManager.HeadsUpEntry entry: headsUpEntries) {
- ExpandableView v = entry.entry.row;
- notGoneIndex = updateNotGoneIndex(resultState, state, notGoneIndex, v);
- }
for (int i = 0; i < childCount; i++) {
ExpandableView v = (ExpandableView) hostView.getChildAt(i);
if (v.getVisibility() != View.GONE) {
+ notGoneIndex = updateNotGoneIndex(resultState, state, notGoneIndex, v);
if (v instanceof ExpandableNotificationRow) {
ExpandableNotificationRow row = (ExpandableNotificationRow) v;
- if (row.isHeadsUp()) {
- continue;
- }
- notGoneIndex = updateNotGoneIndex(resultState, state, notGoneIndex, v);
// handle the notgoneIndex for the children as well
List<ExpandableNotificationRow> children =
@@ -372,8 +362,6 @@ public class StackScrollAlgorithm {
}
}
}
- } else {
- notGoneIndex = updateNotGoneIndex(resultState, state, notGoneIndex, v);
}
}
}
@@ -507,15 +495,25 @@ public class StackScrollAlgorithm {
childViewState.yTranslation += ambientState.getTopPadding()
+ ambientState.getStackTranslation();
}
- updateHeadsUpStates(resultState, ambientState);
+ updateHeadsUpStates(resultState, algorithmState, ambientState);
}
- private void updateHeadsUpStates(StackScrollState resultState, AmbientState ambientState) {
- TreeSet<HeadsUpManager.HeadsUpEntry> headsUpEntries = ambientState.getSortedHeadsUpEntries();
- for (HeadsUpManager.HeadsUpEntry entry: headsUpEntries) {
- ExpandableNotificationRow row = entry.entry.row;
+ private void updateHeadsUpStates(StackScrollState resultState,
+ StackScrollAlgorithmState algorithmState, AmbientState ambientState) {
+ int childCount = algorithmState.visibleChildren.size();
+ ExpandableNotificationRow topHeadsUpEntry = null;
+ for (int i = 0; i < childCount; i++) {
+ View child = algorithmState.visibleChildren.get(i);
+ if (!(child instanceof ExpandableNotificationRow)) {
+ break;
+ }
+ ExpandableNotificationRow row = (ExpandableNotificationRow) child;
+ if (!row.isHeadsUp()) {
+ break;
+ } else if (topHeadsUpEntry == null) {
+ topHeadsUpEntry = row;
+ }
StackViewState childState = resultState.getViewStateForView(row);
- ExpandableNotificationRow topHeadsUpEntry = ambientState.getTopHeadsUpEntry();
boolean isTopEntry = topHeadsUpEntry == row;
if (!row.isInShade()) {
childState.yTranslation = 0;
@@ -537,7 +535,6 @@ public class StackScrollAlgorithm {
childState.yTranslation = Math.min(childState.yTranslation,
bottomPosition);
}
-
}
}
@@ -897,9 +894,6 @@ public class StackScrollAlgorithm {
}
private View findFirstVisibleChild(ViewGroup container) {
- if (mHeadsUpManager != null && mHeadsUpManager.getTopEntry() != null) {
- return mHeadsUpManager.getTopEntry().entry.row;
- }
int childCount = container.getChildCount();
for (int i = 0; i < childCount; i++) {
View child = container.getChildAt(i);