From 76e920030418e8e567ad6b53355aff253e36c800 Mon Sep 17 00:00:00 2001 From: Emily Kager Date: Tue, 10 Dec 2019 00:42:40 +0100 Subject: [PATCH] For #6922 - Check current destination is logins fragment before navigation (#6924) --- .../mozilla/fenix/settings/LoginsFragment.kt | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/LoginsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/LoginsFragment.kt index cd2ef10a55..f03ae8bae3 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/LoginsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/LoginsFragment.kt @@ -235,24 +235,33 @@ class LoginsFragment : PreferenceFragmentCompat(), AccountObserver { } private fun navigateToSavedLoginsFragment() { - context?.components?.analytics?.metrics?.track(Event.OpenLogins) - val directions = LoginsFragmentDirections.actionLoginsFragmentToSavedLoginsFragment() - findNavController().navigate(directions) + if (findNavController().currentDestination?.id == R.id.loginsFragment) { + context?.components?.analytics?.metrics?.track(Event.OpenLogins) + val directions = LoginsFragmentDirections.actionLoginsFragmentToSavedLoginsFragment() + findNavController().navigate(directions) + } } private fun navigateToAccountSettingsFragment() { - val directions = LoginsFragmentDirections.actionLoginsFragmentToAccountSettingsFragment() - findNavController().navigate(directions) + if (findNavController().currentDestination?.id == R.id.loginsFragment) { + val directions = + LoginsFragmentDirections.actionLoginsFragmentToAccountSettingsFragment() + findNavController().navigate(directions) + } } private fun navigateToAccountProblemFragment() { - val directions = LoginsFragmentDirections.actionLoginsFragmentToAccountProblemFragment() - findNavController().navigate(directions) + if (findNavController().currentDestination?.id == R.id.loginsFragment) { + val directions = LoginsFragmentDirections.actionLoginsFragmentToAccountProblemFragment() + findNavController().navigate(directions) + } } private fun navigateToTurnOnSyncFragment() { - val directions = LoginsFragmentDirections.actionLoginsFragmentToTurnOnSyncFragment() - findNavController().navigate(directions) + if (findNavController().currentDestination?.id == R.id.loginsFragment) { + val directions = LoginsFragmentDirections.actionLoginsFragmentToTurnOnSyncFragment() + findNavController().navigate(directions) + } } companion object {