Loading packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java +9 −7 Original line number Diff line number Diff line Loading @@ -175,7 +175,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi private INotificationManager mINotificationManager; // Callback that updates BubbleOverflowActivity on data change. @Nullable private BubbleData.Listener mOverflowListener = null; @Nullable private Runnable mOverflowCallback = null; private final NotificationInterruptStateProvider mNotificationInterruptStateProvider; private IStatusBarService mBarService; Loading Loading @@ -571,8 +571,8 @@ public class BubbleController implements ConfigurationController.ConfigurationLi mInflateSynchronously = inflateSynchronously; } void setOverflowListener(BubbleData.Listener listener) { mOverflowListener = listener; void setOverflowCallback(Runnable updateOverflow) { mOverflowCallback = updateOverflow; } /** Loading Loading @@ -986,8 +986,8 @@ public class BubbleController implements ConfigurationController.ConfigurationLi @Override public void applyUpdate(BubbleData.Update update) { // Update bubbles in overflow. if (mOverflowListener != null) { mOverflowListener.applyUpdate(update); if (mOverflowCallback != null) { mOverflowCallback.run(); } // Collapsing? Do this first before remaining steps. Loading Loading @@ -1015,8 +1015,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi if (!mBubbleData.hasOverflowBubbleWithKey(bubble.getKey()) && (!bubble.showInShade() || reason == DISMISS_NOTIF_CANCEL || reason == DISMISS_GROUP_CANCELLED || reason == DISMISS_OVERFLOW_MAX_REACHED)) { || reason == DISMISS_GROUP_CANCELLED)) { // The bubble is now gone & the notification is hidden from the shade, so // time to actually remove it for (NotifCallback cb : mCallbacks) { Loading Loading @@ -1087,6 +1086,9 @@ public class BubbleController implements ConfigurationController.ConfigurationLi Log.d(TAG, BubbleDebugConfig.formatBubblesString(mStackView.getBubblesOnScreen(), mStackView.getExpandedBubble())); } Log.d(TAG, "\n[BubbleData] overflow:"); Log.d(TAG, BubbleDebugConfig.formatBubblesString(mBubbleData.getOverflowBubbles(), null) + "\n"); } } }; Loading packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java +3 −11 Original line number Diff line number Diff line Loading @@ -74,8 +74,6 @@ public class BubbleData { @Nullable Bubble selectedBubble; @Nullable Bubble addedBubble; @Nullable Bubble updatedBubble; @Nullable Bubble addedOverflowBubble; @Nullable Bubble removedOverflowBubble; // Pair with Bubble and @DismissReason Integer final List<Pair<Bubble, Integer>> removedBubbles = new ArrayList<>(); Loading @@ -94,8 +92,6 @@ public class BubbleData { || addedBubble != null || updatedBubble != null || !removedBubbles.isEmpty() || addedOverflowBubble != null || removedOverflowBubble != null || orderChanged; } Loading Loading @@ -237,7 +233,6 @@ public class BubbleData { private void moveOverflowBubbleToPending(Bubble b) { mOverflowBubbles.remove(b); mStateChange.removedOverflowBubble = b; mPendingBubbles.add(b); } Loading Loading @@ -445,9 +440,8 @@ public class BubbleData { if (DEBUG_BUBBLE_DATA) { Log.d(TAG, "Cancel overflow bubble: " + b); } mOverflowBubbles.remove(b); mStateChange.bubbleRemoved(b, reason); mStateChange.removedOverflowBubble = b; mOverflowBubbles.remove(b); } return; } Loading Loading @@ -489,7 +483,6 @@ public class BubbleData { Log.d(TAG, "Overflowing: " + bubble); } mOverflowBubbles.add(0, bubble); mStateChange.addedOverflowBubble = bubble; bubble.stopInflation(); if (mOverflowBubbles.size() == mMaxOverflowBubbles + 1) { // Remove oldest bubble. Loading @@ -497,9 +490,8 @@ public class BubbleData { if (DEBUG_BUBBLE_DATA) { Log.d(TAG, "Overflow full. Remove: " + oldest); } mOverflowBubbles.remove(oldest); mStateChange.removedOverflowBubble = oldest; mStateChange.bubbleRemoved(oldest, BubbleController.DISMISS_OVERFLOW_MAX_REACHED); mOverflowBubbles.remove(oldest); } } Loading packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflowActivity.java +18 −45 Original line number Diff line number Diff line Loading @@ -108,12 +108,11 @@ public class BubbleOverflowActivity extends Activity { mAdapter = new BubbleOverflowAdapter(getApplicationContext(), mOverflowBubbles, mBubbleController::promoteBubbleFromOverflow, viewWidth, viewHeight); mRecyclerView.setAdapter(mAdapter); mOverflowBubbles.addAll(mBubbleController.getOverflowBubbles()); mAdapter.notifyDataSetChanged(); setEmptyStateVisibility(); mBubbleController.setOverflowListener(mDataListener); onDataChanged(mBubbleController.getOverflowBubbles()); mBubbleController.setOverflowCallback(() -> { onDataChanged(mBubbleController.getOverflowBubbles()); }); onThemeChanged(); } /** Loading @@ -140,14 +139,6 @@ public class BubbleOverflowActivity extends Activity { } } void setEmptyStateVisibility() { if (mOverflowBubbles.isEmpty()) { mEmptyState.setVisibility(View.VISIBLE); } else { mEmptyState.setVisibility(View.GONE); } } void setBackgroundColor() { final TypedArray ta = getApplicationContext().obtainStyledAttributes( new int[]{android.R.attr.colorBackgroundFloating}); Loading @@ -156,40 +147,22 @@ public class BubbleOverflowActivity extends Activity { findViewById(android.R.id.content).setBackgroundColor(bgColor); } private final BubbleData.Listener mDataListener = new BubbleData.Listener() { @Override public void applyUpdate(BubbleData.Update update) { Bubble toRemove = update.removedOverflowBubble; if (toRemove != null) { if (DEBUG_OVERFLOW) { Log.d(TAG, "remove: " + toRemove); } toRemove.cleanupViews(); int i = mOverflowBubbles.indexOf(toRemove); mOverflowBubbles.remove(toRemove); mAdapter.notifyItemRemoved(i); } void onDataChanged(List<Bubble> bubbles) { mOverflowBubbles.clear(); mOverflowBubbles.addAll(bubbles); mAdapter.notifyDataSetChanged(); Bubble toAdd = update.addedOverflowBubble; if (toAdd != null) { if (DEBUG_OVERFLOW) { Log.d(TAG, "add: " + toAdd); } mOverflowBubbles.add(0, toAdd); mAdapter.notifyItemInserted(0); if (mOverflowBubbles.isEmpty()) { mEmptyState.setVisibility(View.VISIBLE); } else { mEmptyState.setVisibility(View.GONE); } setEmptyStateVisibility(); if (DEBUG_OVERFLOW) { Log.d(TAG, BubbleDebugConfig.formatBubblesString( mBubbleController.getOverflowBubbles(), null)); Log.d(TAG, "Updated overflow bubbles:\n" + BubbleDebugConfig.formatBubblesString( mOverflowBubbles, /*selected*/ null)); } } }; @Override public void onStart() { Loading Loading
packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java +9 −7 Original line number Diff line number Diff line Loading @@ -175,7 +175,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi private INotificationManager mINotificationManager; // Callback that updates BubbleOverflowActivity on data change. @Nullable private BubbleData.Listener mOverflowListener = null; @Nullable private Runnable mOverflowCallback = null; private final NotificationInterruptStateProvider mNotificationInterruptStateProvider; private IStatusBarService mBarService; Loading Loading @@ -571,8 +571,8 @@ public class BubbleController implements ConfigurationController.ConfigurationLi mInflateSynchronously = inflateSynchronously; } void setOverflowListener(BubbleData.Listener listener) { mOverflowListener = listener; void setOverflowCallback(Runnable updateOverflow) { mOverflowCallback = updateOverflow; } /** Loading Loading @@ -986,8 +986,8 @@ public class BubbleController implements ConfigurationController.ConfigurationLi @Override public void applyUpdate(BubbleData.Update update) { // Update bubbles in overflow. if (mOverflowListener != null) { mOverflowListener.applyUpdate(update); if (mOverflowCallback != null) { mOverflowCallback.run(); } // Collapsing? Do this first before remaining steps. Loading Loading @@ -1015,8 +1015,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi if (!mBubbleData.hasOverflowBubbleWithKey(bubble.getKey()) && (!bubble.showInShade() || reason == DISMISS_NOTIF_CANCEL || reason == DISMISS_GROUP_CANCELLED || reason == DISMISS_OVERFLOW_MAX_REACHED)) { || reason == DISMISS_GROUP_CANCELLED)) { // The bubble is now gone & the notification is hidden from the shade, so // time to actually remove it for (NotifCallback cb : mCallbacks) { Loading Loading @@ -1087,6 +1086,9 @@ public class BubbleController implements ConfigurationController.ConfigurationLi Log.d(TAG, BubbleDebugConfig.formatBubblesString(mStackView.getBubblesOnScreen(), mStackView.getExpandedBubble())); } Log.d(TAG, "\n[BubbleData] overflow:"); Log.d(TAG, BubbleDebugConfig.formatBubblesString(mBubbleData.getOverflowBubbles(), null) + "\n"); } } }; Loading
packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java +3 −11 Original line number Diff line number Diff line Loading @@ -74,8 +74,6 @@ public class BubbleData { @Nullable Bubble selectedBubble; @Nullable Bubble addedBubble; @Nullable Bubble updatedBubble; @Nullable Bubble addedOverflowBubble; @Nullable Bubble removedOverflowBubble; // Pair with Bubble and @DismissReason Integer final List<Pair<Bubble, Integer>> removedBubbles = new ArrayList<>(); Loading @@ -94,8 +92,6 @@ public class BubbleData { || addedBubble != null || updatedBubble != null || !removedBubbles.isEmpty() || addedOverflowBubble != null || removedOverflowBubble != null || orderChanged; } Loading Loading @@ -237,7 +233,6 @@ public class BubbleData { private void moveOverflowBubbleToPending(Bubble b) { mOverflowBubbles.remove(b); mStateChange.removedOverflowBubble = b; mPendingBubbles.add(b); } Loading Loading @@ -445,9 +440,8 @@ public class BubbleData { if (DEBUG_BUBBLE_DATA) { Log.d(TAG, "Cancel overflow bubble: " + b); } mOverflowBubbles.remove(b); mStateChange.bubbleRemoved(b, reason); mStateChange.removedOverflowBubble = b; mOverflowBubbles.remove(b); } return; } Loading Loading @@ -489,7 +483,6 @@ public class BubbleData { Log.d(TAG, "Overflowing: " + bubble); } mOverflowBubbles.add(0, bubble); mStateChange.addedOverflowBubble = bubble; bubble.stopInflation(); if (mOverflowBubbles.size() == mMaxOverflowBubbles + 1) { // Remove oldest bubble. Loading @@ -497,9 +490,8 @@ public class BubbleData { if (DEBUG_BUBBLE_DATA) { Log.d(TAG, "Overflow full. Remove: " + oldest); } mOverflowBubbles.remove(oldest); mStateChange.removedOverflowBubble = oldest; mStateChange.bubbleRemoved(oldest, BubbleController.DISMISS_OVERFLOW_MAX_REACHED); mOverflowBubbles.remove(oldest); } } Loading
packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflowActivity.java +18 −45 Original line number Diff line number Diff line Loading @@ -108,12 +108,11 @@ public class BubbleOverflowActivity extends Activity { mAdapter = new BubbleOverflowAdapter(getApplicationContext(), mOverflowBubbles, mBubbleController::promoteBubbleFromOverflow, viewWidth, viewHeight); mRecyclerView.setAdapter(mAdapter); mOverflowBubbles.addAll(mBubbleController.getOverflowBubbles()); mAdapter.notifyDataSetChanged(); setEmptyStateVisibility(); mBubbleController.setOverflowListener(mDataListener); onDataChanged(mBubbleController.getOverflowBubbles()); mBubbleController.setOverflowCallback(() -> { onDataChanged(mBubbleController.getOverflowBubbles()); }); onThemeChanged(); } /** Loading @@ -140,14 +139,6 @@ public class BubbleOverflowActivity extends Activity { } } void setEmptyStateVisibility() { if (mOverflowBubbles.isEmpty()) { mEmptyState.setVisibility(View.VISIBLE); } else { mEmptyState.setVisibility(View.GONE); } } void setBackgroundColor() { final TypedArray ta = getApplicationContext().obtainStyledAttributes( new int[]{android.R.attr.colorBackgroundFloating}); Loading @@ -156,40 +147,22 @@ public class BubbleOverflowActivity extends Activity { findViewById(android.R.id.content).setBackgroundColor(bgColor); } private final BubbleData.Listener mDataListener = new BubbleData.Listener() { @Override public void applyUpdate(BubbleData.Update update) { Bubble toRemove = update.removedOverflowBubble; if (toRemove != null) { if (DEBUG_OVERFLOW) { Log.d(TAG, "remove: " + toRemove); } toRemove.cleanupViews(); int i = mOverflowBubbles.indexOf(toRemove); mOverflowBubbles.remove(toRemove); mAdapter.notifyItemRemoved(i); } void onDataChanged(List<Bubble> bubbles) { mOverflowBubbles.clear(); mOverflowBubbles.addAll(bubbles); mAdapter.notifyDataSetChanged(); Bubble toAdd = update.addedOverflowBubble; if (toAdd != null) { if (DEBUG_OVERFLOW) { Log.d(TAG, "add: " + toAdd); } mOverflowBubbles.add(0, toAdd); mAdapter.notifyItemInserted(0); if (mOverflowBubbles.isEmpty()) { mEmptyState.setVisibility(View.VISIBLE); } else { mEmptyState.setVisibility(View.GONE); } setEmptyStateVisibility(); if (DEBUG_OVERFLOW) { Log.d(TAG, BubbleDebugConfig.formatBubblesString( mBubbleController.getOverflowBubbles(), null)); Log.d(TAG, "Updated overflow bubbles:\n" + BubbleDebugConfig.formatBubblesString( mOverflowBubbles, /*selected*/ null)); } } }; @Override public void onStart() { Loading