From 435c5666f334eef2a59b6cc28532ca4af0c62b74 Mon Sep 17 00:00:00 2001 From: Ignacio Solla Date: Mon, 17 Nov 2014 22:01:57 +0000 Subject: [WebView] Set back button to exit fullscreen. This patch fixes a regression from K to L. Tapping the back button while in fullscreen should exit fullscreen instead of the current activity. BUG:17985005 Change-Id: I7a5eb4edebb54ce1e7d6a2b578a87dd7e7de9dbf --- .../android_webview/AwContentViewClient.java | 25 +++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java b/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java index a091d775ff..cdccba91bf 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java @@ -38,6 +38,21 @@ public class AwContentViewClient extends ContentViewClient { } View fullscreenView = mAwContents.enterFullScreen(); if (fullscreenView != null) { + fullscreenView.setOnKeyListener(new View.OnKeyListener() { + @Override + public boolean onKey(View v, int keyCode, KeyEvent event) { + if (event.getKeyCode() == KeyEvent.KEYCODE_BACK + && event.getAction() == KeyEvent.ACTION_UP + && mAwContents.isFullScreen()) { + exitFullscreen(); + return true; + } + return false; + } + }); + fullscreenView.setFocusable(true); + fullscreenView.setFocusableInTouchMode(true); + fullscreenView.requestFocus(); viewGroup.addView(fullscreenView); } } @@ -45,15 +60,19 @@ public class AwContentViewClient extends ContentViewClient { WebChromeClient.CustomViewCallback cb = new WebChromeClient.CustomViewCallback() { @Override public void onCustomViewHidden() { - ContentVideoView contentVideoView = ContentVideoView.getContentVideoView(); - if (contentVideoView != null) - contentVideoView.exitFullscreen(false); + exitFullscreen(); } }; mAwContentsClient.onShowCustomView(viewGroup, cb); return true; } + private void exitFullscreen() { + ContentVideoView contentVideoView = ContentVideoView.getContentVideoView(); + if (contentVideoView != null) + contentVideoView.exitFullscreen(false); + } + @Override public void onDestroyContentVideoView() { mAwContents.exitFullScreen(); -- cgit v1.2.3