1
0
Fork 0

For #6889 - Check current destination before navigating from settings

master
ekager 2019-12-02 14:00:45 +00:00 committed by Jeff Boek
parent f5cf0b7e2a
commit d8babadf7f
1 changed files with 26 additions and 15 deletions

View File

@ -11,6 +11,7 @@ import android.content.SharedPreferences
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavDirections
import androidx.navigation.Navigation import androidx.navigation.Navigation
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.preference.Preference import androidx.preference.Preference
@ -312,80 +313,90 @@ class SettingsFragment : PreferenceFragmentCompat(), AccountObserver {
} }
} }
private fun navigateFromSettings(directions: NavDirections) {
view?.let {
val navController = Navigation.findNavController(it)
if (navController.currentDestination?.id == R.id.settingsFragment) {
navController.navigate(directions)
}
}
}
private fun navigateToLoginsSettingsFragment() { private fun navigateToLoginsSettingsFragment() {
val directions = SettingsFragmentDirections.actionSettingsFragmentToLoginsFragment() val directions = SettingsFragmentDirections.actionSettingsFragmentToLoginsFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToSearchEngineSettings() { private fun navigateToSearchEngineSettings() {
val directions = SettingsFragmentDirections.actionSettingsFragmentToSearchEngineFragment() val directions = SettingsFragmentDirections.actionSettingsFragmentToSearchEngineFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToTrackingProtectionSettings() { private fun navigateToTrackingProtectionSettings() {
val directions = val directions =
SettingsFragmentDirections.actionSettingsFragmentToTrackingProtectionFragment() SettingsFragmentDirections.actionSettingsFragmentToTrackingProtectionFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToThemeSettings() { private fun navigateToThemeSettings() {
val directions = SettingsFragmentDirections.actionSettingsFragmentToThemeFragment() val directions = SettingsFragmentDirections.actionSettingsFragmentToThemeFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToToolbarSettings() { private fun navigateToToolbarSettings() {
val directions = SettingsFragmentDirections.actionSettingsFragmentToToolbarSettingsFragment() val directions =
Navigation.findNavController(view!!).navigate(directions) SettingsFragmentDirections.actionSettingsFragmentToToolbarSettingsFragment()
navigateFromSettings(directions)
} }
private fun navigateToSitePermissions() { private fun navigateToSitePermissions() {
val directions = val directions =
SettingsFragmentDirections.actionSettingsFragmentToSitePermissionsFragment() SettingsFragmentDirections.actionSettingsFragmentToSitePermissionsFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToAccessibility() { private fun navigateToAccessibility() {
val directions = SettingsFragmentDirections.actionSettingsFragmentToAccessibilityFragment() val directions = SettingsFragmentDirections.actionSettingsFragmentToAccessibilityFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToDefaultBrowserSettingsFragment() { private fun navigateToDefaultBrowserSettingsFragment() {
val directions = val directions =
SettingsFragmentDirections.actionSettingsFragmentToDefaultBrowserSettingsFragment() SettingsFragmentDirections.actionSettingsFragmentToDefaultBrowserSettingsFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToDataChoices() { private fun navigateToDataChoices() {
val directions = SettingsFragmentDirections.actionSettingsFragmentToDataChoicesFragment() val directions = SettingsFragmentDirections.actionSettingsFragmentToDataChoicesFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToAbout() { private fun navigateToAbout() {
val directions = SettingsFragmentDirections.actionSettingsFragmentToAboutFragment() val directions = SettingsFragmentDirections.actionSettingsFragmentToAboutFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToAccountProblem() { private fun navigateToAccountProblem() {
val directions = SettingsFragmentDirections.actionSettingsFragmentToAccountProblemFragment() val directions = SettingsFragmentDirections.actionSettingsFragmentToAccountProblemFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToAccountSettings() { private fun navigateToAccountSettings() {
val directions = val directions =
SettingsFragmentDirections.actionSettingsFragmentToAccountSettingsFragment() SettingsFragmentDirections.actionSettingsFragmentToAccountSettingsFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToDeleteBrowsingData() { private fun navigateToDeleteBrowsingData() {
val directions = val directions =
SettingsFragmentDirections.actionSettingsFragmentToDeleteBrowsingDataFragment() SettingsFragmentDirections.actionSettingsFragmentToDeleteBrowsingDataFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
private fun navigateToDeleteBrowsingDataOnQuit() { private fun navigateToDeleteBrowsingDataOnQuit() {
val directions = val directions =
SettingsFragmentDirections.actionSettingsFragmentToDeleteBrowsingDataOnQuitFragment() SettingsFragmentDirections.actionSettingsFragmentToDeleteBrowsingDataOnQuitFragment()
Navigation.findNavController(view!!).navigate(directions) navigateFromSettings(directions)
} }
override fun onAuthenticated(account: OAuthAccount, authType: AuthType) { override fun onAuthenticated(account: OAuthAccount, authType: AuthType) {