From 395d6f20d544d43186ea53e0ab3fa600252c1da5 Mon Sep 17 00:00:00 2001 From: Sawyer Blatz Date: Fri, 5 Apr 2019 13:11:05 -0700 Subject: [PATCH] Fixes #1361: Adds new tab when selecting history or bookmark items (#1363) --- .../main/java/org/mozilla/fenix/HomeActivity.kt | 5 ++++- .../fenix/library/bookmarks/BookmarkFragment.kt | 15 +++------------ .../fenix/library/history/HistoryFragment.kt | 12 +++--------- app/src/main/res/navigation/nav_graph.xml | 4 +++- 4 files changed, 13 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 12f184a4f..c26975de1 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -29,6 +29,7 @@ import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.components import org.mozilla.fenix.home.HomeFragmentDirections import org.mozilla.fenix.library.bookmarks.BookmarkFragmentDirections +import org.mozilla.fenix.library.history.HistoryFragmentDirections import org.mozilla.fenix.search.SearchFragmentDirections import org.mozilla.fenix.settings.SettingsFragmentDirections @@ -168,6 +169,8 @@ open class HomeActivity : AppCompatActivity() { SettingsFragmentDirections.actionSettingsFragmentToBrowserFragment(sessionId) BrowserDirection.FromBookmarks -> BookmarkFragmentDirections.actionBookmarkFragmentToBrowserFragment(sessionId) + BrowserDirection.FromHistory -> + HistoryFragmentDirections.actionHistoryFragmentToBrowserFragment(sessionId) } navHost.navController.navigate(directions) @@ -204,5 +207,5 @@ open class HomeActivity : AppCompatActivity() { } enum class BrowserDirection { - FromGlobal, FromHome, FromSearch, FromSettings, FromBookmarks + FromGlobal, FromHome, FromSearch, FromSettings, FromBookmarks, FromHistory } diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt index 3b263bdd6..00b1a1b78 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt @@ -25,6 +25,7 @@ import mozilla.appservices.places.BookmarkRoot import mozilla.components.concept.storage.BookmarkNode import mozilla.components.concept.storage.BookmarkNodeType import mozilla.components.support.base.feature.BackHandler +import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.BrowsingModeManager import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R @@ -80,18 +81,8 @@ class BookmarkFragment : Fragment(), CoroutineScope, BackHandler { is BookmarkAction.Open -> { if (it.item.type == BookmarkNodeType.ITEM) { it.item.url?.let { url -> - val activity = requireActivity() as HomeActivity - Navigation.findNavController(activity, R.id.container) - .navigate(BookmarkFragmentDirections.actionBookmarkFragmentToBrowserFragment(null)) - if (activity.browsingModeManager.isPrivate) { - requireComponents.useCases.tabsUseCases.addPrivateTab.invoke(url) - activity.browsingModeManager.mode = - BrowsingModeManager.Mode.Private - } else { - requireComponents.useCases.sessionUseCases.loadUrl.invoke(url) - activity.browsingModeManager.mode = - BrowsingModeManager.Mode.Normal - } + (activity as HomeActivity) + .openToBrowserAndLoad(url, from = BrowserDirection.FromBookmarks) } } } diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt index 2b97f2e3f..28d79f942 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt @@ -13,7 +13,6 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment -import androidx.navigation.NavOptions import androidx.navigation.Navigation import kotlinx.android.synthetic.main.fragment_history.view.* import kotlinx.coroutines.CoroutineScope @@ -23,6 +22,8 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.coroutineScope import mozilla.components.concept.storage.VisitType import mozilla.components.support.base.feature.BackHandler +import org.mozilla.fenix.BrowserDirection +import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.utils.ItsNotBrokenSnack import org.mozilla.fenix.R import org.mozilla.fenix.ext.requireComponents @@ -64,14 +65,7 @@ class HistoryFragment : Fragment(), CoroutineScope, BackHandler { } private fun selectItem(item: HistoryItem) { - Navigation.findNavController(requireActivity(), R.id.container).apply { - navigate( - HistoryFragmentDirections.actionGlobalBrowser(null), - NavOptions.Builder().setPopUpTo(R.id.homeFragment, false).build() - ) - } - - requireComponents.useCases.sessionUseCases.loadUrl.invoke(item.url) + (activity as HomeActivity).openToBrowserAndLoad(item.url, from = BrowserDirection.FromHistory) } override fun onDestroy() { diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index b78cbf8e0..a05a5b916 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -98,7 +98,9 @@ android:id="@+id/historyFragment" android:name="org.mozilla.fenix.library.history.HistoryFragment" android:label="@string/library_history" - tools:layout="@layout/fragment_history" /> + tools:layout="@layout/fragment_history" > + +