Add support for specifying looper on VideoProviders.

Added constructor for VideoProviders to allow creating instances where
the Looper is specified.  This is required for creating
VideoProviderProxy instances within Telecom.

Bug: 20232310
Change-Id: Ieb31e499caca9d65ff4b52c287e030c0ceeeb6ee
This commit is contained in:
Tyler Gunn
2015-05-22 15:43:28 -07:00
parent 475c545fa8
commit 4e9bbaf043

View File

@@ -27,6 +27,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.RemoteException;
import android.view.Surface;
@@ -442,8 +443,7 @@ public abstract class Connection extends Conferenceable {
private static final int MSG_SET_PAUSE_IMAGE = 11;
private static final int MSG_REMOVE_VIDEO_CALLBACK = 12;
private final VideoProvider.VideoProviderHandler
mMessageHandler = new VideoProvider.VideoProviderHandler();
private VideoProvider.VideoProviderHandler mMessageHandler;
private final VideoProvider.VideoProviderBinder mBinder;
/**
@@ -455,6 +455,14 @@ public abstract class Connection extends Conferenceable {
* Default handler used to consolidate binder method calls onto a single thread.
*/
private final class VideoProviderHandler extends Handler {
public VideoProviderHandler() {
super();
}
public VideoProviderHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
@@ -586,6 +594,18 @@ public abstract class Connection extends Conferenceable {
public VideoProvider() {
mBinder = new VideoProvider.VideoProviderBinder();
mMessageHandler = new VideoProvider.VideoProviderHandler();
}
/**
* Creates an instance of the {@link VideoProvider}, specifying the looper to use.
*
* @param looper The looper.
* @hide
*/
public VideoProvider(Looper looper) {
mBinder = new VideoProvider.VideoProviderBinder();
mMessageHandler = new VideoProvider.VideoProviderHandler(looper);
}
/**