Merge "Add methods to set a CallVideoProvider on a Call."

This commit is contained in:
Andrew Lee
2014-06-27 22:04:23 +00:00
committed by Android (Google) Code Review
7 changed files with 65 additions and 1 deletions

View File

@@ -27637,6 +27637,7 @@ package android.telecomm {
method public void notifyIncomingCall(android.telecomm.CallInfo);
method public void onPostDialWait(java.lang.String, java.lang.String);
method public void setActive(java.lang.String);
method public void setCallVideoProvider(java.lang.String, android.telecomm.CallVideoProvider);
method public void setDialing(java.lang.String);
method public void setDisconnected(java.lang.String, int, java.lang.String);
method public void setOnHold(java.lang.String);
@@ -27703,6 +27704,11 @@ package android.telecomm {
field public static final int SESSION_MODIFY_REQUEST_SUCCESS = 1; // 0x1
}
public abstract class CallVideoProvider {
ctor protected CallVideoProvider();
method public abstract void setCamera(java.lang.String);
}
public class CallVideoProviderWrapper implements android.os.IBinder.DeathRecipient {
method public void binderDied();
method public void setCamera(java.lang.String) throws android.os.RemoteException;
@@ -27733,6 +27739,7 @@ package android.telecomm {
method protected void onStopDtmfTone();
method protected void onUnhold();
method public final void setActive();
method public final void setCallVideoProvider(android.telecomm.CallVideoProvider);
method public final void setDestroyed();
method public final void setDialing();
method public final void setDisconnected(int, java.lang.String);
@@ -27754,6 +27761,7 @@ package android.telecomm {
method public abstract void onHandleChanged(android.telecomm.Connection, android.net.Uri);
method public abstract void onParentConnectionChanged(android.telecomm.Connection, android.telecomm.Connection);
method public abstract void onRequestingRingback(android.telecomm.Connection, boolean);
method public abstract void onSetCallVideoProvider(android.telecomm.Connection, android.telecomm.CallVideoProvider);
method public abstract void onSignalChanged(android.telecomm.Connection, android.os.Bundle);
method public abstract void onStateChanged(android.telecomm.Connection, int);
}
@@ -27767,6 +27775,7 @@ package android.telecomm {
method public void onHandleChanged(android.telecomm.Connection, android.net.Uri);
method public void onParentConnectionChanged(android.telecomm.Connection, android.telecomm.Connection);
method public void onRequestingRingback(android.telecomm.Connection, boolean);
method public void onSetCallVideoProvider(android.telecomm.Connection, android.telecomm.CallVideoProvider);
method public void onSignalChanged(android.telecomm.Connection, android.os.Bundle);
method public void onStateChanged(android.telecomm.Connection, int);
}

View File

@@ -23,6 +23,7 @@ import android.os.RemoteException;
import com.android.internal.telecomm.ICallService;
import com.android.internal.telecomm.ICallServiceAdapter;
import com.android.internal.telecomm.ICallVideoProvider;
import com.android.internal.telecomm.RemoteServiceCallback;
import java.util.ArrayList;
@@ -338,4 +339,19 @@ public final class CallServiceAdapter implements DeathRecipient {
}
}
}
/**
* Sets the call video provider for a call.
*
* @param callId The unique ID of the call to set with the given call video provider.
* @param callVideoProvider The call video provider instance to set on the call.
*/
public void setCallVideoProvider(String callId, CallVideoProvider callVideoProvider) {
for (ICallServiceAdapter adapter : mAdapters) {
try {
adapter.setCallVideoProvider(callId, callVideoProvider.getInterface());
} catch (RemoteException e) {
}
}
}
}

View File

@@ -25,7 +25,6 @@ import android.os.Message;
import com.android.internal.telecomm.ICallVideoProvider;
/** @hide */
public abstract class CallVideoProvider {
private static final int MSG_SET_CAMERA = 1;
@@ -60,6 +59,14 @@ public abstract class CallVideoProvider {
mBinder = new CallVideoProviderBinder();
}
/**
* Returns binder object which can be used across IPC methods.
* @hide
*/
public final ICallVideoProvider getInterface() {
return mBinder;
}
/**
* Sets the camera to be used for video recording in a video call.
*

View File

@@ -18,6 +18,7 @@ package android.telecomm;
import android.net.Uri;
import android.os.Bundle;
import android.telecomm.CallVideoProvider;
import java.util.ArrayList;
import java.util.Collections;
@@ -40,6 +41,7 @@ public abstract class Connection {
void onDestroyed(Connection c);
void onConferenceCapableChanged(Connection c, boolean isConferenceCapable);
void onParentConnectionChanged(Connection c, Connection parent);
void onSetCallVideoProvider(Connection c, CallVideoProvider callVideoProvider);
}
public static class ListenerBase implements Listener {
@@ -78,6 +80,10 @@ public abstract class Connection {
/** ${inheritDoc} */
@Override
public void onParentConnectionChanged(Connection c, Connection parent) {}
/** {@inheritDoc} */
@Override
public void onSetCallVideoProvider(Connection c, CallVideoProvider callVideoProvider) {}
}
public final class State {
@@ -414,6 +420,16 @@ public abstract class Connection {
setState(State.HOLDING);
}
/**
* Sets the call video provider.
* @param callVideoProvider The call video provider.
*/
public final void setCallVideoProvider(CallVideoProvider callVideoProvider) {
for (Listener l : mListeners) {
l.onSetCallVideoProvider(this, callVideoProvider);
}
}
/**
* Sets state to disconnected. This will first notify listeners with an
* {@link Listener#onStateChanged(Connection, int)} event, then will fire an

View File

@@ -155,6 +155,12 @@ public abstract class ConnectionService extends CallService {
String parentId = parent == null ? null : mIdByConnection.get(parent);
getAdapter().setIsConferenced(id, parentId);
}
@Override
public void onSetCallVideoProvider(Connection c, CallVideoProvider callVideoProvider) {
String id = mIdByConnection.get(c);
getAdapter().setCallVideoProvider(id, callVideoProvider);
}
};
@Override

View File

@@ -26,6 +26,7 @@ import android.text.TextUtils;
import com.android.internal.telecomm.ICallService;
import com.android.internal.telecomm.ICallServiceAdapter;
import com.android.internal.telecomm.ICallVideoProvider;
import com.android.internal.telecomm.RemoteServiceCallback;
import java.util.ArrayList;
@@ -104,6 +105,12 @@ public class RemoteConnectionService implements DeathRecipient {
}
}
/** ${inheritDoc} */
public void setCallVideoProvider(
String connectionId, ICallVideoProvider callVideoProvider) {
// not supported for remote connections.
}
/** ${inheritDoc} */
@Override
public void setDialing(String connectionId) {

View File

@@ -19,6 +19,7 @@ package com.android.internal.telecomm;
import android.telecomm.CallInfo;
import android.telecomm.ConnectionRequest;
import com.android.internal.telecomm.ICallVideoProvider;
import com.android.internal.telecomm.RemoteServiceCallback;
/**
@@ -62,4 +63,6 @@ oneway interface ICallServiceAdapter {
void handoffCall(String callId);
void queryRemoteConnectionServices(RemoteServiceCallback callback);
void setCallVideoProvider(String callId, ICallVideoProvider callVideoProvider);
}