Merge "BubbleData [5/n]: Split up StackView.setExpandedBubble" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
dec79c3e94
@@ -356,8 +356,10 @@ public class BubbleController implements BubbleExpandedView.OnBubbleBlockedListe
|
||||
ensureStackViewCreated();
|
||||
mStackView.addBubble(notif);
|
||||
}
|
||||
Bubble bubble = mBubbleData.getBubble(notif.key);
|
||||
if (shouldAutoExpand(notif)) {
|
||||
mStackView.setExpandedBubble(notif);
|
||||
mStackView.setSelectedBubble(bubble);
|
||||
mStackView.setExpanded(true);
|
||||
}
|
||||
updateVisibility();
|
||||
}
|
||||
|
||||
@@ -441,40 +441,15 @@ public class BubbleStackView extends FrameLayout {
|
||||
* Sets the bubble that should be expanded and expands if needed.
|
||||
*
|
||||
* @param key the {@link NotificationEntry#key} associated with the bubble to expand.
|
||||
* @deprecated replaced by setSelectedBubble(Bubble) + setExpanded(true)
|
||||
*/
|
||||
@Deprecated
|
||||
void setExpandedBubble(String key) {
|
||||
Bubble bubbleToExpand = mBubbleData.getBubble(key);
|
||||
if (mIsExpanded && !bubbleToExpand.equals(mExpandedBubble)) {
|
||||
// Previously expanded, notify that this bubble is no longer expanded
|
||||
notifyExpansionChanged(mExpandedBubble.entry, false /* expanded */);
|
||||
}
|
||||
Bubble prevBubble = mExpandedBubble;
|
||||
mExpandedBubble = bubbleToExpand;
|
||||
if (!mIsExpanded) {
|
||||
// If we weren't previously expanded we should animate open.
|
||||
animateExpansion(true /* expand */);
|
||||
logBubbleEvent(mExpandedBubble, StatsLog.BUBBLE_UICHANGED__ACTION__EXPANDED);
|
||||
mExpandedBubble.entry.setShowInShadeWhenBubble(false);
|
||||
notifyExpansionChanged(mExpandedBubble.entry, true /* expanded */);
|
||||
} else {
|
||||
// Make the container of the expanded view transparent before removing the expanded view
|
||||
// from it. Otherwise a punch hole created by {@link android.view.SurfaceView} in the
|
||||
// expanded view becomes visible on the screen. See b/126856255
|
||||
mExpandedViewContainer.setAlpha(0.0f);
|
||||
|
||||
mSurfaceSynchronizer.syncSurfaceAndRun(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updateExpandedBubble();
|
||||
updatePointerPosition();
|
||||
requestUpdate();
|
||||
logBubbleEvent(prevBubble, StatsLog.BUBBLE_UICHANGED__ACTION__COLLAPSED);
|
||||
logBubbleEvent(mExpandedBubble,
|
||||
StatsLog.BUBBLE_UICHANGED__ACTION__EXPANDED);
|
||||
mExpandedBubble.entry.setShowInShadeWhenBubble(false);
|
||||
notifyExpansionChanged(mExpandedBubble.entry, true /* expanded */);
|
||||
}
|
||||
});
|
||||
if (bubbleToExpand != null) {
|
||||
setSelectedBubble(bubbleToExpand);
|
||||
bubbleToExpand.entry.setShowInShadeWhenBubble(false);
|
||||
setExpanded(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -491,6 +466,57 @@ public class BubbleStackView extends FrameLayout {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes the currently selected bubble. If the stack is already expanded, the newly selected
|
||||
* bubble will be shown immediately. This does not change the expanded state or change the
|
||||
* position of any bubble.
|
||||
*/
|
||||
public void setSelectedBubble(Bubble bubbleToSelect) {
|
||||
if (mExpandedBubble != null && mExpandedBubble.equals(bubbleToSelect)) {
|
||||
return;
|
||||
}
|
||||
final Bubble previouslySelected = mExpandedBubble;
|
||||
mExpandedBubble = bubbleToSelect;
|
||||
if (mIsExpanded) {
|
||||
// Make the container of the expanded view transparent before removing the expanded view
|
||||
// from it. Otherwise a punch hole created by {@link android.view.SurfaceView} in the
|
||||
// expanded view becomes visible on the screen. See b/126856255
|
||||
mExpandedViewContainer.setAlpha(0.0f);
|
||||
mSurfaceSynchronizer.syncSurfaceAndRun(() -> {
|
||||
updateExpandedBubble();
|
||||
updatePointerPosition();
|
||||
requestUpdate();
|
||||
logBubbleEvent(previouslySelected, StatsLog.BUBBLE_UICHANGED__ACTION__COLLAPSED);
|
||||
logBubbleEvent(bubbleToSelect, StatsLog.BUBBLE_UICHANGED__ACTION__EXPANDED);
|
||||
notifyExpansionChanged(previouslySelected.entry, false /* expanded */);
|
||||
notifyExpansionChanged(bubbleToSelect.entry, true /* expanded */);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes the expanded state of the stack.
|
||||
*
|
||||
* @param expanded whether the bubble stack should appear expanded
|
||||
*/
|
||||
public void setExpanded(boolean expanded) {
|
||||
if (expanded == mIsExpanded) {
|
||||
return;
|
||||
}
|
||||
if (mIsExpanded) {
|
||||
// Collapse the stack
|
||||
animateExpansion(false /* expand */);
|
||||
logBubbleEvent(mExpandedBubble, StatsLog.BUBBLE_UICHANGED__ACTION__COLLAPSED);
|
||||
} else {
|
||||
// Expand the stack
|
||||
animateExpansion(true /* expand */);
|
||||
// TODO: move next line to BubbleData
|
||||
logBubbleEvent(mExpandedBubble, StatsLog.BUBBLE_UICHANGED__ACTION__EXPANDED);
|
||||
logBubbleEvent(mExpandedBubble, StatsLog.BUBBLE_UICHANGED__ACTION__STACK_EXPANDED);
|
||||
}
|
||||
notifyExpansionChanged(mExpandedBubble.entry, mIsExpanded);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a bubble to the top of the stack.
|
||||
*
|
||||
@@ -652,7 +678,10 @@ public class BubbleStackView extends FrameLayout {
|
||||
* Collapses the stack of bubbles.
|
||||
* <p>
|
||||
* Must be called from the main thread.
|
||||
*
|
||||
* @deprecated use {@link #setExpanded(boolean)} and {@link #setSelectedBubble(Bubble)}
|
||||
*/
|
||||
@Deprecated
|
||||
@MainThread
|
||||
public void collapseStack() {
|
||||
if (mIsExpanded) {
|
||||
@@ -663,6 +692,11 @@ public class BubbleStackView extends FrameLayout {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #setExpanded(boolean)} and {@link #setSelectedBubble(Bubble)}
|
||||
*/
|
||||
@Deprecated
|
||||
@MainThread
|
||||
void collapseStack(Runnable endRunnable) {
|
||||
collapseStack();
|
||||
// TODO - use the runnable at end of animation
|
||||
@@ -673,7 +707,10 @@ public class BubbleStackView extends FrameLayout {
|
||||
* Expands the stack of bubbles.
|
||||
* <p>
|
||||
* Must be called from the main thread.
|
||||
*
|
||||
* @deprecated use {@link #setExpanded(boolean)} and {@link #setSelectedBubble(Bubble)}
|
||||
*/
|
||||
@Deprecated
|
||||
@MainThread
|
||||
public void expandStack() {
|
||||
if (!mIsExpanded) {
|
||||
|
||||
Reference in New Issue
Block a user