Set Calls with CallVideoProviders, and update InCallCalls on change.
Bug: 15893156
Change-Id: I27aa41d389673d94adcfe5da8c1ea0f4e155ae26
diff --git a/src/com/android/telecomm/Call.java b/src/com/android/telecomm/Call.java
index 09f60cf..4265c65 100644
--- a/src/com/android/telecomm/Call.java
+++ b/src/com/android/telecomm/Call.java
@@ -27,7 +27,6 @@
import android.telecomm.CallServiceDescriptor;
import android.telecomm.CallState;
import android.telecomm.GatewayInfo;
-import android.telecomm.InCallService;
import android.telecomm.Response;
import android.telecomm.Subscription;
import android.telecomm.TelecommConstants;
@@ -35,10 +34,10 @@
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
+import com.android.internal.telecomm.ICallVideoProvider;
import com.android.internal.telephony.CallerInfo;
import com.android.internal.telephony.CallerInfoAsyncQuery;
import com.android.internal.telephony.CallerInfoAsyncQuery.OnQueryCompleteListener;
-
import com.android.internal.telephony.SmsApplication;
import com.android.telecomm.ContactsAsyncHelper.OnImageLoadCompleteListener;
import com.google.common.base.Preconditions;
@@ -74,6 +73,7 @@
void onParentChanged(Call call);
void onChildrenChanged(Call call);
void onCannedSmsResponsesLoaded(Call call);
+ void onCallVideoProviderChanged(Call call);
}
private static final OnQueryCompleteListener sCallerInfoQueryListener =
@@ -206,6 +206,8 @@
/** Whether an attempt has been made to load the text message responses. */
private boolean mCannedSmsResponsesLoadingStarted = false;
+ private ICallVideoProvider mCallVideoProvider;
+
/**
* Creates an empty call object.
*
@@ -1053,7 +1055,17 @@
/**
* Sets a call video provider for the call.
*/
- public void setCallVideoProvider() {
- //TODO: Implement this method. For now, it's just an empty stub.
+ public void setCallVideoProvider(ICallVideoProvider callVideoProvider) {
+ mCallVideoProvider = callVideoProvider;
+ for (Listener l : mListeners) {
+ l.onCallVideoProviderChanged(Call.this);
+ }
+ }
+
+ /**
+ * @return Return the call video Provider binder.
+ */
+ public ICallVideoProvider getCallVideoProvider() {
+ return mCallVideoProvider;
}
}
diff --git a/src/com/android/telecomm/CallServiceWrapper.java b/src/com/android/telecomm/CallServiceWrapper.java
index 365a5ce..5970846 100644
--- a/src/com/android/telecomm/CallServiceWrapper.java
+++ b/src/com/android/telecomm/CallServiceWrapper.java
@@ -287,8 +287,9 @@
SomeArgs args = (SomeArgs) msg.obj;
try {
call = mCallIdMapper.getCall(args.arg1);
+ ICallVideoProvider callVideoProvider = (ICallVideoProvider) args.arg2;
if (call != null) {
- call.setCallVideoProvider();
+ call.setCallVideoProvider(callVideoProvider);
}
} finally {
args.recycle();
diff --git a/src/com/android/telecomm/CallsManager.java b/src/com/android/telecomm/CallsManager.java
index d53b583..26f627f 100644
--- a/src/com/android/telecomm/CallsManager.java
+++ b/src/com/android/telecomm/CallsManager.java
@@ -65,6 +65,7 @@
void onIsConferenceCapableChanged(Call call, boolean isConferenceCapable);
void onIsConferencedChanged(Call call);
void onCannedSmsResponsesLoaded(Call call);
+ void onCallVideoProviderChanged(Call call);
}
private static final CallsManager INSTANCE = new CallsManager();
@@ -225,6 +226,13 @@
}
}
+ @Override
+ public void onCallVideoProviderChanged(Call call) {
+ for (CallsManagerListener listener : mListeners) {
+ listener.onCallVideoProviderChanged(call);
+ }
+ }
+
ImmutableCollection<Call> getCalls() {
return ImmutableList.copyOf(mCalls);
}
diff --git a/src/com/android/telecomm/CallsManagerListenerBase.java b/src/com/android/telecomm/CallsManagerListenerBase.java
index 55fa0a1..26d122b 100644
--- a/src/com/android/telecomm/CallsManagerListenerBase.java
+++ b/src/com/android/telecomm/CallsManagerListenerBase.java
@@ -86,4 +86,9 @@
@Override
public void onCannedSmsResponsesLoaded(Call call) {
}
+
+ @Override
+ public void onCallVideoProviderChanged(Call call) {
+
+ }
}
diff --git a/src/com/android/telecomm/InCallController.java b/src/com/android/telecomm/InCallController.java
index bd41dcc..871bf75 100644
--- a/src/com/android/telecomm/InCallController.java
+++ b/src/com/android/telecomm/InCallController.java
@@ -162,6 +162,11 @@
updateCall(call);
}
+ @Override
+ public void onCallVideoProviderChanged(Call call) {
+ updateCall(call);
+ }
+
void bringToForeground(boolean showDialpad) {
if (mInCallService != null) {
try {
@@ -311,7 +316,8 @@
return new InCallCall(callId, state, call.getDisconnectCause(), call.getDisconnectMessage(),
call.getCannedSmsResponses(), capabilities, connectTimeMillis, call.getHandle(),
call.getGatewayInfo(), call.getSubscription(), descriptor,
- call.getHandoffCallServiceDescriptor(), parentCallId, childCallIds);
+ call.getHandoffCallServiceDescriptor(), call.getCallVideoProvider(),
+ parentCallId, childCallIds);
}
}