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

Commit f08ecc4

Browse files
MortimerGorobluemarvin
authored andcommitted
If resize is cancelled, resize back to the screen size it had before entering resize mode (#1411)
1 parent ed251cf commit f08ecc4

1 file changed

Lines changed: 20 additions & 9 deletions

File tree

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

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public class NavigationBarWidget extends UIWidget implements GeckoSession.Naviga
6666
private boolean mIsResizing;
6767
private boolean mIsInVRVideo;
6868
private boolean mAutoEnteredVRVideo;
69-
private WidgetPlacement mSizeBeforeFullScreen;
69+
private WidgetPlacement mPlacementBeforeResize;
7070
private Runnable mResizeBackHandler;
7171
private Runnable mFullScreenBackHandler;
7272
private Runnable mVRVideoBackHandler;
@@ -126,10 +126,10 @@ private void initialize(Context aContext) {
126126
mBrightnessButton = findViewById(R.id.brightnessButton);
127127
mFullScreenResizeButton = findViewById(R.id.fullScreenResizeEnterButton);
128128
mProjectionButton = findViewById(R.id.projectionButton);
129-
mSizeBeforeFullScreen = new WidgetPlacement(aContext);
129+
mPlacementBeforeResize = new WidgetPlacement(aContext);
130130

131131

132-
mResizeBackHandler = () -> exitResizeMode(true);
132+
mResizeBackHandler = () -> exitResizeMode(ResizeAction.RESTORE_SIZE);
133133

134134
mFullScreenBackHandler = this::exitFullScreenMode;
135135
mVRVideoBackHandler = new Runnable() {
@@ -207,7 +207,7 @@ else if (SessionStore.get().canUnstackSession())
207207

208208
mResizeExitButton.setOnClickListener(view -> {
209209
view.requestFocusFromTouch();
210-
exitResizeMode(true);
210+
exitResizeMode(ResizeAction.KEEP_SIZE);
211211
if (mAudio != null) {
212212
mAudio.playSound(AudioEngine.Sound.CLICK);
213213
}
@@ -373,7 +373,7 @@ public void setBrowserWidget(WindowWidget aWidget) {
373373
}
374374

375375
private void setFullScreenSize() {
376-
mSizeBeforeFullScreen.copyFrom(mWindowWidget.getPlacement());
376+
mPlacementBeforeResize.copyFrom(mWindowWidget.getPlacement());
377377
// Set browser fullscreen size
378378
float aspect = SettingsStore.getInstance(getContext()).getWindowAspect();
379379
Media media = SessionStore.get().getFullScreenVideo();
@@ -437,7 +437,7 @@ private void exitFullScreenMode() {
437437
}
438438
}, 50);
439439

440-
mWindowWidget.getPlacement().copyFrom(mSizeBeforeFullScreen);
440+
mWindowWidget.getPlacement().copyFrom(mPlacementBeforeResize);
441441
mWidgetManager.updateWidget(mWindowWidget);
442442
mWindowWidget.setSaveResizeChanges(true);
443443

@@ -459,6 +459,7 @@ private void enterResizeMode() {
459459
return;
460460
}
461461
mIsResizing = true;
462+
mPlacementBeforeResize.copyFrom(mWindowWidget.getPlacement());
462463
startWidgetResize();
463464
AnimationHelper.fadeIn(mResizeModeContainer, AnimationHelper.FADE_ANIMATION_DURATION, null);
464465
if (mIsInFullScreenMode) {
@@ -471,10 +472,20 @@ private void enterResizeMode() {
471472
closeFloatingMenus();
472473
}
473474

474-
private void exitResizeMode(boolean aCommitChanges) {
475+
476+
enum ResizeAction {
477+
KEEP_SIZE,
478+
RESTORE_SIZE
479+
}
480+
481+
private void exitResizeMode(ResizeAction aResizeAction) {
475482
if (!mIsResizing) {
476483
return;
477484
}
485+
if (aResizeAction == ResizeAction.RESTORE_SIZE) {
486+
mWindowWidget.getPlacement().copyFrom(mPlacementBeforeResize);
487+
mWidgetManager.updateWidget(mWindowWidget);
488+
}
478489
mIsResizing = false;
479490
finishWidgetResize();
480491
if (mIsInFullScreenMode) {
@@ -735,7 +746,7 @@ public void onFullScreen(GeckoSession session, boolean aFullScreen) {
735746
enterFullScreenMode();
736747
}
737748
if (mIsResizing) {
738-
exitResizeMode(false);
749+
exitResizeMode(ResizeAction.KEEP_SIZE);
739750
}
740751
AtomicBoolean autoEnter = new AtomicBoolean(false);
741752
mAutoSelectedProjection = VideoProjectionMenuWidget.getAutomaticProjection(SessionStore.get().getUriFromSession(session), autoEnter);
@@ -982,7 +993,7 @@ public void onBookmarksHidden() {
982993
@Override
983994
public void onBookmarksClicked() {
984995
if (mIsResizing) {
985-
exitResizeMode(false);
996+
exitResizeMode(ResizeAction.RESTORE_SIZE);
986997

987998
} else if (mIsInFullScreenMode) {
988999
exitFullScreenMode();

0 commit comments

Comments
 (0)