Merge "Dismiss bubbles into overflow"
This commit is contained in:
committed by
Android (Google) Code Review
commit
80def30076
@@ -443,20 +443,7 @@ public class BubbleData {
|
||||
mStateChange.orderChanged |= repackAll();
|
||||
}
|
||||
|
||||
if (reason == BubbleController.DISMISS_AGED) {
|
||||
if (DEBUG_BUBBLE_DATA) {
|
||||
Log.d(TAG, "overflowing bubble: " + bubbleToRemove);
|
||||
}
|
||||
mOverflowBubbles.add(0, bubbleToRemove);
|
||||
if (mOverflowBubbles.size() == mMaxOverflowBubbles + 1) {
|
||||
// Remove oldest bubble.
|
||||
if (DEBUG_BUBBLE_DATA) {
|
||||
Log.d(TAG, "Overflow full. Remove bubble: " + mOverflowBubbles.get(
|
||||
mOverflowBubbles.size() - 1));
|
||||
}
|
||||
mOverflowBubbles.remove(mOverflowBubbles.size() - 1);
|
||||
}
|
||||
}
|
||||
overflowBubble(reason, bubbleToRemove);
|
||||
|
||||
// Note: If mBubbles.isEmpty(), then mSelectedBubble is now null.
|
||||
if (Objects.equals(mSelectedBubble, bubbleToRemove)) {
|
||||
@@ -468,6 +455,25 @@ public class BubbleData {
|
||||
maybeSendDeleteIntent(reason, bubbleToRemove.getEntry());
|
||||
}
|
||||
|
||||
void overflowBubble(@DismissReason int reason, Bubble bubble) {
|
||||
if (reason == BubbleController.DISMISS_AGED
|
||||
|| reason == BubbleController.DISMISS_USER_GESTURE) {
|
||||
if (DEBUG_BUBBLE_DATA) {
|
||||
Log.d(TAG, "overflowing bubble: " + bubble);
|
||||
}
|
||||
mOverflowBubbles.add(0, bubble);
|
||||
|
||||
if (mOverflowBubbles.size() == mMaxOverflowBubbles + 1) {
|
||||
// Remove oldest bubble.
|
||||
if (DEBUG_BUBBLE_DATA) {
|
||||
Log.d(TAG, "Overflow full. Remove bubble: " + mOverflowBubbles.get(
|
||||
mOverflowBubbles.size() - 1));
|
||||
}
|
||||
mOverflowBubbles.remove(mOverflowBubbles.size() - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void dismissAll(@DismissReason int reason) {
|
||||
if (DEBUG_BUBBLE_DATA) {
|
||||
Log.d(TAG, "dismissAll: reason=" + reason);
|
||||
@@ -478,9 +484,7 @@ public class BubbleData {
|
||||
setExpandedInternal(false);
|
||||
setSelectedBubbleInternal(null);
|
||||
while (!mBubbles.isEmpty()) {
|
||||
Bubble bubble = mBubbles.remove(0);
|
||||
maybeSendDeleteIntent(reason, bubble.getEntry());
|
||||
mStateChange.bubbleRemoved(bubble, reason);
|
||||
doRemove(mBubbles.get(0).getKey(), reason);
|
||||
}
|
||||
dispatchPendingChanges();
|
||||
}
|
||||
|
||||
@@ -55,7 +55,6 @@ public class BubbleOverflowActivity extends Activity {
|
||||
private BubbleOverflowAdapter mAdapter;
|
||||
private RecyclerView mRecyclerView;
|
||||
private List<Bubble> mOverflowBubbles = new ArrayList<>();
|
||||
private int mMaxBubbles;
|
||||
|
||||
@Inject
|
||||
public BubbleOverflowActivity(BubbleController controller) {
|
||||
@@ -68,7 +67,6 @@ public class BubbleOverflowActivity extends Activity {
|
||||
setContentView(R.layout.bubble_overflow_activity);
|
||||
setBackgroundColor();
|
||||
|
||||
mMaxBubbles = getResources().getInteger(R.integer.bubbles_max_rendered);
|
||||
mEmptyState = findViewById(R.id.bubble_overflow_empty_state);
|
||||
mRecyclerView = findViewById(R.id.bubble_overflow_recycler);
|
||||
mRecyclerView.setLayoutManager(
|
||||
@@ -95,11 +93,7 @@ public class BubbleOverflowActivity extends Activity {
|
||||
|
||||
void onDataChanged(List<Bubble> bubbles) {
|
||||
mOverflowBubbles.clear();
|
||||
if (bubbles.size() > mMaxBubbles) {
|
||||
mOverflowBubbles.addAll(bubbles.subList(mMaxBubbles, bubbles.size()));
|
||||
} else {
|
||||
mOverflowBubbles.addAll(bubbles);
|
||||
}
|
||||
mOverflowBubbles.addAll(bubbles);
|
||||
mAdapter.notifyDataSetChanged();
|
||||
|
||||
if (mOverflowBubbles.isEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user