Dan Ballard pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android
Commits:
-
3e6fa4e6
by clairehurst at 2024-05-07T17:54:07-06:00
7 changed files:
- fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt
- + fenix/app/src/main/java/org/mozilla/fenix/tor/QuickStartPreference.kt
- fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt
- fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt
- + fenix/app/src/main/res/layout/preference_quick_start.xml
- fenix/app/src/main/res/values/preference_keys.xml
- fenix/app/src/main/res/xml/preferences.xml
Changes:
... | ... | @@ -61,6 +61,7 @@ import org.mozilla.fenix.ext.showToolbar |
61 | 61 | import org.mozilla.fenix.nimbus.FxNimbus
|
62 | 62 | import org.mozilla.fenix.perf.ProfilerViewModel
|
63 | 63 | import org.mozilla.fenix.settings.account.AccountUiView
|
64 | +import org.mozilla.fenix.tor.QuickStartPreference
|
|
64 | 65 | import org.mozilla.fenix.tor.TorBridgeTransportConfig
|
65 | 66 | import org.mozilla.fenix.tor.TorEvents
|
66 | 67 | import org.mozilla.fenix.utils.Settings
|
... | ... | @@ -729,6 +730,14 @@ class SettingsFragment : PreferenceFragmentCompat() { |
729 | 730 | }
|
730 | 731 | }
|
731 | 732 | |
733 | + requirePreference<QuickStartPreference>(R.string.pref_key_quick_start).apply {
|
|
734 | + setOnPreferenceClickListener {
|
|
735 | + context.components.torController.quickstart = !context.components.torController.quickstart
|
|
736 | + updateSwitch()
|
|
737 | + true
|
|
738 | + }
|
|
739 | + }
|
|
740 | + |
|
732 | 741 | requirePreference<Preference>(R.string.pref_key_use_new_bootstrap).apply {
|
733 | 742 | setOnPreferenceClickListener {
|
734 | 743 | val directions =
|
1 | +package org.mozilla.fenix.tor
|
|
2 | + |
|
3 | +import android.content.Context
|
|
4 | +import android.util.AttributeSet
|
|
5 | +import androidx.preference.PreferenceViewHolder
|
|
6 | +import androidx.preference.SwitchPreference
|
|
7 | +import com.google.android.material.switchmaterial.SwitchMaterial
|
|
8 | +import org.mozilla.fenix.R
|
|
9 | +import org.mozilla.fenix.ext.components
|
|
10 | + |
|
11 | +class QuickStartPreference @JvmOverloads constructor(
|
|
12 | + context: Context,
|
|
13 | + attrs: AttributeSet? = null,
|
|
14 | +) : SwitchPreference(context, attrs) {
|
|
15 | + |
|
16 | + private var switchView: SwitchMaterial? = null
|
|
17 | + |
|
18 | + init {
|
|
19 | + widgetLayoutResource = R.layout.preference_quick_start
|
|
20 | + }
|
|
21 | + |
|
22 | + override fun onBindViewHolder(holder: PreferenceViewHolder) {
|
|
23 | + super.onBindViewHolder(holder)
|
|
24 | + switchView = holder.findViewById(R.id.switch_widget) as SwitchMaterial
|
|
25 | + |
|
26 | + updateSwitch()
|
|
27 | + }
|
|
28 | + |
|
29 | + fun updateSwitch() {
|
|
30 | + switchView?.isChecked = context.components.torController.quickstart
|
|
31 | + }
|
|
32 | +} |
... | ... | @@ -27,6 +27,7 @@ import kotlinx.coroutines.launch |
27 | 27 | import mozilla.components.support.base.feature.UserInteractionHandler
|
28 | 28 | import org.mozilla.fenix.R
|
29 | 29 | import org.mozilla.fenix.databinding.FragmentTorConnectionAssistBinding
|
30 | +import org.mozilla.fenix.ext.components
|
|
30 | 31 | import org.mozilla.fenix.ext.hideToolbar
|
31 | 32 | |
32 | 33 | class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
|
... | ... | @@ -74,11 +75,6 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { |
74 | 75 | }
|
75 | 76 | }
|
76 | 77 | |
77 | - viewModel.quickstartToggle().observe(
|
|
78 | - viewLifecycleOwner,
|
|
79 | - ) {
|
|
80 | - binding.quickstartSwitch.isChecked = it == true
|
|
81 | - }
|
|
82 | 78 | }
|
83 | 79 | |
84 | 80 | override fun onDestroyView() {
|
... | ... | @@ -140,7 +136,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { |
140 | 136 | titleDescription.text = getString(screen.titleDescriptionTextStringResource)
|
141 | 137 | }
|
142 | 138 | quickstartSwitch.visibility = if (screen.quickstartSwitchVisible) View.VISIBLE else View.GONE
|
143 | - quickstartSwitch.isChecked = viewModel.quickstartToggle().value == true
|
|
139 | + quickstartSwitch.isChecked = requireContext().components.torController.quickstart
|
|
144 | 140 | quickstartSwitch.setOnCheckedChangeListener { _, isChecked ->
|
145 | 141 | viewModel.handleQuickstartChecked(isChecked)
|
146 | 142 | }
|
... | ... | @@ -31,12 +31,6 @@ class TorConnectionAssistViewModel( |
31 | 31 | return _progress
|
32 | 32 | }
|
33 | 33 | |
34 | - private val _quickStartToggle = MutableLiveData<Boolean>() // don't initialize with quickstart off the bat
|
|
35 | - fun quickstartToggle(): LiveData<Boolean?> {
|
|
36 | - _quickStartToggle.value = _torController.quickstart // quickstart isn't ready until torSettings is ready
|
|
37 | - return _quickStartToggle
|
|
38 | - }
|
|
39 | - |
|
40 | 34 | init {
|
41 | 35 | Log.d(TAG, "initiating TorConnectionAssistViewModel")
|
42 | 36 | _torController.registerTorListener(this)
|
... | ... | @@ -55,7 +49,6 @@ class TorConnectionAssistViewModel( |
55 | 49 | |
56 | 50 | fun handleQuickstartChecked(checked: Boolean) {
|
57 | 51 | _torController.quickstart = checked
|
58 | - _quickStartToggle.value = checked
|
|
59 | 52 | }
|
60 | 53 | |
61 | 54 | fun handleButton1Pressed(
|
1 | +<?xml version="1.0" encoding="utf-8"?>
|
|
2 | +<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
|
3 | + - License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4 | + - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
|
5 | + |
|
6 | +<com.google.android.material.switchmaterial.SwitchMaterial xmlns:android="http://schemas.android.com/apk/res/android"
|
|
7 | + android:id="@+id/switch_widget"
|
|
8 | + android:layout_width="wrap_content"
|
|
9 | + android:layout_height="match_parent"
|
|
10 | + android:clickable="false"
|
|
11 | + android:focusable="false"
|
|
12 | + android:gravity="center_vertical"
|
|
13 | + android:orientation="vertical" /> |
... | ... | @@ -16,6 +16,7 @@ |
16 | 16 | <string name="pref_key_accessibility_font_scale" translatable="false">pref_key_accessibility_font_scale</string>
|
17 | 17 | <string name="pref_key_privacy" translatable="false">pref_key_privacy</string>
|
18 | 18 | <string name="pref_key_connection" translatable="false">pref_key_connection</string>
|
19 | + <string name="pref_key_quick_start" translatable="false">pref_key_quick_start</string>
|
|
19 | 20 | <string name="pref_key_accessibility_force_enable_zoom" translatable="false">pref_key_accessibility_force_enable_zoom</string>
|
20 | 21 | <string name="pref_key_advanced" translatable="false">pref_key_advanced</string>
|
21 | 22 | <string name="pref_key_language" translatable="false">pref_key_language</string>
|
... | ... | @@ -170,6 +170,12 @@ |
170 | 170 | android:title="@string/preferences_tor_network_settings_bridge_config"
|
171 | 171 | android:summary="@string/preferences_tor_network_settings_bridge_config_description" />
|
172 | 172 | |
173 | + <org.mozilla.fenix.tor.QuickStartPreference
|
|
174 | + android:key="@string/pref_key_quick_start"
|
|
175 | + android:summary="@string/connection_assist_always_connect_automatically_toggle_description"
|
|
176 | + android:title="@string/tor_bootstrap_quick_start_label"
|
|
177 | + app:iconSpaceReserved="false" />
|
|
178 | + |
|
173 | 179 | <Preference
|
174 | 180 | android:key="@string/pref_key_use_new_bootstrap"
|
175 | 181 | app:iconSpaceReserved="false"
|