Loading libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java +23 −7 Original line number Diff line number Diff line Loading @@ -1212,7 +1212,7 @@ public class BubbleController implements ConfigurationChangeListener, */ public void startBubbleDrag(String bubbleKey) { if (mBubbleData.getSelectedBubble() != null) { mBubbleBarViewCallback.expansionChanged(/* isExpanded = */ false); collapseExpandedViewForBubbleBar(); } if (mBubbleStateListener != null) { boolean overflow = BubbleOverflow.KEY.equals(bubbleKey); Loading Loading @@ -1304,6 +1304,7 @@ public class BubbleController implements ConfigurationChangeListener, if (BubbleOverflow.KEY.equals(key)) { mBubbleData.setSelectedBubbleFromLauncher(mBubbleData.getOverflow()); mLayerView.showExpandedView(mBubbleData.getOverflow()); mLogger.log(BubbleLogger.Event.BUBBLE_BAR_EXPANDED); return; } Loading @@ -1315,6 +1316,7 @@ public class BubbleController implements ConfigurationChangeListener, // already in the stack mBubbleData.setSelectedBubbleFromLauncher(b); mLayerView.showExpandedView(b); mLogger.log(b, BubbleLogger.Event.BUBBLE_BAR_EXPANDED); } else if (mBubbleData.hasOverflowBubbleWithKey(b.getKey())) { // TODO: (b/271468319) handle overflow } else { Loading Loading @@ -2024,12 +2026,16 @@ public class BubbleController implements ConfigurationChangeListener, public void expansionChanged(boolean isExpanded) { // in bubble bar mode, let the request to show the expanded view come from launcher. // only collapse here if we're collapsing. if (mLayerView != null && !isExpanded) { if (mBubblePositioner.isImeVisible()) { // If we're collapsing, hide the IME hideCurrentInputMethod(); if (!isExpanded) { collapseExpandedViewForBubbleBar(); } mLayerView.collapse(); BubbleLogger.Event event = isExpanded ? BubbleLogger.Event.BUBBLE_BAR_EXPANDED : BubbleLogger.Event.BUBBLE_BAR_COLLAPSED; if (mBubbleData.getSelectedBubble() instanceof Bubble bubble) { mLogger.log(bubble, event); } else { mLogger.log(event); } } Loading Loading @@ -2182,6 +2188,16 @@ public class BubbleController implements ConfigurationChangeListener, } } private void collapseExpandedViewForBubbleBar() { if (mLayerView != null && mLayerView.isExpanded()) { if (mBubblePositioner.isImeVisible()) { // If we're collapsing, hide the IME hideCurrentInputMethod(); } mLayerView.collapse(); } } private void updateOverflowButtonDot() { BubbleOverflow overflow = mBubbleData.getOverflow(); if (overflow == null) return; Loading packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -2533,6 +2533,42 @@ public class BubblesTest extends SysuiTestCase { verify(mBubbleLogger).log(BubbleLogger.Event.BUBBLE_BAR_DISMISSED_DRAG_BAR); } @EnableFlags(FLAG_ENABLE_BUBBLE_BAR) @Test public void testEventLogging_bubbleBar_expandAndCollapse() { mBubbleProperties.mIsBubbleBarEnabled = true; mPositioner.setIsLargeScreen(true); FakeBubbleStateListener bubbleStateListener = new FakeBubbleStateListener(); mBubbleController.registerBubbleStateListener(bubbleStateListener); mEntryListener.onEntryAdded(mRow); mBubbleController.expandStackAndSelectBubbleFromLauncher(mRow.getKey(), 0); verify(mBubbleLogger).log(eqBubbleWithKey(mRow.getKey()), eq(BubbleLogger.Event.BUBBLE_BAR_EXPANDED)); mBubbleController.collapseStack(); verify(mBubbleLogger).log(eqBubbleWithKey(mRow.getKey()), eq(BubbleLogger.Event.BUBBLE_BAR_COLLAPSED)); } @EnableFlags(FLAG_ENABLE_BUBBLE_BAR) @Test public void testEventLogging_bubbleBar_autoExpandingBubble() { mBubbleProperties.mIsBubbleBarEnabled = true; mPositioner.setIsLargeScreen(true); FakeBubbleStateListener bubbleStateListener = new FakeBubbleStateListener(); mBubbleController.registerBubbleStateListener(bubbleStateListener); setMetadataFlags(mRow, Notification.BubbleMetadata.FLAG_AUTO_EXPAND_BUBBLE, true /* enableFlag */); mEntryListener.onEntryAdded(mRow); verify(mBubbleLogger).log(eqBubbleWithKey(mRow.getKey()), eq(BubbleLogger.Event.BUBBLE_BAR_EXPANDED)); } /** Creates a bubble using the userId and package. */ private Bubble createBubble(int userId, String pkg) { final UserHandle userHandle = new UserHandle(userId); Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java +23 −7 Original line number Diff line number Diff line Loading @@ -1212,7 +1212,7 @@ public class BubbleController implements ConfigurationChangeListener, */ public void startBubbleDrag(String bubbleKey) { if (mBubbleData.getSelectedBubble() != null) { mBubbleBarViewCallback.expansionChanged(/* isExpanded = */ false); collapseExpandedViewForBubbleBar(); } if (mBubbleStateListener != null) { boolean overflow = BubbleOverflow.KEY.equals(bubbleKey); Loading Loading @@ -1304,6 +1304,7 @@ public class BubbleController implements ConfigurationChangeListener, if (BubbleOverflow.KEY.equals(key)) { mBubbleData.setSelectedBubbleFromLauncher(mBubbleData.getOverflow()); mLayerView.showExpandedView(mBubbleData.getOverflow()); mLogger.log(BubbleLogger.Event.BUBBLE_BAR_EXPANDED); return; } Loading @@ -1315,6 +1316,7 @@ public class BubbleController implements ConfigurationChangeListener, // already in the stack mBubbleData.setSelectedBubbleFromLauncher(b); mLayerView.showExpandedView(b); mLogger.log(b, BubbleLogger.Event.BUBBLE_BAR_EXPANDED); } else if (mBubbleData.hasOverflowBubbleWithKey(b.getKey())) { // TODO: (b/271468319) handle overflow } else { Loading Loading @@ -2024,12 +2026,16 @@ public class BubbleController implements ConfigurationChangeListener, public void expansionChanged(boolean isExpanded) { // in bubble bar mode, let the request to show the expanded view come from launcher. // only collapse here if we're collapsing. if (mLayerView != null && !isExpanded) { if (mBubblePositioner.isImeVisible()) { // If we're collapsing, hide the IME hideCurrentInputMethod(); if (!isExpanded) { collapseExpandedViewForBubbleBar(); } mLayerView.collapse(); BubbleLogger.Event event = isExpanded ? BubbleLogger.Event.BUBBLE_BAR_EXPANDED : BubbleLogger.Event.BUBBLE_BAR_COLLAPSED; if (mBubbleData.getSelectedBubble() instanceof Bubble bubble) { mLogger.log(bubble, event); } else { mLogger.log(event); } } Loading Loading @@ -2182,6 +2188,16 @@ public class BubbleController implements ConfigurationChangeListener, } } private void collapseExpandedViewForBubbleBar() { if (mLayerView != null && mLayerView.isExpanded()) { if (mBubblePositioner.isImeVisible()) { // If we're collapsing, hide the IME hideCurrentInputMethod(); } mLayerView.collapse(); } } private void updateOverflowButtonDot() { BubbleOverflow overflow = mBubbleData.getOverflow(); if (overflow == null) return; Loading
packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -2533,6 +2533,42 @@ public class BubblesTest extends SysuiTestCase { verify(mBubbleLogger).log(BubbleLogger.Event.BUBBLE_BAR_DISMISSED_DRAG_BAR); } @EnableFlags(FLAG_ENABLE_BUBBLE_BAR) @Test public void testEventLogging_bubbleBar_expandAndCollapse() { mBubbleProperties.mIsBubbleBarEnabled = true; mPositioner.setIsLargeScreen(true); FakeBubbleStateListener bubbleStateListener = new FakeBubbleStateListener(); mBubbleController.registerBubbleStateListener(bubbleStateListener); mEntryListener.onEntryAdded(mRow); mBubbleController.expandStackAndSelectBubbleFromLauncher(mRow.getKey(), 0); verify(mBubbleLogger).log(eqBubbleWithKey(mRow.getKey()), eq(BubbleLogger.Event.BUBBLE_BAR_EXPANDED)); mBubbleController.collapseStack(); verify(mBubbleLogger).log(eqBubbleWithKey(mRow.getKey()), eq(BubbleLogger.Event.BUBBLE_BAR_COLLAPSED)); } @EnableFlags(FLAG_ENABLE_BUBBLE_BAR) @Test public void testEventLogging_bubbleBar_autoExpandingBubble() { mBubbleProperties.mIsBubbleBarEnabled = true; mPositioner.setIsLargeScreen(true); FakeBubbleStateListener bubbleStateListener = new FakeBubbleStateListener(); mBubbleController.registerBubbleStateListener(bubbleStateListener); setMetadataFlags(mRow, Notification.BubbleMetadata.FLAG_AUTO_EXPAND_BUBBLE, true /* enableFlag */); mEntryListener.onEntryAdded(mRow); verify(mBubbleLogger).log(eqBubbleWithKey(mRow.getKey()), eq(BubbleLogger.Event.BUBBLE_BAR_EXPANDED)); } /** Creates a bubble using the userId and package. */ private Bubble createBubble(int userId, String pkg) { final UserHandle userHandle = new UserHandle(userId); Loading