From a4a9222a94a0aae79c6f3f83f719cf866b61042e Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Wed, 13 Feb 2019 13:36:07 -0800 Subject: [PATCH] For #490 - Fixes navigation when selecting a history item --- app/src/main/java/org/mozilla/fenix/components/Core.kt | 8 +++++++- .../org/mozilla/fenix/library/history/HistoryFragment.kt | 9 +++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/Core.kt b/app/src/main/java/org/mozilla/fenix/components/Core.kt index 5bd5109bf..6f9d55543 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Core.kt @@ -74,7 +74,13 @@ class Core(private val context: Context) { } // There's an active bundle with a snapshot: Feed it into the SessionManager. - snapshot.await()?.let { sessionManager.restore(it) } + snapshot.await()?.let { + try { + sessionManager.restore(it) + } catch (_: IllegalArgumentException) { + return@let + } + } // Now that we have restored our previous state (if there's one) let's setup auto saving the state while // the app is used. 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 62d05b633..a34c6c352 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 @@ -14,6 +14,7 @@ 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 @@ -54,8 +55,12 @@ class HistoryFragment : Fragment(), CoroutineScope { getSafeManagedObservable() .subscribe { if (it is HistoryAction.Select) { - Navigation.findNavController(requireActivity(), R.id.container) - .popBackStack(R.id.browserFragment, false) + Navigation.findNavController(requireActivity(), R.id.container).apply { + navigate( + HistoryFragmentDirections.actionGlobalBrowser(null), + NavOptions.Builder().setPopUpTo(R.id.homeFragment, false).build() + ) + } requireComponents.useCases.sessionUseCases.loadUrl.invoke(it.item.url) }