| Index: media/base/android/java/src/org/chromium/media/DialogSurfaceManager.java
|
| diff --git a/media/base/android/java/src/org/chromium/media/DialogSurfaceManager.java b/media/base/android/java/src/org/chromium/media/DialogSurfaceManager.java
|
| index c54247a23703adc2279a0d41ed35b30f27e2ad6d..63a3b36dace12b0a3e05a8dd145073cab42072e7 100644
|
| --- a/media/base/android/java/src/org/chromium/media/DialogSurfaceManager.java
|
| +++ b/media/base/android/java/src/org/chromium/media/DialogSurfaceManager.java
|
| @@ -4,10 +4,12 @@
|
|
|
| package org.chromium.media;
|
|
|
| +import android.content.Context;
|
| import android.os.Handler;
|
| import android.os.HandlerThread;
|
| import android.os.IBinder;
|
|
|
| +import org.chromium.base.ContextUtils;
|
| import org.chromium.base.annotations.CalledByNative;
|
| import org.chromium.base.annotations.JNINamespace;
|
|
|
| @@ -34,6 +36,8 @@ public class DialogSurfaceManager extends IDialogSurfaceManager.Stub {
|
| private static final String TAG = "cr_media";
|
| private static DialogSurfaceManager sInstance;
|
|
|
| + private final Context mContext;
|
| +
|
| // We maintain a thread with a Looper for the DialogSurfaces to use,
|
| // since Dialog requires one. We don't want this to be the native thread
|
| // that's used to create them, because it probably also has a native message
|
| @@ -49,6 +53,7 @@ public class DialogSurfaceManager extends IDialogSurfaceManager.Stub {
|
| private static final int sMaxSurfaces = 1;
|
|
|
| private DialogSurfaceManager(IDialogSurfaceActivityMapper mapper) {
|
| + mContext = ContextUtils.getApplicationContext();
|
| mMapper = mapper;
|
| mNumSurfaces = 0;
|
| }
|
| @@ -66,14 +71,12 @@ public class DialogSurfaceManager extends IDialogSurfaceManager.Stub {
|
| // Limit the number of concurrent surfaces.
|
| if (mNumSurfaces >= sMaxSurfaces) return null;
|
|
|
| - // TODO(liberato): would get the WindowToken / Activity here.
|
| -
|
| startThreadIfNeeded();
|
|
|
| mNumSurfaces++;
|
|
|
| - // TODO(liberato): would instantiate DialogSurfaceHolder here.
|
| - return null;
|
| + return new DialogSurfaceHolder(rendererPid, renderFrameId, mContext, this, mHandler,
|
| + callback, x, y, width, height);
|
| }
|
|
|
| /**
|
| @@ -98,10 +101,6 @@ public class DialogSurfaceManager extends IDialogSurfaceManager.Stub {
|
| // Called on main thread only.
|
| if (mThread != null) return;
|
|
|
| - // Just to avoid "Unread field" in findbugs. Normally, we wills send
|
| - // mHandler to DialogSurface.
|
| - if (mHandler != null) return;
|
| -
|
| mThread = new HandlerThread("DialogSurfaceThread");
|
| mThread.start();
|
| mHandler = new Handler(mThread.getLooper());
|
|
|