Commit 99bb524a authored by clairehurst's avatar clairehurst 🌱
Browse files

fixup! TB 40041 [android]: Implement Tor Network Settings

parent ea7aa044
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -13,7 +13,6 @@ import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.util.Log
import android.view.LayoutInflater
import android.widget.Toast
import androidx.annotation.VisibleForTesting
@@ -62,16 +61,12 @@ import org.mozilla.fenix.ext.openSetDefaultBrowserOption
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.ext.showToolbar
import org.mozilla.fenix.gecko.GeckoProvider
import org.mozilla.fenix.nimbus.FxNimbus
import org.mozilla.fenix.perf.ProfilerViewModel
import org.mozilla.fenix.settings.account.AccountUiView
import org.mozilla.fenix.tor.QuickStartPreference
import org.mozilla.fenix.tor.SecurityLevel
import org.mozilla.fenix.tor.TorBridgeTransportConfig
import org.mozilla.fenix.tor.TorEvents
import org.mozilla.fenix.tor.QuickstartViewModel
import org.mozilla.fenix.utils.Settings
import org.mozilla.geckoview.BuildConfig
import kotlin.system.exitProcess
import org.mozilla.fenix.GleanMetrics.Settings as SettingsMetrics

@@ -83,6 +78,8 @@ class SettingsFragment : PreferenceFragmentCompat() {
    private lateinit var addonFilePicker: AddonFilePicker
    private val profilerViewModel: ProfilerViewModel by activityViewModels()

    private val quickstartViewModel: QuickstartViewModel by activityViewModels()

    @VisibleForTesting
    internal val accountObserver = object : AccountObserver {
        private fun updateAccountUi(profile: Profile? = null) {
@@ -764,10 +761,12 @@ class SettingsFragment : PreferenceFragmentCompat() {
            }
        }

        requirePreference<QuickStartPreference>(R.string.pref_key_quick_start).apply {
        requirePreference<SwitchPreference>(R.string.pref_key_quick_start).apply {
            isChecked = quickstartViewModel.quickstart().value == true
            setOnPreferenceClickListener {
                context.components.torController.quickstart = !context.components.torController.quickstart
                updateSwitch()
                quickstartViewModel.quickstartSet(
                    isChecked,
                )
                true
            }
        }
+0 −32
Original line number Diff line number Diff line
package org.mozilla.fenix.tor

import android.content.Context
import android.util.AttributeSet
import androidx.preference.PreferenceViewHolder
import androidx.preference.SwitchPreference
import com.google.android.material.switchmaterial.SwitchMaterial
import org.mozilla.fenix.R
import org.mozilla.fenix.ext.components

class QuickStartPreference @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
) : SwitchPreference(context, attrs) {

    private var switchView: SwitchMaterial? = null

    init {
        widgetLayoutResource = R.layout.preference_quick_start
    }

    override fun onBindViewHolder(holder: PreferenceViewHolder) {
        super.onBindViewHolder(holder)
        switchView = holder.findViewById(R.id.switch_widget) as SwitchMaterial

        updateSwitch()
    }

    fun updateSwitch() {
        switchView?.isChecked = context.components.torController.quickstart
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -176,7 +176,7 @@
            android:title="@string/preferences_tor_network_settings_bridge_config"
            android:summary="@string/preferences_tor_network_settings_bridge_config_description" />

        <org.mozilla.fenix.tor.QuickStartPreference
        <SwitchPreference
            android:key="@string/pref_key_quick_start"
            android:summary="@string/connection_assist_always_connect_automatically_toggle_description"
            android:title="@string/tor_bootstrap_quick_start_label"