Loading mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/QuickstartViewModel.kt 0 → 100644 +41 −0 Original line number Diff line number Diff line package org.mozilla.fenix.tor import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import mozilla.components.browser.engine.gecko.GeckoEngine import org.mozilla.fenix.ext.components class QuickstartViewModel( application: Application, ) : AndroidViewModel(application) { private val torIntegrationAndroid = (getApplication<Application>().components.core.engine as GeckoEngine).getTorIntegrationController() /** * NOTE: Whilst the initial value for _quickstart is fetched from * TorIntegrationAndroid.quickstartGet (which is surfaced from TorConnect.quickstart), and we * pass on any changes in value up to TorConnect.quickstart (via quickstartSet()), we do not * listen for any changes to the TorConnect.quickstart value via "QuickstartChange" because we * do not expect anything outside of TorConnectViewModel to change its value, so we expect its * value to remain in sync with our local value. */ init { torIntegrationAndroid.quickstartGet { _quickstart.value = it } } private val _quickstart = MutableLiveData<Boolean>() fun quickstart(): LiveData<Boolean> { return _quickstart } fun quickstartSet(value: Boolean) { torIntegrationAndroid.quickstartSet(value) _quickstart.value = value } } mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt +6 −4 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.view.ViewGroup import androidx.appcompat.content.res.AppCompatResources import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle Loading @@ -38,6 +39,8 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { private var _binding: FragmentTorConnectionAssistBinding? = null private val binding get() = _binding!! private val quickstartViewModel: QuickstartViewModel by activityViewModels() override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, Loading Loading @@ -78,10 +81,10 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { setProgressBarCompat(progress) } viewModel.quickstartToggle().observe( quickstartViewModel.quickstart().observe( viewLifecycleOwner, ) { binding.quickstartSwitch.isChecked = it == true binding.quickstartSwitch.isChecked = it } viewModel.shouldOpenHome().observe( Loading Loading @@ -185,9 +188,8 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { private fun setQuickStart(screen: ConnectAssistUiState) { binding.quickstartSwitch.visibility = if (screen.quickstartSwitchVisible) View.VISIBLE else View.GONE binding.quickstartSwitch.isChecked = viewModel.quickstartToggle().value == true binding.quickstartSwitch.setOnCheckedChangeListener { _, isChecked -> viewModel.handleQuickstartChecked(isChecked) quickstartViewModel.quickstartSet(isChecked) } } Loading mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt +0 −12 Original line number Diff line number Diff line Loading @@ -27,13 +27,6 @@ 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 Loading Loading @@ -66,11 +59,6 @@ class TorConnectionAssistViewModel( } } fun handleQuickstartChecked(checked: Boolean) { _torController.quickstart = checked _quickStartToggle.value = checked } fun handleButton1Pressed( screen: ConnectAssistUiState, lifecycleScope: LifecycleCoroutineScope?, Loading Loading
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/QuickstartViewModel.kt 0 → 100644 +41 −0 Original line number Diff line number Diff line package org.mozilla.fenix.tor import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import mozilla.components.browser.engine.gecko.GeckoEngine import org.mozilla.fenix.ext.components class QuickstartViewModel( application: Application, ) : AndroidViewModel(application) { private val torIntegrationAndroid = (getApplication<Application>().components.core.engine as GeckoEngine).getTorIntegrationController() /** * NOTE: Whilst the initial value for _quickstart is fetched from * TorIntegrationAndroid.quickstartGet (which is surfaced from TorConnect.quickstart), and we * pass on any changes in value up to TorConnect.quickstart (via quickstartSet()), we do not * listen for any changes to the TorConnect.quickstart value via "QuickstartChange" because we * do not expect anything outside of TorConnectViewModel to change its value, so we expect its * value to remain in sync with our local value. */ init { torIntegrationAndroid.quickstartGet { _quickstart.value = it } } private val _quickstart = MutableLiveData<Boolean>() fun quickstart(): LiveData<Boolean> { return _quickstart } fun quickstartSet(value: Boolean) { torIntegrationAndroid.quickstartSet(value) _quickstart.value = value } }
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt +6 −4 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.view.ViewGroup import androidx.appcompat.content.res.AppCompatResources import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle Loading @@ -38,6 +39,8 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { private var _binding: FragmentTorConnectionAssistBinding? = null private val binding get() = _binding!! private val quickstartViewModel: QuickstartViewModel by activityViewModels() override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, Loading Loading @@ -78,10 +81,10 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { setProgressBarCompat(progress) } viewModel.quickstartToggle().observe( quickstartViewModel.quickstart().observe( viewLifecycleOwner, ) { binding.quickstartSwitch.isChecked = it == true binding.quickstartSwitch.isChecked = it } viewModel.shouldOpenHome().observe( Loading Loading @@ -185,9 +188,8 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { private fun setQuickStart(screen: ConnectAssistUiState) { binding.quickstartSwitch.visibility = if (screen.quickstartSwitchVisible) View.VISIBLE else View.GONE binding.quickstartSwitch.isChecked = viewModel.quickstartToggle().value == true binding.quickstartSwitch.setOnCheckedChangeListener { _, isChecked -> viewModel.handleQuickstartChecked(isChecked) quickstartViewModel.quickstartSet(isChecked) } } Loading
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt +0 −12 Original line number Diff line number Diff line Loading @@ -27,13 +27,6 @@ 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 Loading Loading @@ -66,11 +59,6 @@ class TorConnectionAssistViewModel( } } fun handleQuickstartChecked(checked: Boolean) { _torController.quickstart = checked _quickStartToggle.value = checked } fun handleButton1Pressed( screen: ConnectAssistUiState, lifecycleScope: LifecycleCoroutineScope?, Loading