diff options
author | Tyler Gunn <tgunn@google.com> | 2020-04-08 15:05:11 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-04-08 15:05:11 +0000 |
commit | a73569ed076907d1e4cfc629903f11415ba1ed6c (patch) | |
tree | c28c5989ea4cc6c9e311b8441d8e08871c2bc039 | |
parent | 2de1437044a7c783ebeb8b70937c3cbd983efe45 (diff) | |
parent | e39c21cfd691eaf53d482da372eddd691c071005 (diff) | |
download | ims-a73569ed076907d1e4cfc629903f11415ba1ed6c.tar.gz |
Refactor conference participant processing. am: e39c21cfd6
Change-Id: I87f4c83c9c3fce3c452ec67d86d95385a8fb50ea
-rwxr-xr-x | src/java/com/android/ims/ImsCall.java | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/src/java/com/android/ims/ImsCall.java b/src/java/com/android/ims/ImsCall.java index f61e734b..04b1e9cc 100755 --- a/src/java/com/android/ims/ImsCall.java +++ b/src/java/com/android/ims/ImsCall.java @@ -43,8 +43,10 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.telephony.Rlog; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Map.Entry; import java.util.Objects; import java.util.Set; @@ -1915,14 +1917,26 @@ public class ImsCall implements ICall { return; } + mConferenceParticipants = parseConferenceState(state); + + if (mConferenceParticipants != null && mListener != null) { + try { + mListener.onConferenceParticipantsStateChanged(this, mConferenceParticipants); + } catch (Throwable t) { + loge("notifyConferenceStateUpdated :: ", t); + } + } + } + + public static List<ConferenceParticipant> parseConferenceState(ImsConferenceState state) { Set<Entry<String, Bundle>> participants = state.mParticipants.entrySet(); if (participants == null) { - return; + return Collections.emptyList(); } Iterator<Entry<String, Bundle>> iterator = participants.iterator(); - mConferenceParticipants = new ArrayList<>(participants.size()); + List<ConferenceParticipant> conferenceParticipants = new ArrayList<>(participants.size()); while (iterator.hasNext()) { Entry<String, Bundle> entry = iterator.next(); @@ -1934,7 +1948,7 @@ public class ImsCall implements ICall { String endpoint = confInfo.getString(ImsConferenceState.ENDPOINT); if (CONF_DBG) { - logi("notifyConferenceStateUpdated :: key=" + Rlog.pii(TAG, key) + + Log.i(TAG, "notifyConferenceStateUpdated :: key=" + Rlog.pii(TAG, key) + ", status=" + status + ", user=" + Rlog.pii(TAG, user) + ", displayName= " + Rlog.pii(TAG, displayName) + @@ -1951,17 +1965,10 @@ public class ImsCall implements ICall { if (connectionState != Connection.STATE_DISCONNECTED) { ConferenceParticipant conferenceParticipant = new ConferenceParticipant(handle, displayName, endpointUri, connectionState, Call.Details.DIRECTION_UNKNOWN); - mConferenceParticipants.add(conferenceParticipant); - } - } - - if (mConferenceParticipants != null && mListener != null) { - try { - mListener.onConferenceParticipantsStateChanged(this, mConferenceParticipants); - } catch (Throwable t) { - loge("notifyConferenceStateUpdated :: ", t); + conferenceParticipants.add(conferenceParticipant); } } + return conferenceParticipants; } /** @@ -3067,7 +3074,6 @@ public class ImsCall implements ICall { public void callSessionConferenceStateUpdated(ImsCallSession session, ImsConferenceState state) { logi("callSessionConferenceStateUpdated :: state=" + state); - conferenceStateUpdated(state); } |