Dan Ballard pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android

Commits:

2 changed files:

Changes:

  • fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt
    ... ... @@ -62,6 +62,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
    62 62
         override fun onResume() {
    
    63 63
             super.onResume()
    
    64 64
             hideToolbar()
    
    65
    +        viewModel.handleTorConnectStateToScreen() // Covers the case where the app is backgrounded when the bootstrap finishes
    
    65 66
         }
    
    66 67
     
    
    67 68
         override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    
    ... ... @@ -86,6 +87,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
    86 87
             viewModel.shouldOpenHome().observe(
    
    87 88
                 viewLifecycleOwner,
    
    88 89
             ) {
    
    90
    +            Log.d(TAG, "shouldOpenHome() = $it")
    
    89 91
                 if (it) {
    
    90 92
                     openHome()
    
    91 93
                 }
    

  • fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt
    ... ... @@ -46,6 +46,7 @@ class TorConnectionAssistViewModel(
    46 46
         init {
    
    47 47
             Log.d(TAG, "initiating TorConnectionAssistViewModel")
    
    48 48
             _torController.registerTorListener(this)
    
    49
    +        handleTorConnectStateToScreen() // should cover the case of when we have an onBootStrapStateChange() event before this is initialized, which lead to being stuck on the splash screen
    
    49 50
         }
    
    50 51
     
    
    51 52
         private fun handleConnect(
    
    ... ... @@ -95,6 +96,10 @@ class TorConnectionAssistViewModel(
    95 96
                 _progress.value = progress.toInt()
    
    96 97
             }
    
    97 98
     
    
    99
    +        handleTorConnectStateToScreen()
    
    100
    +    }
    
    101
    +
    
    102
    +    fun handleTorConnectStateToScreen() {
    
    98 103
             when (_torController.lastKnownStatus) {
    
    99 104
                 TorConnectState.Initial -> _torConnectScreen.value = ConnectAssistUiState.Splash
    
    100 105
                 TorConnectState.Configuring -> handleConfiguring()
    
    ... ... @@ -144,7 +149,11 @@ class TorConnectionAssistViewModel(
    144 149
                     /** stay here */
    
    145 150
                 }
    
    146 151
     
    
    147
    -            else -> _torConnectScreen.value = ConnectAssistUiState.Connecting
    
    152
    +            else -> _torConnectScreen.value =
    
    153
    +                ConnectAssistUiState.Connecting.also { connectAssistUiState ->
    
    154
    +                    // covers the case of when the bootstrap is already in progress when the UiState "catches up"
    
    155
    +                    connectAssistUiState.progress = _progress.value ?: 0
    
    156
    +                }
    
    148 157
             }
    
    149 158
         }
    
    150 159