aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Gunn <tgunn@google.com>2020-04-08 15:05:11 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-04-08 15:05:11 +0000
commita73569ed076907d1e4cfc629903f11415ba1ed6c (patch)
treec28c5989ea4cc6c9e311b8441d8e08871c2bc039
parent2de1437044a7c783ebeb8b70937c3cbd983efe45 (diff)
parente39c21cfd691eaf53d482da372eddd691c071005 (diff)
downloadims-a73569ed076907d1e4cfc629903f11415ba1ed6c.tar.gz
Refactor conference participant processing. am: e39c21cfd6
Change-Id: I87f4c83c9c3fce3c452ec67d86d95385a8fb50ea
-rwxr-xr-xsrc/java/com/android/ims/ImsCall.java32
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);
}