commit 7ab53d075f934d409399c72db9900ff541b4a680
parent dbc1811b57d0f5c4c08294ec2fe3e838407d7f4f
Author: clairehurst <clairehurst@torproject.org>
Date: Thu, 15 Jan 2026 19:41:22 -0700
fixup! [android] Implement Android-native Connection Assist UI
Diffstat:
6 files changed, 2 insertions(+), 92 deletions(-)
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
@@ -185,7 +185,6 @@ import org.mozilla.fenix.compose.core.Action
import org.mozilla.fenix.compose.snackbar.SnackbarState
import org.mozilla.fenix.compose.snackbar.Snackbar
import org.mozilla.fenix.tor.UrlQuickLoadViewModel
-import org.mozilla.geckoview.TorAndroidIntegration
import org.mozilla.geckoview.TorAndroidIntegration.BootstrapStateChangeListener
import org.mozilla.geckoview.TorConnectStage
import kotlin.system.exitProcess
@@ -197,7 +196,7 @@ import kotlin.system.exitProcess
* - browser screen
*/
@SuppressWarnings("TooManyFunctions", "LargeClass", "LongMethod")
-open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAndroidIntegration.BootstrapStateChangeListener {
+open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
@VisibleForTesting
internal lateinit var binding: ActivityHomeBinding
lateinit var themeManager: ThemeManager
@@ -611,14 +610,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn
onBackPressedCallback = onBackPressedCallback,
)
- if (settings().useHtmlConnectionUi) {
- val engine = components.core.engine
- if (engine is GeckoEngine) {
- val torIntegration = engine.getTorIntegrationController()
- torIntegration.registerBootstrapStateChangeListener(this)
- }
- }
-
StartupTimeline.onActivityCreateEndHome(this) // DO NOT MOVE ANYTHING BELOW HERE.
}
@@ -1388,20 +1379,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn
@VisibleForTesting
internal fun navigateToHome(navController: NavController) {
- // if (this is ExternalAppBrowserActivity) {
- // return
- // }
-
- if (!settings().useHtmlConnectionUi) {
- navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist())
- } else {
- navController.navigate(NavGraphDirections.actionStartupHome())
- openToBrowserAndLoad(
- searchTermOrURL = "about:torconnect",
- newTab = true,
- from = BrowserDirection.FromHome,
- )
- }
+ navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist())
}
final override fun attachBaseContext(base: Context) {
@@ -1608,14 +1586,4 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn
finishAndRemoveTask()
exitProcess(0)
}
-
- override fun onBootstrapStageChange(stage: TorConnectStage) {
- if (stage.isBootstrapped) {
- if (settings().useHtmlConnectionUi) {
- components.useCases.tabsUseCases.removeAllTabs()
- navHost.navController.navigate(NavGraphDirections.actionStartupHome())
- }
- }
- }
- override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) = Unit
}
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt
@@ -1970,10 +1970,6 @@ abstract class BaseBrowserFragment :
@Suppress("DEPRECATION")
it.announceForAccessibility(selectedTab.toDisplayTitle())
- if (getCurrentTab()?.content?.url == "about:torconnect") {
- // FIXME: view is not available anymore.
- // browserToolbarView.view.visibility = View.GONE
- }
}
} else {
view?.let { view -> initializeUI(view) }
@@ -2007,26 +2003,6 @@ abstract class BaseBrowserFragment :
),
)
}
-
- handleBetaHtmlTorConnect()
- }
-
- private fun handleBetaHtmlTorConnect() {
- val currentTab = getCurrentTab() ?: return
- if (currentTab.content.url == "about:torconnect") {
- if (!requireActivity().settings().useHtmlConnectionUi) {
- requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id)
- (requireActivity() as HomeActivity).navigateToHome(
- findNavController(),
- )
- } else {
- // This just makes it not flash (be visible for a split second) before handleTabSelected() hides it again
- // FIXME: view is not available anymore.
- // browserToolbarView.view.visibility = View.GONE
- }
- } else if (currentTab.content.url == "about:tor") {
- requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id)
- }
}
private fun evaluateMessagesForMicrosurvey(components: Components) =
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
@@ -10,7 +10,6 @@ import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.os.StrictMode
-import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.widget.Toast
@@ -31,7 +30,6 @@ import androidx.preference.SwitchPreference
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine
@@ -739,20 +737,6 @@ class SettingsFragment : PreferenceFragmentCompat(), UserInteractionHandler {
@VisibleForTesting
internal fun setupHomepagePreference(settings: Settings) {
- /*with(requirePreference<Preference>(R.string.pref_key_home)) {
- summary = when {
- settings.alwaysOpenTheHomepageWhenOpeningTheApp ->
- getString(R.string.opening_screen_homepage_summary)
-
- settings.openHomepageAfterFourHoursOfInactivity ->
- getString(R.string.opening_screen_after_four_hours_of_inactivity_summary)
-
- settings.alwaysOpenTheLastTabWhenOpeningTheApp ->
- getString(R.string.opening_screen_last_tab_summary)
-
- else -> null
- }
- }*/
}
@VisibleForTesting
@@ -811,11 +795,6 @@ class SettingsFragment : PreferenceFragmentCompat(), UserInteractionHandler {
}
}
- requirePreference<Preference>(R.string.pref_key_use_html_connection_ui).apply {
- onPreferenceChangeListener = object : SharedPreferenceUpdater() {}
- isVisible = Config.channel != ReleaseChannel.Release
- }
-
requirePreference<Preference>(R.string.pref_key_tor_logs).apply {
setOnPreferenceClickListener {
val directions =
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
@@ -2928,11 +2928,6 @@ class Settings(
default = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).path,
)
- var useHtmlConnectionUi by booleanPreference(
- key = appContext.getPreferenceKey(R.string.pref_key_use_html_connection_ui),
- default = false,
- )
-
var quickStart by booleanPreference(
appContext.getPreferenceKey(R.string.pref_key_quick_start),
default = false,
diff --git a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml
@@ -546,7 +546,6 @@
<string name="pref_key_tor_network_settings_explanation" translatable="false">pref_key_tor_network_settings_explanation</string>
<string name="pref_key_tor_network_settings_bridge_config" translatable="false">pref_key_tor_network_settings_bridge_config</string>
<string name="pref_key_tor_logs" translatable="false">pref_key_tor_logs</string>
- <string name="pref_key_use_html_connection_ui" translatable="false">pref_key_use_html_connection_ui</string> <!-- Changing the pref_key should reset it to off for users that had it enabled -->
<string name="pref_key_about_config_shortcut" translatable="false">pref_key_about_config_shortcut</string>
<string name="pref_key_tor_network_settings_bridge_config_explanation" translatable="false">pref_key_tor_network_settings_bridge_config_explanation</string>
<string name="pref_key_tor_network_settings_bridge_config_toggle" translatable="false">pref_key_tor_network_settings_bridge_config_toggle</string>
diff --git a/mobile/android/fenix/app/src/main/res/xml/preferences.xml b/mobile/android/fenix/app/src/main/res/xml/preferences.xml
@@ -181,13 +181,6 @@
android:title="@string/tor_connect_automatically_label"
app:iconSpaceReserved="false" />
- <SwitchPreference
- android:defaultValue="false"
- android:key="@string/pref_key_use_html_connection_ui"
- android:summary="Recommended only for debugging"
- android:title="Enable HTML connection UI"
- app:iconSpaceReserved="false" />
-
<Preference
android:key="@string/pref_key_tor_logs"
app:iconSpaceReserved="false"