Add API to allow plugins to lock their orientation in full-screen
This CL has companion changes in the framework and webkit.
bug: 3398386
Change-Id: Iea198ae6b74c68506e605ca8c401f199e2455416
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index e2fea16..b20e661 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -86,6 +86,7 @@
private View mCustomView;
private WebChromeClient.CustomViewCallback mCustomViewCallback;
+ private int mOriginalOrientation;
private CombinedBookmarkHistoryView mComboView;
@@ -540,7 +541,7 @@
}
@Override
- public void showCustomView(View view,
+ public void showCustomView(View view, int requestedOrientation,
WebChromeClient.CustomViewCallback callback) {
// if a view already exists then immediately terminate the new one
if (mCustomView != null) {
@@ -548,6 +549,8 @@
return;
}
+ mOriginalOrientation = mActivity.getRequestedOrientation();
+
// Add the custom view to its container.
mCustomViewContainer.addView(view, COVER_SCREEN_GRAVITY_CENTER);
mCustomView = view;
@@ -556,6 +559,7 @@
mContentView.setVisibility(View.GONE);
// Finally show the custom view container.
setStatusBarVisibility(false);
+ mActivity.setRequestedOrientation(requestedOrientation);
mCustomViewContainer.setVisibility(View.VISIBLE);
mCustomViewContainer.bringToFront();
}
@@ -573,6 +577,7 @@
mCustomViewContainer.setVisibility(View.GONE);
mCustomViewCallback.onCustomViewHidden();
// Show the content view.
+ mActivity.setRequestedOrientation(mOriginalOrientation);
setStatusBarVisibility(true);
mContentView.setVisibility(View.VISIBLE);
}