From 9114849e46caf2a6a3e1613c53e54c65b8aa4041 Mon Sep 17 00:00:00 2001 From: haanhvu Date: Thu, 6 Feb 2025 22:29:16 +0700 Subject: [PATCH] Keep fullscreen in hamburger menu when exiting fullscreen video --- .../igalia/wolvic/ui/viewmodel/WindowViewModel.java | 11 +++++++++++ .../igalia/wolvic/ui/widgets/NavigationBarWidget.java | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/app/src/common/shared/com/igalia/wolvic/ui/viewmodel/WindowViewModel.java b/app/src/common/shared/com/igalia/wolvic/ui/viewmodel/WindowViewModel.java index d707cd9393..a156dd3b4e 100644 --- a/app/src/common/shared/com/igalia/wolvic/ui/viewmodel/WindowViewModel.java +++ b/app/src/common/shared/com/igalia/wolvic/ui/viewmodel/WindowViewModel.java @@ -75,6 +75,7 @@ public class WindowViewModel extends AndroidViewModel { private MediatorLiveData isUrlBarIconsVisible; private MutableLiveData mWidth; private MutableLiveData mHeight; + private MutableLiveData keepFullscreenInHamburgerMenu; public WindowViewModel(Application application) { super(application); @@ -183,6 +184,7 @@ public WindowViewModel(Application application) { mWidth = new MutableLiveData<>(new ObservableInt()); mHeight = new MutableLiveData<>(new ObservableInt()); + keepFullscreenInHamburgerMenu = new MutableLiveData<>(new ObservableBoolean(false)); } private Observer mIsTopBarVisibleObserver = new Observer() { @@ -353,6 +355,7 @@ public void refresh() { isDrmUsed.postValue(isDrmUsed.getValue()); mWidth.postValue(mWidth.getValue()); mHeight.postValue(mHeight.getValue()); + keepFullscreenInHamburgerMenu.postValue(keepFullscreenInHamburgerMenu.getValue()); } @NonNull @@ -444,6 +447,14 @@ public void setIsWindowVisible(boolean isWindowVisible) { this.isWindowVisible.postValue(new ObservableBoolean(isWindowVisible)); } + public MutableLiveData getKeepFullscreenInHamburgerMenu() { + return keepFullscreenInHamburgerMenu; + } + + public void setKeepFullscreenInHamburgerMenu(boolean keepFullscreenInHamburgerMenu) { + this.keepFullscreenInHamburgerMenu.postValue(new ObservableBoolean(keepFullscreenInHamburgerMenu)); + } + @NonNull public MutableLiveData getPlacement() { return placement; diff --git a/app/src/common/shared/com/igalia/wolvic/ui/widgets/NavigationBarWidget.java b/app/src/common/shared/com/igalia/wolvic/ui/widgets/NavigationBarWidget.java index 84ed72d88e..94a102d2a4 100644 --- a/app/src/common/shared/com/igalia/wolvic/ui/widgets/NavigationBarWidget.java +++ b/app/src/common/shared/com/igalia/wolvic/ui/widgets/NavigationBarWidget.java @@ -365,6 +365,13 @@ private void updateUI() { if (mAttachedWindow != null) { mAttachedWindow.setIsFullScreen(false); } + if (mViewModel.getKeepFullscreenInHamburgerMenu().getValue().get()) { + Log.e("2dFullscreenPR", "Reached"); + postDelayed(() -> { + mAttachedWindow.setIsFullScreen(true); + }, 2000); + mViewModel.setKeepFullscreenInHamburgerMenu(false); + } if (mAudio != null) { mAudio.playSound(AudioEngine.Sound.CLICK); } @@ -1350,6 +1357,7 @@ public void onResize() { @Override public void onFullScreen() { mAttachedWindow.setIsFullScreen(true); + mViewModel.setKeepFullscreenInHamburgerMenu(true); } @Override