Commit ebbb9101 authored by clairehurst's avatar clairehurst 🌱 Committed by Pier Angelo Vendrame
Browse files

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

parent e59de0a3
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -174,6 +174,7 @@ import org.mozilla.fenix.compose.snackbar.Snackbar
import org.mozilla.fenix.tor.UrlQuickLoadViewModel
import org.mozilla.geckoview.TorAndroidIntegration
import org.mozilla.geckoview.TorConnectStage
import kotlin.system.exitProcess

/**
 * The main activity of the application. The application is primarily a single Activity (this one)
@@ -1528,6 +1529,11 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn
        private const val PWA_RECENTLY_USED_THRESHOLD = DateUtils.DAY_IN_MILLIS * 30L
    }

    fun shutDown() : Nothing {
        finishAndRemoveTask()
        exitProcess(0)
    }

    override fun onBootstrapStateChange(state: String) = Unit
    override fun onBootstrapStageChange(stage: TorConnectStage) = Unit
    override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) = Unit
+1 −2
Original line number Diff line number Diff line
@@ -1722,7 +1722,6 @@ class HomeFragment : Fragment(), UserInteractionHandler {
    }

    override fun onBackPressed(): Boolean {
        requireActivity().finish()
        return true
        (requireActivity() as HomeActivity).shutDown()
    }
}
+3 −2
Original line number Diff line number Diff line
@@ -149,7 +149,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
    private fun setBackButton(screen: ConnectAssistUiState) {
        binding.backButton.visibility = if (screen.backButtonVisible) View.VISIBLE else View.INVISIBLE
        binding.backButton.setOnClickListener {
            torConnectionAssistViewModel.handleBackButtonPressed()
            onBackPressed()
        }
    }

@@ -314,7 +314,8 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
    }

    override fun onBackPressed(): Boolean {
        return torConnectionAssistViewModel.handleBackButtonPressed()
        torConnectionAssistViewModel.handleBackButtonPressed(requireActivity() as HomeActivity)
        return true
    }

}
+4 −4
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.MutableLiveData
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.ext.components

class TorConnectionAssistViewModel(
@@ -150,10 +151,10 @@ class TorConnectionAssistViewModel(
        return true
    }

    fun handleBackButtonPressed(): Boolean {
    fun handleBackButtonPressed(homeActivity: HomeActivity) {
        when (torConnectScreen.value) {
            ConnectAssistUiState.Splash -> return false
            ConnectAssistUiState.Configuring -> return false
            ConnectAssistUiState.Splash -> homeActivity.shutDown()
            ConnectAssistUiState.Configuring -> homeActivity.shutDown()
            ConnectAssistUiState.Connecting -> cancelTorBootstrap()
            ConnectAssistUiState.InternetError -> {
                _torController.lastKnownError = null
@@ -191,6 +192,5 @@ class TorConnectionAssistViewModel(
                _torConnectScreen.value = ConnectAssistUiState.LocationCheck
            }
        }
        return true
    }
}