Merge "Add methods to set a CallVideoProvider on a Call."
This commit is contained in:
@@ -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) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user