import android.webkit.WebChromeClient;
import android.widget.FrameLayout;
-import org.chromium.base.CommandLine;
import org.chromium.content.browser.ContentVideoView;
import org.chromium.content.browser.ContentVideoViewClient;
import org.chromium.content.browser.ContentViewClient;
-import org.chromium.content.common.ContentSwitches;
/**
* ContentViewClient implementation for WebView
private class AwContentVideoViewClient implements ContentVideoViewClient {
@Override
public boolean onShowCustomView(View view) {
- WebChromeClient.CustomViewCallback cb = new WebChromeClient.CustomViewCallback() {
- @Override
- public void onCustomViewHidden() {
- ContentVideoView contentVideoView = ContentVideoView.getContentVideoView();
- if (contentVideoView != null)
- contentVideoView.exitFullscreen(false);
- }
- };
- // TODO(igsolla): remove the legacy path (kept as a fallback if things go awry).
- if (!areHtmlControlsEnabled()) {
- onShowCustomViewLegacy(view, cb);
- } else {
- onShowCustomView(view, cb);
- }
- return true;
- }
-
- private void onShowCustomViewLegacy(View view, WebChromeClient.CustomViewCallback cb) {
- mAwContentsClient.onShowCustomView(view, cb);
- }
-
- private void onShowCustomView(View view, WebChromeClient.CustomViewCallback cb) {
final FrameLayout viewGroup = new FrameLayout(mContext);
viewGroup.addView(view);
viewGroup.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
if (mAwContents.isFullScreen()) {
return;
}
- viewGroup.addView(mAwContents.enterFullScreen());
+ View fullscreenView = mAwContents.enterFullScreen();
+ if (fullscreenView != null) {
+ viewGroup.addView(fullscreenView);
+ }
}
});
+ WebChromeClient.CustomViewCallback cb = new WebChromeClient.CustomViewCallback() {
+ @Override
+ public void onCustomViewHidden() {
+ ContentVideoView contentVideoView = ContentVideoView.getContentVideoView();
+ if (contentVideoView != null)
+ contentVideoView.exitFullscreen(false);
+ }
+ };
mAwContentsClient.onShowCustomView(viewGroup, cb);
+ return true;
}
@Override
public void onDestroyContentVideoView() {
- if (areHtmlControlsEnabled()) {
- mAwContents.exitFullScreen();
- }
+ mAwContents.exitFullScreen();
mAwContentsClient.onHideCustomView();
}
return mAwSettings != null ?
mAwSettings.getBlockNetworkLoads() && URLUtil.isNetworkUrl(url) : true;
}
-
- private static boolean areHtmlControlsEnabled() {
- return !CommandLine.getInstance().hasSwitch(
- ContentSwitches.DISABLE_OVERLAY_FULLSCREEN_VIDEO_SUBTITLE);
- }
}