Commit cd1196bd authored by clairehurst's avatar clairehurst 🌱 Committed by Dan Ballard
Browse files

fixup! [android] Implement Android-native Connection Assist UI

parent 61c122fb
Loading
Loading
Loading
Loading
+2 −34
Original line number Diff line number Diff line
@@ -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,
            )
        }
    }

    final override fun attachBaseContext(base: Context) {
@@ -1610,14 +1588,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
}
+0 −24
Original line number Diff line number Diff line
@@ -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) =
+0 −21
Original line number Diff line number Diff line
@@ -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 =
+0 −5
Original line number Diff line number Diff line
@@ -2912,11 +2912,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,
+0 −1
Original line number Diff line number Diff line
@@ -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>
Loading