Commit 1f4eb0f0 authored by Dan Ballard's avatar Dan Ballard Committed by Pier Angelo Vendrame
Browse files

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

Bug 41188 pt2: strip out legacy TorController logic and shims
parent 2aebd69e
Loading
Loading
Loading
Loading
+22 −17
Original line number Diff line number Diff line
@@ -167,7 +167,6 @@ import org.mozilla.fenix.theme.DefaultThemeManager
import org.mozilla.fenix.theme.StatusBarColorManager
import org.mozilla.fenix.theme.ThemeManager
import org.mozilla.fenix.tor.TorConnectionAssistFragmentDirections
import org.mozilla.fenix.tor.TorEvents
import org.mozilla.fenix.utils.AccessibilityUtils.announcePrivateModeForAccessibility
import org.mozilla.fenix.utils.Settings
import org.mozilla.fenix.utils.changeAppLauncherIcon
@@ -180,6 +179,7 @@ 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

@@ -914,15 +914,21 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn
            onNewIntentInternal(intent)
        } else {
            // Wait until Tor is connected to handle intents from external apps for links, search, etc.
            components.torController.registerTorListener(object : TorEvents {
                override fun onTorConnected() {
                    components.torController.unregisterTorListener(this)
            val torIntegration = (components.core.engine as GeckoEngine).getTorIntegrationController()
            torIntegration.registerBootstrapStateChangeListener(
                object : BootstrapStateChangeListener {

                    override fun onBootstrapStageChange(stage: TorConnectStage) {
                        if (stage.isBootstrapped) {
                            torIntegration.unregisterBootstrapStateChangeListener(this)
                            onNewIntentInternal(intent)
                        }
                override fun onTorConnecting() { /* no-op */ }
                override fun onTorStopped() { /* no-op */ }
                override fun onTorStatusUpdate(entry: String?, status: String?, progress: Double?) { /* no-op */ }
            })
                    }

                    override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) {}
                }
            )

            return
        }
    }
@@ -1573,14 +1579,13 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn
        exitProcess(0)
    }

    override fun onBootstrapStateChange(state: String) = Unit
    override fun onBootstrapStageChange(stage: TorConnectStage) = Unit
    override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) = Unit
    override fun onBootstrapComplete() {
    override fun onBootstrapStageChange(stage: TorConnectStage)  {
        if (stage.isBootstrapped) {
            if (settings().useHtmlConnectionUi) {
                components.useCases.tabsUseCases.removeAllTabs()
                navHost.navController.navigate(NavGraphDirections.actionStartupHome())
            }
        }
    override fun onBootstrapError(code: String?, message: String?, phase: String?, reason: String?) = Unit
    }
    override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) = Unit
}
+0 −11
Original line number Diff line number Diff line
@@ -27,20 +27,9 @@ class TorBootstrapProgressViewModel(
        super.onCleared()
    }

    override fun onBootstrapStateChange(state: String?) {}
    override fun onBootstrapStageChange(stage: TorConnectStage) = Unit

    override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) {
        this.progress.value = progress.toInt()
    }

    override fun onBootstrapComplete() {}

    override fun onBootstrapError(
        code: String?,
        message: String?,
        phase: String?,
        reason: String?,
    ) {
    }
}
+1 −12
Original line number Diff line number Diff line
@@ -154,23 +154,12 @@ class TorConnectionAssistViewModel(
        }
    }

    override fun onBootstrapStateChange(state: String?) {}

    override fun onBootstrapStageChange(stage: TorConnectStage?) {
    override fun onBootstrapStageChange(stage: TorConnectStage) {
        torConnectStage.value = stage
    }

    override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) {}

    override fun onBootstrapComplete() {}

    override fun onBootstrapError(
        code: String?,
        message: String?,
        phase: String?,
        reason: String?,
    ) {}

    fun button1ShouldBeDisabled(screen: ConnectAssistUiState): Boolean {
        return selectedCountryCode.value == "automatic" && screen.regionDropDownDefaultItem == R.string.connection_assist_select_country_or_region
    }