Chromium Code Reviews| 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); |
| +}; |