diff --git a/app/src/common/shared/org/mozilla/vrbrowser/browser/SessionStore.java b/app/src/common/shared/org/mozilla/vrbrowser/browser/SessionStore.java index 01830c2fe..eb5e11758 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/browser/SessionStore.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/browser/SessionStore.java @@ -657,6 +657,19 @@ public boolean isInFullScreen() { return false; } + public boolean isInFullScreen(GeckoSession aSession) { + Integer sessionId = getSessionId(aSession); + if (sessionId == null) { + return false; + } + State state = mSessions.get(sessionId); + if (state != null) { + return state.mFullScreen; + } + + return false; + } + public void exitFullScreen() { if (mCurrentSession == null) { return; diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/NavigationBarWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/NavigationBarWidget.java index 3b6095a0e..686b650b1 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/NavigationBarWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/NavigationBarWidget.java @@ -729,6 +729,13 @@ public void onCurrentSessionChange(GeckoSession aSession, int aId) { for (CustomUIButton button : mButtons) { button.setPrivateMode(isPrivateMode); } + boolean isFullScreen = SessionStore.get().isInFullScreen(aSession); + if (isFullScreen && !mIsInFullScreenMode) { + enterFullScreenMode(); + } else if (!isFullScreen && mIsInFullScreenMode) { + exitVRVideo(); + exitFullScreenMode(); + } } // NavigationURLBarDelegate diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/TopBarWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/TopBarWidget.java index 32f44a5ea..c28720aa1 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/TopBarWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/TopBarWidget.java @@ -45,7 +45,6 @@ private void initialize(Context aContext) { if (mAudio != null) { mAudio.playSound(AudioEngine.Sound.CLICK); } - SessionStore.get().exitPrivateMode(); }); @@ -60,7 +59,6 @@ protected void initializeWidgetPlacement(WidgetPlacement aPlacement) { Context context = getContext(); aPlacement.width = WidgetPlacement.dpDimension(context, R.dimen.top_bar_width); aPlacement.height = WidgetPlacement.dpDimension(context, R.dimen.top_bar_height); - // FIXME: Something wrong with the DPI ratio? Revert to top_bar_world_width when fixed aPlacement.worldWidth = WidgetPlacement.floatDimension(getContext(), R.dimen.window_world_width) * aPlacement.width/getWorldWidth(); aPlacement.translationY = WidgetPlacement.unitFromMeters(context, R.dimen.top_bar_world_y); aPlacement.anchorX = 0.5f; @@ -104,6 +102,7 @@ public void onCurrentSessionChange(GeckoSession aSession, int aId) { mCloseButton.setPrivateMode(isPrivateMode); } + @Override public void setVisible(boolean isVisible) { getPlacement().visible = isVisible; @@ -116,19 +115,8 @@ public void setVisible(boolean isVisible) { // WidgetManagerDelegate.UpdateListener @Override public void onWidgetUpdate(Widget aWidget) { - if (aWidget != mBrowserWidget) { - return; + if (aWidget == mBrowserWidget && isVisible()) { + mWidgetManager.updateWidget(this); } - - // Browser window may have been resized, adjust the navigation bar - float targetWidth = aWidget.getPlacement().worldWidth; - // FIXME: Something wrong with the DPI ratio? Revert to top_bar_world_width when fixed - float defaultWidth = WidgetPlacement.floatDimension(getContext(), R.dimen.window_world_width) * 40/720; - targetWidth = Math.max(defaultWidth, targetWidth); - - float ratio = targetWidth / defaultWidth; - mWidgetPlacement.worldWidth = targetWidth; - mWidgetPlacement.width = (int) (WidgetPlacement.dpDimension(getContext(), R.dimen.top_bar_width) * ratio); - mWidgetManager.updateWidget(this); } } diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/UIWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/UIWidget.java index a15ca88ea..88b260858 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/UIWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/UIWidget.java @@ -66,10 +66,10 @@ private void initialize() { mWidgetManager = (WidgetManagerDelegate) getContext(); mWidgetPlacement = new WidgetPlacement(getContext()); mHandle = mWidgetManager.newWidgetHandle(); + mWorldWidth = WidgetPlacement.pixelDimension(getContext(), R.dimen.world_width); initializeWidgetPlacement(mWidgetPlacement); mInitialWidth = mWidgetPlacement.width; mInitialHeight = mWidgetPlacement.height; - mWorldWidth = WidgetPlacement.pixelDimension(getContext(), R.dimen.world_width); // Transparent border useful for TimeWarp Layers and better aliasing. final float scale = getResources().getDisplayMetrics().density; int padding_px = (int) (mBorderWidth * scale + 0.5f);