Verified Commit 21b97536 authored by Dan Ballard's avatar Dan Ballard Committed by Pier Angelo Vendrame
Browse files

Bug 41878: [android] Add standalone Tor Bootstrap

parent 44baf32a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -928,7 +928,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider {
            clipboardSuggestionsEnabled.set(settings.shouldShowClipboardSuggestions)
            searchShortcutsEnabled.set(settings.shouldShowSearchShortcuts)
            voiceSearchEnabled.set(settings.shouldShowVoiceSearch)
            openLinksInAppEnabled.set(settings.openLinksInExternalApp)
            //openLinksInAppEnabled.set(settings.openLinksInExternalApp)
            signedInSync.set(settings.signedInFxaAccount)

            val syncedItems = SyncEnginesStorage(applicationContext).getStatus().entries.filter {
+9 −6
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import androidx.annotation.VisibleForTesting
import androidx.appcompat.app.ActionBar
import androidx.appcompat.widget.Toolbar
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import androidx.core.content.ContentProviderCompat.requireContext
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
@@ -318,6 +319,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
            it.start()
        }

        /*
        if (settings().shouldShowOnboarding(
                hasUserBeenOnboarded = components.fenixOnboarding.userHasBeenOnboarded(),
                isLauncherIntent = intent.toSafeIntent().isLauncherIntent,
@@ -328,6 +330,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
                navHost.navController.navigate(NavGraphDirections.actionGlobalOnboarding())
            }
        } else {
         */
            lifecycleScope.launch(IO) {
                // showFullscreenMessageIfNeeded(applicationContext)
            }
@@ -348,7 +351,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
                navHost.navController.navigate(NavGraphDirections.actionGlobalHomeOnboardingDialog())
            }
            */
        }
        //}

        Performance.processIntentIfPerformanceTest(intent, this)

@@ -699,7 +702,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
                }
                override fun onTorConnecting() { /* no-op */ }
                override fun onTorStopped() { /* no-op */ }
                override fun onTorStatusUpdate(entry: String?, status: String?) { /* no-op */ }
                override fun onTorStatusUpdate(entry: String?, status: String?, progress: Double?) { /* no-op */ }
            })
            return
        }
@@ -1225,11 +1228,11 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {

    @VisibleForTesting
    internal fun navigateToHome(navController: NavController) {
        if (this is ExternalAppBrowserActivity) {
            return
        }
//        if (this is ExternalAppBrowserActivity) {
//            return
//        }

        navController.navigate(NavGraphDirections.actionStartupHome())
        navHost.navController.navigate(NavGraphDirections.actionStartupTorbootstrap())
    }

    final override fun attachBaseContext(base: Context) {
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ class IntentReceiverActivity : Activity() {
                }
                override fun onTorConnecting() { /* no-op */ }
                override fun onTorStopped() { /* no-op */ }
                override fun onTorStatusUpdate(entry: String?, status: String?) { /* no-op */ }
                override fun onTorStatusUpdate(entry: String?, status: String?, progress: Double?) { /* no-op */ }
            })

            // In the meantime, open the HomeActivity so the user can get connected.
+4 −5
Original line number Diff line number Diff line
@@ -163,11 +163,10 @@ object TorBrowserFeatures {
            }

            @SuppressWarnings("EmptyFunctionBlock")
                override fun onTorStatusUpdate(entry: String?, status: String?) {
            override fun onTorStatusUpdate(entry: String?, status: String?, progress: Double?) {
            }
        })
    }
    }


}
+20 −1
Original line number Diff line number Diff line
@@ -157,6 +157,8 @@ import org.mozilla.fenix.search.toolbar.SearchSelectorMenu
import org.mozilla.fenix.tabstray.Page
import org.mozilla.fenix.tabstray.TabsTrayAccessPoint
import org.mozilla.fenix.theme.FirefoxTheme
import org.mozilla.fenix.tor.TorBootstrapFragmentDirections
import org.mozilla.fenix.tor.TorBootstrapStatus
import org.mozilla.fenix.utils.Settings.Companion.TOP_SITES_PROVIDER_MAX_THRESHOLD
import org.mozilla.fenix.utils.allowUndo
import org.mozilla.fenix.wallpapers.Wallpaper
@@ -257,6 +259,7 @@ class HomeFragment : Fragment() {
    private val bottomToolbarContainerIntegration = ViewBoundFeatureWrapper<BottomToolbarContainerIntegration>()

    private lateinit var savedLoginsLauncher: ActivityResultLauncher<Intent>
    private lateinit var torBootstrapStatus: TorBootstrapStatus

    override fun onCreate(savedInstanceState: Bundle?) {
        // DO NOT ADD ANYTHING ABOVE THIS getProfilerTime CALL!
@@ -289,6 +292,12 @@ class HomeFragment : Fragment() {
        val activity = activity as HomeActivity
        val components = requireComponents

        torBootstrapStatus = TorBootstrapStatus(
            !BuildConfig.DISABLE_TOR,
            components.torController,
            ::dispatchModeChanges
        )

        val currentWallpaperName = requireContext().settings().currentWallpaperName
        applyWallpaper(
            wallpaperName = currentWallpaperName,
@@ -749,7 +758,6 @@ class HomeFragment : Fragment() {
        if (browsingModeManager.mode == BrowsingMode.Private) {
            binding.root.consumeFrom(requireContext().components.appStore, viewLifecycleOwner) {
                sessionControlView?.update(it)

            }
        } else {
            sessionControlView?.update(requireContext().components.appStore.state)
@@ -1015,6 +1023,7 @@ class HomeFragment : Fragment() {
    override fun onStop() {
        dismissRecommendPrivateBrowsingShortcut()
        super.onStop()
        torBootstrapStatus.unregisterTorListener()
    }

    override fun onStart() {
@@ -1067,6 +1076,15 @@ class HomeFragment : Fragment() {
        }
    }

    private fun dispatchModeChanges(isBootstrapping: Boolean) {
        if (isBootstrapping) {
            val directions =
                TorBootstrapFragmentDirections
                    .actionStartupTorbootstrap()
            findNavController().navigate(directions)
        }
    }

    @VisibleForTesting
    internal fun removeCollectionWithUndo(tabCollection: TabCollection) {
        val snackbarMessage = getString(R.string.snackbar_collection_deleted)
@@ -1090,6 +1108,7 @@ class HomeFragment : Fragment() {

    override fun onResume() {
        super.onResume()
        torBootstrapStatus.registerTorListener()
        if (browsingModeManager.mode == BrowsingMode.Private) {
            activity?.window?.setBackgroundDrawableResource(R.drawable.private_home_background_gradient)
        }
Loading