[tbb-commits] [Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] fixup! Implement Android-native Connection Assist UI

Dan Ballard (@dan) git at gitlab.torproject.org
Thu May 9 02:28:14 UTC 2024



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


Commits:
fe6b5622 by clairehurst at 2024-05-08T15:01:58-06:00
fixup! Implement Android-native Connection Assist UI

- - - - -


2 changed files:

- fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt
- fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt


Changes:

=====================================
fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt
=====================================
@@ -27,7 +27,6 @@ import kotlinx.coroutines.launch
 import mozilla.components.support.base.feature.UserInteractionHandler
 import org.mozilla.fenix.R
 import org.mozilla.fenix.databinding.FragmentTorConnectionAssistBinding
-import org.mozilla.fenix.ext.components
 import org.mozilla.fenix.ext.hideToolbar
 
 class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
@@ -75,6 +74,20 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
             }
         }
 
+        viewModel.quickstartToggle().observe(
+            viewLifecycleOwner,
+        ) {
+            binding.quickstartSwitch.isChecked = it == true
+        }
+
+        viewModel.shouldOpenHome().observe(
+            viewLifecycleOwner,
+        ) {
+            if (it) {
+                openHome()
+            }
+        }
+
     }
 
     override fun onDestroyView() {
@@ -136,7 +149,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
                 titleDescription.text = getString(screen.titleDescriptionTextStringResource)
             }
             quickstartSwitch.visibility = if (screen.quickstartSwitchVisible) View.VISIBLE else View.GONE
-            quickstartSwitch.isChecked = requireContext().components.torController.quickstart
+            quickstartSwitch.isChecked = viewModel.quickstartToggle().value == true
             quickstartSwitch.setOnCheckedChangeListener { _, isChecked ->
                 viewModel.handleQuickstartChecked(isChecked)
             }
@@ -198,7 +211,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
     }
 
     private fun openHome() {
-        Log.d(TAG, "openHome()") //This doesn't seem to be ever called
+        Log.d(TAG, "openHome()")
         findNavController().navigate(TorConnectionAssistFragmentDirections.actionStartupHome())
     }
 


=====================================
fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt
=====================================
@@ -26,6 +26,18 @@ class TorConnectionAssistViewModel(
     private val _torConnectScreen = MutableStateFlow(ConnectAssistUiState.Splash)
     internal val torConnectScreen: StateFlow<ConnectAssistUiState> = _torConnectScreen
 
+    private val _quickStartToggle = MutableLiveData<Boolean>() // don't initialize with quickstart off the bat
+    fun quickstartToggle(): LiveData<Boolean?> {
+        _quickStartToggle.value = _torController.quickstart // quickstart isn't ready until torSettings is ready
+        return _quickStartToggle
+    }
+
+
+    private val _shouldOpenHome = MutableLiveData(false)
+    fun shouldOpenHome(): LiveData<Boolean> {
+        return _shouldOpenHome
+    }
+
     private val _progress = MutableLiveData(0)
     fun progress(): LiveData<Int> {
         return _progress
@@ -49,6 +61,7 @@ class TorConnectionAssistViewModel(
 
     fun handleQuickstartChecked(checked: Boolean) {
         _torController.quickstart = checked
+        _quickStartToggle.value = checked
     }
 
     fun handleButton1Pressed(
@@ -87,8 +100,9 @@ class TorConnectionAssistViewModel(
             TorConnectState.Configuring -> handleConfiguring()
             TorConnectState.AutoBootstrapping -> handleBootstrap()
             TorConnectState.Bootstrapping -> handleBootstrap()
+            TorConnectState.Bootstrapped -> _shouldOpenHome.value = true
+            TorConnectState.Disabled -> _shouldOpenHome.value = true
             TorConnectState.Error -> handleError()
-            else -> {}
         }
     }
 



View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/fe6b56225e5fdfed6e7623496ec64a7670b765ab

-- 
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/fe6b56225e5fdfed6e7623496ec64a7670b765ab
You're receiving this email because of your account on gitlab.torproject.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tbb-commits/attachments/20240509/655dafeb/attachment-0001.htm>


More information about the tbb-commits mailing list