BubbleData [2/n]: adds Listener interface

This change introduces an interface which BubbleData will use to
report changes to the state of bubbles on-screen. This will allow
BubbleData to implement and propagate ordering and grouping changes.

Bug: 123542488
Test: atest BubbleControllerTest
Change-Id: I35708c45e23fed4369605eecd986cdff96e23d34
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
index b1e2212..5acf3c2 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
@@ -216,6 +216,7 @@
         }
 
         mBubbleData = data;
+        mBubbleData.setListener(mBubbleDataListener);
         mSurfaceSynchronizer = synchronizer;
     }
 
@@ -438,6 +439,47 @@
         }
     };
 
+    private final BubbleData.Listener mBubbleDataListener = new BubbleData.Listener() {
+        @Override
+        public void onBubbleAdded(Bubble bubble) {
+
+        }
+
+        @Override
+        public void onBubbleRemoved(Bubble bubble, int reason) {
+
+        }
+
+        public void onBubbleUpdated(Bubble bubble) {
+
+        }
+
+        @Override
+        public void onOrderChanged(List<Bubble> bubbles) {
+
+        }
+
+        @Override
+        public void onSelectionChanged(Bubble selectedBubble) {
+
+        }
+
+        @Override
+        public void onExpandedChanged(boolean expanded) {
+
+        }
+
+        @Override
+        public void showFlyoutText(Bubble bubble, String text) {
+
+        }
+
+        @Override
+        public void apply() {
+
+        }
+    };
+
     /**
      * Lets any listeners know if bubble state has changed.
      */