tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 6bc5281cb19ac4c8e258f08240ca471e9954a050
parent d82a9eb7735877f411448a8226b3ebbb318a1776
Author: Harrison Oglesby <oglesby.harrison@gmail.com>
Date:   Thu, 23 Oct 2025 19:12:50 +0000

Bug 1995625 - Prevent looped search in Settings Search r=android-reviewers,petru

Differential Revision: https://phabricator.services.mozilla.com/D269487

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt | 6+++++-
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/SettingsSearchMiddleware.kt | 8++++++--
Mmobile/android/fenix/app/src/main/res/navigation/nav_graph.xml | 4++++
3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt @@ -217,7 +217,11 @@ class SettingsFragment : PreferenceFragmentCompat() { val title = nimbusValidation.settingsTitle val suffix = nimbusValidation.settingsPunctuation val toolbarTitle = "$title$suffix" - if (requireContext().settings().isSettingsSearchEnabled) { + + val showSearch = requireContext().settings().isSettingsSearchEnabled && + (!args.searchInProgress) + + if (showSearch) { showToolbarWithIconButton( title = toolbarTitle, iconResId = R.drawable.ic_search, diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/SettingsSearchMiddleware.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/SettingsSearchMiddleware.kt @@ -52,8 +52,12 @@ class SettingsSearchMiddleware( } } is SettingsSearchAction.ResultItemClicked -> { - val bundle = bundleOf("preference_to_scroll_to" to action.item.preferenceKey) - val fragmentId = action.item.preferenceFileInformation.fragmentId + val searchItem = action.item + val bundle = bundleOf( + "preference_to_scroll_to" to searchItem.preferenceKey, + "search_in_progress" to true, + ) + val fragmentId = searchItem.preferenceFileInformation.fragmentId CoroutineScope(Dispatchers.Main).launch { dependencies.navController.navigate(fragmentId, bundle) } diff --git a/mobile/android/fenix/app/src/main/res/navigation/nav_graph.xml b/mobile/android/fenix/app/src/main/res/navigation/nav_graph.xml @@ -571,6 +571,10 @@ android:defaultValue="@null" app:argType="string" app:nullable="true" /> + <argument + android:name="search_in_progress" + android:defaultValue="false" + app:argType="boolean" /> <action android:id="@+id/action_settingsFragment_to_settingsSearchFragment" app:destination="@id/settingsSearchFragment"