From 6d29be0eb13def8e037cd867b93f68458b92e88f Mon Sep 17 00:00:00 2001 From: haanhvu Date: Wed, 4 Dec 2024 17:20:45 +0700 Subject: [PATCH] Fix remaining bugs --- .../wolvic/ui/viewmodel/WindowViewModel.java | 4 ++-- .../wolvic/ui/widgets/NavigationBarWidget.java | 15 ++++++++++++--- .../main/res/layout/navigation_bar_navigation.xml | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) 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 c79ea8af2e3..58ab86952c3 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 @@ -143,9 +143,9 @@ public WindowViewModel(Application application) { isNativeContentVisible = new MediatorLiveData<>(); isNativeContentVisible.addSource(currentContentType, contentType -> - isNativeContentVisible.setValue(new ObservableBoolean(contentType != Windows.ContentType.WEB_CONTENT)) + isNativeContentVisible.setValue(new ObservableBoolean(contentType != Windows.ContentType.WEB_CONTENT && contentType != Windows.ContentType.NEW_TAB)) ); - isNativeContentVisible.setValue(new ObservableBoolean(currentContentType.getValue() != Windows.ContentType.WEB_CONTENT)); + isNativeContentVisible.setValue(new ObservableBoolean(currentContentType.getValue() != Windows.ContentType.WEB_CONTENT && currentContentType.getValue() != Windows.ContentType.NEW_TAB)); backToNewTabEnabled = new MutableLiveData<>(new ObservableBoolean(false)); 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 bc524d34f6f..94acd258c9c 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 @@ -244,7 +244,8 @@ private void updateUI() { if (getSession().canGoBack()) { getSession().goBack(); } else if (mViewModel.getBackToNewTabEnabled().getValue().get()) { - mAttachedWindow.showNewTab(); + //mAttachedWindow.showNewTab(); + getSession().loadUri("about://newtab"); } if (mAudio != null) { @@ -256,7 +257,15 @@ private void updateUI() { mBinding.navigationBarNavigation.forwardButton.setOnClickListener(v -> { v.requestFocusFromTouch(); if (mViewModel.getCanGoForwardFromNewTab().getValue().get()) { - getSession().loadUri(mViewModel.getUrlForwardFromNewTab().getValue().toString()); + //mAttachedWindow.hideNewTab(); + + String forwardUrl = mViewModel.getUrlForwardFromNewTab().getValue().toString(); + getSession().loadUri(forwardUrl); + + mAttachedWindow.hideNewTab(); + + mViewModel.setCurrentContentType(Windows.ContentType.WEB_CONTENT); + mViewModel.setUrl(forwardUrl); mViewModel.setCanGoForwardFromNewTab(false); } else { getSession().goForward(); @@ -264,7 +273,7 @@ private void updateUI() { if (mAudio != null) { mAudio.playSound(AudioEngine.Sound.CLICK); } - mNavigationListeners.forEach(NavigationListener::onForward); + //mNavigationListeners.forEach(NavigationListener::onForward); }); mBinding.navigationBarNavigation.reloadButton.setOnClickListener(v -> { diff --git a/app/src/main/res/layout/navigation_bar_navigation.xml b/app/src/main/res/layout/navigation_bar_navigation.xml index 580a7fde357..c4a5f7dbeea 100644 --- a/app/src/main/res/layout/navigation_bar_navigation.xml +++ b/app/src/main/res/layout/navigation_bar_navigation.xml @@ -51,7 +51,7 @@ style="?attr/navigationBarButtonStyle" android:src="@{viewmodel.isLoading ? @drawable/ic_icon_exit : @drawable/ic_icon_reload}" android:tooltipText="@{viewmodel.isLoading ? @string/stop_tooltip : @string/refresh_tooltip}" - android:enabled="@{viewmodel.currentContentType != ContentType.NEW_TAB}" + android:enabled="@{!viewmodel.isNativeContentVisible && viewmodel.currentContentType != ContentType.NEW_TAB}" app:privateMode="@{viewmodel.isPrivateSession}" />