Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit 5ea74c8

Browse files
authored
Avoid exiting fullscreen if not in it. (#3224)
1 parent 91b6b77 commit 5ea74c8

File tree

1 file changed

+28
-33
lines changed

1 file changed

+28
-33
lines changed

app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/NavigationBarWidget.java

Lines changed: 28 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,6 @@ public void detachFromWindow() {
494494
mTrackingDelegate.removeListener(mTrackingListener);
495495

496496
if (mViewModel != null) {
497-
mViewModel.getIsFullscreen().removeObserver(mIsFullscreenObserver);
498497
mViewModel.getIsActiveWindow().removeObserver(mIsActiveWindowObserver);
499498
mViewModel.getIsPopUpBlocked().removeObserver(mIsPopUpBlockedListener);
500499
mViewModel = null;
@@ -520,7 +519,6 @@ public void attachToWindow(@NonNull WindowWidget aWindow) {
520519

521520
mBinding.setViewmodel(mViewModel);
522521

523-
mViewModel.getIsFullscreen().observeForever( mIsFullscreenObserver);
524522
mViewModel.getIsActiveWindow().observeForever(mIsActiveWindowObserver);
525523
mViewModel.getIsPopUpBlocked().observeForever(mIsPopUpBlockedListener);
526524
mBinding.navigationBarNavigation.urlBar.attachToWindow(mAttachedWindow);
@@ -566,6 +564,33 @@ public void onSessionChanged(@NonNull Session aOldSession, @NonNull Session aSes
566564
exitFullScreenMode();
567565
}
568566

567+
@Override
568+
public void onFullScreen(@NonNull WindowWidget aWindow, boolean aFullScreen) {
569+
if (aFullScreen) {
570+
enterFullScreenMode();
571+
572+
if (mAttachedWindow.isResizing()) {
573+
exitResizeMode(ResizeAction.KEEP_SIZE);
574+
}
575+
AtomicBoolean autoEnter = new AtomicBoolean(false);
576+
mAutoSelectedProjection = VideoProjectionMenuWidget.getAutomaticProjection(getSession().getCurrentUri(), autoEnter);
577+
if (mAutoSelectedProjection != VIDEO_PROJECTION_NONE && autoEnter.get()) {
578+
mViewModel.setAutoEnteredVRVideo(true);
579+
postDelayed(() -> enterVRVideo(mAutoSelectedProjection), 300);
580+
} else {
581+
mViewModel.setAutoEnteredVRVideo(false);
582+
if (mProjectionMenu != null) {
583+
mProjectionMenu.setSelectedProjection(mAutoSelectedProjection);
584+
}
585+
}
586+
} else {
587+
if (mViewModel.getIsInVRVideo().getValue().get()) {
588+
exitVRVideo();
589+
}
590+
exitFullScreenMode();
591+
}
592+
}
593+
569594
@Override
570595
protected void onDraw(Canvas canvas) {
571596
super.onDraw(canvas);
@@ -607,7 +632,7 @@ private void enterFullScreenMode() {
607632
}
608633

609634
private void exitFullScreenMode() {
610-
if (mAttachedWindow == null) {
635+
if (mAttachedWindow == null || !mAttachedWindow.isFullScreen()) {
611636
return;
612637
}
613638

@@ -818,36 +843,6 @@ public void onLocationChange(@NonNull GeckoSession geckoSession, @Nullable Strin
818843

819844
// Content delegate
820845

821-
private Observer<ObservableBoolean> mIsFullscreenObserver = isFullScreen -> {
822-
if (!mIsWindowAttached) {
823-
return;
824-
}
825-
826-
if (isFullScreen.get()) {
827-
enterFullScreenMode();
828-
829-
if (mAttachedWindow.isResizing()) {
830-
exitResizeMode(ResizeAction.KEEP_SIZE);
831-
}
832-
AtomicBoolean autoEnter = new AtomicBoolean(false);
833-
mAutoSelectedProjection = VideoProjectionMenuWidget.getAutomaticProjection(getSession().getCurrentUri(), autoEnter);
834-
if (mAutoSelectedProjection != VIDEO_PROJECTION_NONE && autoEnter.get()) {
835-
mViewModel.setAutoEnteredVRVideo(true);
836-
postDelayed(() -> enterVRVideo(mAutoSelectedProjection), 300);
837-
} else {
838-
mViewModel.setAutoEnteredVRVideo(false);
839-
if (mProjectionMenu != null) {
840-
mProjectionMenu.setSelectedProjection(mAutoSelectedProjection);
841-
}
842-
}
843-
} else {
844-
if (mViewModel.getIsInVRVideo().getValue().get()) {
845-
exitVRVideo();
846-
}
847-
exitFullScreenMode();
848-
}
849-
};
850-
851846
private Observer<ObservableBoolean> mIsActiveWindowObserver = aIsActiveWindow -> updateTrackingProtection();
852847

853848
private Observer<ObservableBoolean> mIsPopUpBlockedListener = observableBoolean -> {

0 commit comments

Comments
 (0)