Communicating participant changes to conference controller.

- Add new ConferenceParticipant parcelable class which represents a
single participant contained in the conference event package.
- Adding callbacks/listeners to Connection to handle changes to
participant state.

Bug: 18057361
Change-Id: Iadfebe84959f30f8e835f282aa994c0b92768aa6
diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java
index 2932721..9bdbba8 100644
--- a/telecomm/java/android/telecom/Connection.java
+++ b/telecomm/java/android/telecom/Connection.java
@@ -82,6 +82,9 @@
         public void onConferenceableConnectionsChanged(
                 Connection c, List<Connection> conferenceableConnections) {}
         public void onConferenceChanged(Connection c, Conference conference) {}
+        /** @hide */
+        public void onConferenceParticipantChanged(Connection c, ConferenceParticipant participant)
+        {}
     }
 
     /** @hide */
@@ -1117,4 +1120,16 @@
         }
         mConferenceableConnections.clear();
     }
+
+    /**
+     * Notifies listeners of a change to a conference participant.
+     *
+     * @param conferenceParticipant The participant.
+     * @hide
+     */
+    protected final void updateConferenceParticipant(ConferenceParticipant conferenceParticipant) {
+        for (Listener l : mListeners) {
+            l.onConferenceParticipantChanged(this, conferenceParticipant);
+        }
+    }
 }