Commit e17369bb authored by Jinsuk Kim's avatar Jinsuk Kim Committed by Commit Bot

Android: Makes ContentVideoView a public interface

Turns ContentVideoView/ContentVideoViewEmbedder public interfaces,
and removes the corresponding DEPS exceptions.

Bug: 617324
Change-Id: I2e1fdd5b48e6a11e204c3d145458a58561dc0fb8
Reviewed-on: https://chromium-review.googlesource.com/1043305Reviewed-by: default avatarStephen Lanham <slan@chromium.org>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Reviewed-by: default avatarBo <boliu@chromium.org>
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557722}
parent 0884a2c6
......@@ -13,7 +13,6 @@ include_rules = [
"!content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessCreationParams.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java",
"!content/public/android/java/src/org/chromium/content/browser/ContentVideoViewEmbedder.java",
"!content/public/android/java/src/org/chromium/content/browser/selection/HandleViewResources.java",
"+device/gamepad/android/java",
......
......@@ -14,7 +14,7 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.content.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.ContentVideoViewEmbedder;
/**
* Implementation of {@link ContentViewViewEmbedder} for webview.
......
......@@ -22,7 +22,7 @@ import android.widget.FrameLayout;
import org.chromium.base.Callback;
import org.chromium.base.ContentUriUtils;
import org.chromium.base.ThreadUtils;
import org.chromium.content.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.InvalidateTypes;
import org.chromium.content_public.common.ContentUrlConstants;
import org.chromium.content_public.common.ResourceRequestBody;
......
......@@ -10,7 +10,6 @@ include_rules = [
"-content/public/android/java",
"+content/public/android/java/src/org/chromium/content_public",
"!content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java",
"!content/public/android/java/src/org/chromium/content/common/ContentSwitches.java",
"-content/public/android/javatests",
......
......@@ -7,24 +7,13 @@ package org.chromium.android_webview.test.util;
import android.view.View;
import android.view.ViewGroup;
import org.junit.Assert;
import org.chromium.base.ThreadUtils;
import org.chromium.content.browser.ContentVideoView;
/**
* Utils for testing SurfaceViews (SurfaceViews that display video).
*/
public class VideoSurfaceViewUtils {
/**
* Asserts that the given ViewGroup contains exactly one ContentVideoView.
* @param view View or ViewGroup to traverse.
*/
public static void assertContainsOneContentVideoView(View view) throws Exception {
Assert.assertEquals(1, containsNumChildrenOfType(view, ContentVideoView.class));
}
private static int containsNumChildrenOfType(
final View view, final Class<? extends View> childType) throws Exception {
return ThreadUtils.runOnUiThreadBlocking(
......
......@@ -23,8 +23,6 @@ include_rules = [
"!content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessCreationParams.java",
"!content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelper.java",
"!content/public/android/java/src/org/chromium/content/browser/ContentVideoViewEmbedder.java",
"!content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java",
"!content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java",
"!content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java",
"!content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java",
......
......@@ -147,8 +147,8 @@ import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetController;
import org.chromium.chrome.browser.widget.findinpage.FindToolbarManager;
import org.chromium.chrome.browser.widget.textbubble.TextBubble;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.content.browser.ContentVideoView;
import org.chromium.content.common.ContentSwitches;
import org.chromium.content_public.browser.ContentVideoView;
import org.chromium.content_public.browser.ContentViewCore;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.browser.SelectionPopupController;
......@@ -1688,14 +1688,15 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
* @return Whether the fullscreen mode is currently showing.
*/
protected boolean exitFullscreenIfShowing() {
ContentVideoView view = ContentVideoView.getContentVideoView();
if (view != null && view.getContext() == this) {
ContentVideoView view = ContentVideoView.getInstance();
if (view != null && view.createdWithContext(this)) {
view.exitFullscreen(false);
return true;
}
if (getFullscreenManager() != null
&& getFullscreenManager().getPersistentFullscreenMode()) {
getFullscreenManager().exitPersistentFullscreenMode();
ChromeFullscreenManager fullscreenManager = getFullscreenManager();
if (fullscreenManager != null && fullscreenManager.getPersistentFullscreenMode()) {
fullscreenManager.exitPersistentFullscreenMode();
return true;
}
return false;
......
......@@ -134,9 +134,9 @@ import org.chromium.chrome.browser.widget.textbubble.TextBubble;
import org.chromium.components.feature_engagement.EventConstants;
import org.chromium.components.feature_engagement.FeatureConstants;
import org.chromium.components.feature_engagement.Tracker;
import org.chromium.content.browser.ContentVideoView;
import org.chromium.content.browser.crypto.CipherFactory;
import org.chromium.content.common.ContentSwitches;
import org.chromium.content_public.browser.ContentVideoView;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.WebContentsAccessibility;
......@@ -2064,8 +2064,8 @@ public class ChromeTabbedActivity
}
private boolean isFullscreenVideoPlaying() {
View view = ContentVideoView.getContentVideoView();
return view != null && view.getContext() == this;
ContentVideoView view = ContentVideoView.getInstance();
return view != null && view.createdWithContext(this);
}
@Override
......
......@@ -21,7 +21,7 @@ import org.chromium.components.content_view.ContentView;
import org.chromium.components.navigation_interception.InterceptNavigationDelegate;
import org.chromium.components.navigation_interception.NavigationParams;
import org.chromium.components.web_contents_delegate_android.WebContentsDelegateAndroid;
import org.chromium.content.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.ContentViewCore;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.browser.RenderCoordinates;
......
......@@ -27,7 +27,7 @@ import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver;
import org.chromium.chrome.browser.widget.ControlContainer;
import org.chromium.content.browser.ContentVideoView;
import org.chromium.content_public.browser.ContentVideoView;
import org.chromium.content_public.common.BrowserControlsState;
import java.lang.annotation.Retention;
......@@ -274,7 +274,7 @@ public class ChromeFullscreenManager
onWindowFocusChanged(hasFocus);
// {@link ContentVideoView#getContentVideoView} requires native to have been initialized.
if (!LibraryLoader.isInitialized()) return;
ContentVideoView videoView = ContentVideoView.getContentVideoView();
ContentVideoView videoView = ContentVideoView.getInstance();
if (videoView != null) {
videoView.onFullscreenWindowFocused();
}
......
......@@ -45,7 +45,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelUtils;
import org.chromium.chrome.browser.tabmodel.TabWindowManager;
import org.chromium.components.web_contents_delegate_android.WebContentsDelegateAndroid;
import org.chromium.content.browser.ActivityContentVideoViewEmbedder;
import org.chromium.content.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.GestureListenerManager;
import org.chromium.content_public.browser.InvalidateTypes;
import org.chromium.content_public.browser.WebContents;
......
......@@ -23,8 +23,8 @@ import org.chromium.chromecast.base.ScopeFactories;
import org.chromium.chromecast.base.ScopeFactory;
import org.chromium.chromecast.base.Unit;
import org.chromium.content.browser.ActivityContentVideoViewEmbedder;
import org.chromium.content.browser.ContentVideoViewEmbedder;
import org.chromium.content.browser.MediaSessionImpl;
import org.chromium.content_public.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.WebContents;
/**
......
......@@ -37,8 +37,8 @@ import org.chromium.chromecast.base.ScopeFactory;
import org.chromium.chromecast.shell.CastWebContentsSurfaceHelper.ContentVideoViewEmbedderSetter;
import org.chromium.chromecast.shell.CastWebContentsSurfaceHelper.MediaSessionGetter;
import org.chromium.chromecast.shell.CastWebContentsSurfaceHelper.StartParams;
import org.chromium.content.browser.ContentVideoViewEmbedder;
import org.chromium.content.browser.MediaSessionImpl;
import org.chromium.content_public.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.WebContents;
import java.util.ArrayList;
......
include_rules = [
"-content/public/android/java",
"+content/public/android/java/src/org/chromium/content_public",
"!content/public/android/java/src/org/chromium/content/browser/ContentVideoViewEmbedder.java",
"+ui/android/java",
]
......@@ -8,7 +8,7 @@ import android.view.KeyEvent;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.content.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.common.ResourceRequestBody;
......
......@@ -6,7 +6,7 @@
#include "base/metrics/histogram_macros.h"
#include "content/public/browser/web_contents.h"
#include "jni/ContentVideoView_jni.h"
#include "jni/ContentVideoViewImpl_jni.h"
using base::android::AttachCurrentThread;
using base::android::JavaParamRef;
......@@ -24,7 +24,7 @@ ContentVideoView* g_content_video_view = NULL;
} // namespace
static ScopedJavaLocalRef<jobject>
JNI_ContentVideoView_GetSingletonJavaContentVideoView(
JNI_ContentVideoViewImpl_GetSingletonJavaContentVideoView(
JNIEnv* env,
const JavaParamRef<jclass>&) {
if (g_content_video_view)
......@@ -53,8 +53,8 @@ ContentVideoView::~ContentVideoView() {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jobject> content_video_view = GetJavaObject(env);
if (!content_video_view.is_null()) {
Java_ContentVideoView_destroyContentVideoView(env, content_video_view,
true);
Java_ContentVideoViewImpl_destroyContentVideoView(env, content_video_view,
true);
j_content_video_view_.reset();
}
g_content_video_view = NULL;
......@@ -64,7 +64,7 @@ void ContentVideoView::OpenVideo() {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jobject> content_video_view = GetJavaObject(env);
if (!content_video_view.is_null()) {
Java_ContentVideoView_openVideo(env, content_video_view);
Java_ContentVideoViewImpl_openVideo(env, content_video_view);
}
}
......@@ -72,8 +72,8 @@ void ContentVideoView::OnMediaPlayerError(int error_type) {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jobject> content_video_view = GetJavaObject(env);
if (!content_video_view.is_null()) {
Java_ContentVideoView_onMediaPlayerError(env, content_video_view,
error_type);
Java_ContentVideoViewImpl_onMediaPlayerError(env, content_video_view,
error_type);
}
}
......@@ -81,8 +81,8 @@ void ContentVideoView::OnVideoSizeChanged(int width, int height) {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jobject> content_video_view = GetJavaObject(env);
if (!content_video_view.is_null()) {
Java_ContentVideoView_onVideoSizeChanged(env, content_video_view, width,
height);
Java_ContentVideoViewImpl_onVideoSizeChanged(env, content_video_view, width,
height);
}
}
......@@ -91,8 +91,8 @@ void ContentVideoView::ExitFullscreen() {
ScopedJavaLocalRef<jobject> content_video_view = GetJavaObject(env);
bool release_media_player = false;
if (!content_video_view.is_null())
Java_ContentVideoView_exitFullscreen(env, content_video_view,
release_media_player);
Java_ContentVideoViewImpl_exitFullscreen(env, content_video_view,
release_media_player);
}
ScopedJavaLocalRef<jobject> ContentVideoView::GetJavaObject(JNIEnv* env) {
......@@ -163,7 +163,7 @@ JavaObjectWeakGlobalRef ContentVideoView::CreateJavaObject(
return JavaObjectWeakGlobalRef(env, nullptr);
return JavaObjectWeakGlobalRef(
env, Java_ContentVideoView_createContentVideoView(
env, Java_ContentVideoViewImpl_createContentVideoView(
env, j_web_contents, j_content_video_view_embedder,
reinterpret_cast<intptr_t>(this), video_natural_size.width(),
video_natural_size.height())
......
......@@ -119,8 +119,7 @@ android_library("content_java") {
"java/src/org/chromium/content/browser/ContentFeatureList.java",
"java/src/org/chromium/content/browser/ContentNfcDelegate.java",
"java/src/org/chromium/content/browser/ContentUiEventHandler.java",
"java/src/org/chromium/content/browser/ContentVideoView.java",
"java/src/org/chromium/content/browser/ContentVideoViewEmbedder.java",
"java/src/org/chromium/content/browser/ContentVideoViewImpl.java",
"java/src/org/chromium/content/browser/ContentViewCoreImpl.java",
"java/src/org/chromium/content/browser/ContentViewRenderView.java",
"java/src/org/chromium/content/browser/ContentViewStaticsImpl.java",
......@@ -233,6 +232,8 @@ android_library("content_java") {
"java/src/org/chromium/content_public/browser/ChildProcessUtils.java",
"java/src/org/chromium/content_public/browser/ContentViewStatics.java",
"java/src/org/chromium/content_public/browser/InputMethodManagerWrapper.java",
"java/src/org/chromium/content_public/browser/ContentVideoView.java",
"java/src/org/chromium/content_public/browser/ContentVideoViewEmbedder.java",
"java/src/org/chromium/content_public/browser/ContentViewCore.java",
"java/src/org/chromium/content_public/browser/GestureListenerManager.java",
"java/src/org/chromium/content_public/browser/GestureStateListener.java",
......@@ -358,7 +359,7 @@ generate_jni("content_jni_headers") {
"java/src/org/chromium/content/browser/ContentFeatureList.java",
"java/src/org/chromium/content/browser/ContentNfcDelegate.java",
"java/src/org/chromium/content/browser/ContentUiEventHandler.java",
"java/src/org/chromium/content/browser/ContentVideoView.java",
"java/src/org/chromium/content/browser/ContentVideoViewImpl.java",
"java/src/org/chromium/content/browser/ContentViewCoreImpl.java",
"java/src/org/chromium/content/browser/ContentViewRenderView.java",
"java/src/org/chromium/content/browser/ContentViewStaticsImpl.java",
......
......@@ -13,6 +13,8 @@ import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.FrameLayout;
import org.chromium.content_public.browser.ContentVideoViewEmbedder;
/**
* Uses an existing Activity to handle displaying video in full screen.
*/
......
......@@ -23,6 +23,8 @@ import org.chromium.base.Log;
import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.content_public.browser.ContentVideoView;
import org.chromium.content_public.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.WindowAndroid;
......@@ -30,10 +32,9 @@ import org.chromium.ui.base.WindowAndroid;
* A fullscreen view for accelerated video playback using surface view.
*/
@JNINamespace("content")
public class ContentVideoView extends FrameLayout
implements SurfaceHolder.Callback {
private static final String TAG = "cr.ContentVideoView";
public class ContentVideoViewImpl
extends FrameLayout implements ContentVideoView, SurfaceHolder.Callback {
private static final String TAG = "cr_ContentVideoView";
/**
* Keep these error codes in sync with the code we defined in
......@@ -73,7 +74,6 @@ public class ContentVideoView extends FrameLayout
private long mPlaybackStartTime;
private class VideoSurfaceView extends SurfaceView {
public VideoSurfaceView(Context context) {
super(context);
}
......@@ -87,9 +87,9 @@ public class ContentVideoView extends FrameLayout
if (mVideoWidth > 0 && mVideoHeight > 0) {
width = getDefaultSize(mVideoWidth, widthMeasureSpec);
height = getDefaultSize(mVideoHeight, heightMeasureSpec);
if (mVideoWidth * height > width * mVideoHeight) {
if (mVideoWidth * height > width * mVideoHeight) {
height = width * mVideoHeight / mVideoWidth;
} else if (mVideoWidth * height < width * mVideoHeight) {
} else if (mVideoWidth * height < width * mVideoHeight) {
width = height * mVideoWidth / mVideoHeight;
}
}
......@@ -103,8 +103,7 @@ public class ContentVideoView extends FrameLayout
} else {
// if user quickly switched the orientation back and force, don't
// count it in UMA.
if (!mPossibleAccidentalChange
&& isOrientationPortrait() == mInitialOrientation
if (!mPossibleAccidentalChange && isOrientationPortrait() == mInitialOrientation
&& System.currentTimeMillis() - mOrientationChangedTime < 5000) {
mPossibleAccidentalChange = true;
}
......@@ -127,7 +126,7 @@ public class ContentVideoView extends FrameLayout
@Override
public void setSystemUiVisibility(boolean enterFullscreen) {}
};
};
private final Runnable mExitFullscreenRunnable = new Runnable() {
@Override
......@@ -136,7 +135,7 @@ public class ContentVideoView extends FrameLayout
}
};
private ContentVideoView(Context context, long nativeContentVideoView,
private ContentVideoViewImpl(Context context, long nativeContentVideoView,
ContentVideoViewEmbedder embedder, int videoWidth, int videoHeight) {
super(context);
mNativeContentVideoView = nativeContentVideoView;
......@@ -160,24 +159,21 @@ public class ContentVideoView extends FrameLayout
if (mPlaybackErrorText != null) return;
mPlaybackErrorText = context.getString(
org.chromium.content.R.string.media_player_error_text_invalid_progressive_playback);
mUnknownErrorText = context.getString(
org.chromium.content.R.string.media_player_error_text_unknown);
mErrorButton = context.getString(
org.chromium.content.R.string.media_player_error_button);
mErrorTitle = context.getString(
org.chromium.content.R.string.media_player_error_title);
mUnknownErrorText =
context.getString(org.chromium.content.R.string.media_player_error_text_unknown);
mErrorButton = context.getString(org.chromium.content.R.string.media_player_error_button);
mErrorTitle = context.getString(org.chromium.content.R.string.media_player_error_title);
}
private void showContentVideoView() {
mVideoSurfaceView.getHolder().addCallback(this);
addView(mVideoSurfaceView, new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
Gravity.CENTER));
addView(mVideoSurfaceView,
new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER));
}
@CalledByNative
public void onMediaPlayerError(int errorType) {
private void onMediaPlayerError(int errorType) {
Log.d(TAG, "OnMediaPlayerError: %d", errorType);
if (mCurrentState == STATE_ERROR) {
return;
......@@ -246,8 +242,9 @@ public class ContentVideoView extends FrameLayout
if (mUmaRecorded) return;
try {
if (Settings.System.getInt(getContext().getContentResolver(),
Settings.System.ACCELEROMETER_ROTATION) == 0) {
if (Settings.System.getInt(
getContext().getContentResolver(), Settings.System.ACCELEROMETER_ROTATION)
== 0) {
return;
}
} catch (Settings.SettingNotFoundException e) {
......@@ -262,8 +259,7 @@ public class ContentVideoView extends FrameLayout
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}
@Override
public void surfaceCreated(SurfaceHolder holder) {
......@@ -292,17 +288,17 @@ public class ContentVideoView extends FrameLayout
}
/**
* Creates ContentVideoView. The videoWidth and videoHeight parameters designate
* Creates ContentVideoViewImpl. The videoWidth and videoHeight parameters designate
* the video frame size if it is known at the time of this call, or should be 0.
* ContentVideoView assumes that zero size means video has not been loaded yet.
* ContentVideoViewImpl assumes that zero size means video has not been loaded yet.
*/
@CalledByNative
private static ContentVideoView createContentVideoView(WebContents webContents,
private static ContentVideoViewImpl createContentVideoView(WebContents webContents,
ContentVideoViewEmbedder embedder, long nativeContentVideoView, int videoWidth,
int videoHeight) {
ThreadUtils.assertOnUiThread();
Context context = ContentViewCoreImpl.fromWebContents(webContents).getContext();
ContentVideoView videoView = new ContentVideoView(
ContentVideoViewImpl videoView = new ContentVideoViewImpl(
context, nativeContentVideoView, embedder, videoWidth, videoHeight);
return videoView;
}
......@@ -312,7 +308,13 @@ public class ContentVideoView extends FrameLayout
mVideoSurfaceView = null;
}
@Override
public boolean createdWithContext(Context context) {
return getContext() == context;
}
@CalledByNative
@Override
public void exitFullscreen(boolean releaseMediaPlayer) {
if (mNativeContentVideoView != 0) {
destroyContentVideoView(false);
......@@ -332,9 +334,7 @@ public class ContentVideoView extends FrameLayout
}
}
/**
* Called when the fullscreen window gets focused.
*/
@Override
public void onFullscreenWindowFocused() {
mEmbedder.setSystemUiVisibility(true);
}
......@@ -357,7 +357,7 @@ public class ContentVideoView extends FrameLayout
}
}
public static ContentVideoView getContentVideoView() {
public static ContentVideoViewImpl getInstance() {
return nativeGetSingletonJavaContentVideoView();
}
......@@ -370,14 +370,13 @@ public class ContentVideoView extends FrameLayout
return outputSize.x <= outputSize.y;
}
private static native ContentVideoView nativeGetSingletonJavaContentVideoView();
private static native ContentVideoViewImpl nativeGetSingletonJavaContentVideoView();
private native void nativeDidExitFullscreen(
long nativeContentVideoView, boolean releaseMediaPlayer);
private native void nativeSetSurface(long nativeContentVideoView, Surface surface);
private native void nativeRecordFullscreenPlayback(
long nativeContentVideoView, boolean isVideoPortrait, boolean isOrientationPortrait);
private native void nativeRecordExitFullscreenPlayback(
long nativeContentVideoView, boolean isOrientationPortrait,
long playbackDurationBeforeOrientationChange,
private native void nativeRecordExitFullscreenPlayback(long nativeContentVideoView,
boolean isOrientationPortrait, long playbackDurationBeforeOrientationChange,
long playbackDurationAfterOrientationChange);
}
// Copyright 2018 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.content_public.browser;
import android.content.Context;
import org.chromium.content.browser.ContentVideoViewImpl;
/**
* Interface for a fullscreen video playback using surface view.
*/
public interface ContentVideoView {
/**
* @return {@link ContentVideoView} instance available for embedder.
*/
public static ContentVideoView getInstance() {
return ContentVideoViewImpl.getInstance();
}
/**
* Checks if the content video view was created with the given context.
* @param context {@link Context} to compare with.
* @return {@code true} if the given context was used to create the video view.
*/
boolean createdWithContext(Context context);
/**
* Exit from fullscreen mode.
* @param releaseMediaPlayer Set to {@code true} to release media player instance.
*/
void exitFullscreen(boolean releaseMediaPlayer);
/**
* Called when the fullscreen window gets focused.
*/
void onFullscreenWindowFocused();
}
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.content.browser;
package org.chromium.content_public.browser;
import android.view.View;
......
......@@ -29,10 +29,10 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.components.content_view.ContentView;
import org.chromium.content.browser.ActivityContentVideoViewEmbedder;
import org.chromium.content.browser.ContentVideoViewEmbedder;
import org.chromium.content.browser.ContentViewCoreImpl;
import org.chromium.content.browser.ContentViewRenderView;
import org.chromium.content_public.browser.ActionModeCallbackHelper;
import org.chromium.content_public.browser.ContentVideoViewEmbedder;
import org.chromium.content_public.browser.ContentViewCore;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.browser.NavigationController;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment