Index: media/base/android/java/src/org/chromium/media/AndroidOverlayCallback.java |
diff --git a/media/base/android/java/src/org/chromium/media/AndroidOverlayCallback.java b/media/base/android/java/src/org/chromium/media/AndroidOverlayCallback.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e54d0f7de3b5b09505f313bf57ca9ff631a996dd |
--- /dev/null |
+++ b/media/base/android/java/src/org/chromium/media/AndroidOverlayCallback.java |
@@ -0,0 +1,52 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.media; |
+ |
+import android.os.RemoteException; |
+import android.view.Surface; |
+ |
+import org.chromium.base.annotations.CalledByNative; |
+import org.chromium.base.annotations.JNINamespace; |
+ |
+/** |
+ * Callback helper for native. This works with our JNI implementation to hop |
+ * to the right thread for callbacks, and handle async deletion of the native |
+ * object. It directly implemens the aidl interface also. |
+ */ |
+@JNINamespace("media") |
+class AndroidOverlayCallback extends IAndroidOverlayCallback.Stub { |
+ private final long mNativeId; |
+ |
+ public AndroidOverlayCallback(long nativeId) { |
boliu
2017/02/08 00:01:58
private
|
+ mNativeId = nativeId; |
+ } |
+ |
+ @CalledByNative |
+ public static AndroidOverlayCallback create(long nativeId) { |
boliu
2017/02/08 00:01:58
private
|
+ return new AndroidOverlayCallback(nativeId); |
+ } |
+ |
+ @Override |
+ public void onCreated(Surface surface) { |
+ nativeOnAndroidOverlayCallbackCreated(mNativeId, surface); |
+ } |
+ |
+ @Override |
+ public void onDestroyed(IAndroidOverlayCompletion completion) { |
+ nativeOnAndroidOverlayCallbackDestroyed(mNativeId, completion); |
+ } |
+ |
+ @CalledByNative |
+ private static void signalCompletion(IAndroidOverlayCompletion completion) { |
+ try { |
+ if (completion != null) completion.signalComplete(); |
+ } catch (RemoteException e) { |
boliu
2017/02/08 00:01:58
Feel free to Log.d errors like this, Log.d is stri
|
+ } |
+ } |
+ |
+ private static native void nativeOnAndroidOverlayCallbackCreated(long id, Surface surface); |
+ private static native void nativeOnAndroidOverlayCallbackDestroyed( |
+ long id, IAndroidOverlayCompletion completion); |
+}; |