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

Commits:

13 changed files:

Changes:

  • fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
    ... ... @@ -1186,19 +1186,15 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorIn
    1186 1186
         }
    
    1187 1187
     
    
    1188 1188
         open fun navigateToHome() {
    
    1189
    -        if (settings().useNewBootstrap) {
    
    1190
    -            if (settings().useNewBootstrapNativeUi) {
    
    1191
    -                navHost.navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist())
    
    1192
    -            } else {
    
    1193
    -                navHost.navController.navigate(NavGraphDirections.actionStartupHome())
    
    1194
    -                openToBrowserAndLoad(
    
    1195
    -                    searchTermOrURL = "about:torconnect",
    
    1196
    -                    newTab = true,
    
    1197
    -                    from = BrowserDirection.FromHome,
    
    1198
    -                )
    
    1199
    -            }
    
    1189
    +        if (!settings().useHtmlConnectionUi) {
    
    1190
    +            navHost.navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist())
    
    1200 1191
             } else {
    
    1201
    -            navHost.navController.navigate(NavGraphDirections.actionStartupTorbootstrap())
    
    1192
    +            navHost.navController.navigate(NavGraphDirections.actionStartupHome())
    
    1193
    +            openToBrowserAndLoad(
    
    1194
    +                searchTermOrURL = "about:torconnect",
    
    1195
    +                newTab = true,
    
    1196
    +                from = BrowserDirection.FromHome,
    
    1197
    +            )
    
    1202 1198
             }
    
    1203 1199
         }
    
    1204 1200
     
    

  • fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt
    ... ... @@ -1217,12 +1217,7 @@ abstract class BaseBrowserFragment :
    1217 1217
         private fun handleBetaHtmlTorConnect() {
    
    1218 1218
             val currentTab = getCurrentTab() ?: return
    
    1219 1219
             if (currentTab.content.url == "about:torconnect") {
    
    1220
    -            if (!requireActivity().settings().useNewBootstrap) {
    
    1221
    -                requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id)
    
    1222
    -                (requireActivity() as HomeActivity).navHost.navController.navigate(
    
    1223
    -                    NavGraphDirections.actionStartupTorbootstrap(),
    
    1224
    -                )
    
    1225
    -            } else if (!requireActivity().settings().useNewBootstrapHtmlUi) {
    
    1220
    +            if (!requireActivity().settings().useHtmlConnectionUi) {
    
    1226 1221
                     requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id)
    
    1227 1222
                     (requireActivity() as HomeActivity).navigateToHome()
    
    1228 1223
                 } else {
    

  • fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt
    ... ... @@ -202,7 +202,7 @@ class Components(private val context: Context) {
    202 202
                 ),
    
    203 203
             )
    
    204 204
         }
    
    205
    -    val torController by lazyMonitored { if (settings.useNewBootstrap) TorControllerGV(context) else TorControllerTAS(context) }
    
    205
    +    val torController by lazyMonitored { TorControllerGV(context) }
    
    206 206
     }
    
    207 207
     
    
    208 208
     /**
    

  • fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt
    ... ... @@ -145,7 +145,6 @@ class Core(
    145 145
                     .shouldShowCookieBannerReEngagementDialog(),
    
    146 146
                 torSecurityLevel = context.settings().torSecurityLevel().intRepresentation,
    
    147 147
                 spoofEnglish = context.settings().spoofEnglish,
    
    148
    -            useNewBootstrap = context.settings().useNewBootstrap,
    
    149 148
             )
    
    150 149
     
    
    151 150
             GeckoEngine(
    

  • fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt
    ... ... @@ -40,6 +40,7 @@ import mozilla.components.concept.sync.Profile
    40 40
     import mozilla.components.service.glean.private.NoExtras
    
    41 41
     import mozilla.components.support.ktx.android.view.showKeyboard
    
    42 42
     import org.mozilla.fenix.BrowserDirection
    
    43
    +import org.mozilla.fenix.BuildConfig
    
    43 44
     import org.mozilla.fenix.Config
    
    44 45
     import org.mozilla.fenix.FeatureFlags
    
    45 46
     import org.mozilla.fenix.GleanMetrics.Addons
    
    ... ... @@ -738,13 +739,9 @@ class SettingsFragment : PreferenceFragmentCompat() {
    738 739
                 }
    
    739 740
             }
    
    740 741
     
    
    741
    -        requirePreference<Preference>(R.string.pref_key_use_new_bootstrap).apply {
    
    742
    -            setOnPreferenceClickListener {
    
    743
    -                val directions =
    
    744
    -                    SettingsFragmentDirections.actionSettingsFragmentToBetaConnectionFeaturesFragment()
    
    745
    -                requireView().findNavController().navigate(directions)
    
    746
    -                true
    
    747
    -            }
    
    742
    +        requirePreference<Preference>(R.string.pref_key_use_html_connection_ui).apply {
    
    743
    +            onPreferenceChangeListener = object : SharedPreferenceUpdater() {}
    
    744
    +            isVisible = BuildConfig.DEBUG
    
    748 745
             }
    
    749 746
     
    
    750 747
             requirePreference<Preference>(R.string.pref_key_tor_logs).apply {
    

  • fenix/app/src/main/java/org/mozilla/fenix/tor/TorBetaConnectionFeaturesFragment.kt deleted
    1
    -/* This Source Code Form is subject to the terms of the Mozilla Public
    
    2
    - * License, v. 2.0. If a copy of the MPL was not distributed with this
    
    3
    - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
    
    4
    -
    
    5
    -package org.mozilla.fenix.tor
    
    6
    -
    
    7
    -import android.os.Bundle
    
    8
    -import android.view.LayoutInflater
    
    9
    -import android.view.View
    
    10
    -import android.view.ViewGroup
    
    11
    -import androidx.core.view.children
    
    12
    -import androidx.fragment.app.Fragment
    
    13
    -import org.mozilla.fenix.databinding.TorNetworkSettingsBetaConnectionFeaturesBinding
    
    14
    -import org.mozilla.fenix.ext.components
    
    15
    -import org.mozilla.fenix.ext.settings
    
    16
    -
    
    17
    -/**
    
    18
    - * Lets the user customize beta connection features mode.
    
    19
    - */
    
    20
    -class TorBetaConnectionFeaturesFragment : Fragment() {
    
    21
    -    override fun onCreateView(
    
    22
    -        inflater: LayoutInflater,
    
    23
    -        container: ViewGroup?,
    
    24
    -        savedInstanceState: Bundle?,
    
    25
    -    ): View {
    
    26
    -        val binding = TorNetworkSettingsBetaConnectionFeaturesBinding.inflate(inflater)
    
    27
    -
    
    28
    -        binding.enableBetaConnectionFeaturesSwitch.run {
    
    29
    -            isChecked = context.settings().useNewBootstrap
    
    30
    -            setConnectionAssistUI(binding, isChecked)
    
    31
    -
    
    32
    -            setOnCheckedChangeListener { _, isConnectionAssistEnabled ->
    
    33
    -                context.settings().useNewBootstrap = isConnectionAssistEnabled
    
    34
    -                setConnectionAssistUI(binding, isConnectionAssistEnabled)
    
    35
    -                updateEngineConnectionAssistMode()
    
    36
    -            }
    
    37
    -        }
    
    38
    -
    
    39
    -        // Since the beta connection features modes are in a RadioGroup we only need one listener to know of all their changes.
    
    40
    -        binding.useNewBootstrapWithNativeUiRadioButton.setOnCheckedChangeListener { _, _ ->
    
    41
    -            updateEngineConnectionAssistMode()
    
    42
    -        }
    
    43
    -
    
    44
    -        return binding.root
    
    45
    -    }
    
    46
    -
    
    47
    -    private fun setConnectionAssistUI(
    
    48
    -        binding: TorNetworkSettingsBetaConnectionFeaturesBinding,
    
    49
    -        isBetaConnectionAssistEnabled: Boolean,
    
    50
    -    ) {
    
    51
    -        if (!isBetaConnectionAssistEnabled) {
    
    52
    -            binding.enableBetaConnectionFeaturesModes.apply {
    
    53
    -                clearCheck()
    
    54
    -                children.forEach { it.isEnabled = false }
    
    55
    -            }
    
    56
    -        } else {
    
    57
    -            binding.enableBetaConnectionFeaturesModes.children.forEach { it.isEnabled = true }
    
    58
    -        }
    
    59
    -    }
    
    60
    -
    
    61
    -    private fun updateEngineConnectionAssistMode() {
    
    62
    -        requireContext().components.core.engine.settings.useNewBootstrap =
    
    63
    -            requireContext().settings().useNewBootstrap
    
    64
    -    }
    
    65
    -
    
    66
    -}

  • fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapFragment.kt
    ... ... @@ -164,9 +164,7 @@ class TorBootstrapFragment : Fragment() {
    164 164
             // triggered to cause an automatic update on warm start (no tab selection occurs). So we
    
    165 165
             // update it manually here.
    
    166 166
             requireComponents.useCases.sessionUseCases.updateLastAccess()
    
    167
    -        if (requireContext().settings().useNewBootstrap){
    
    168
    -            (requireActivity() as HomeActivity).navigateToHome()
    
    169
    -        }
    
    167
    +        (requireActivity() as HomeActivity).navigateToHome()
    
    170 168
         }
    
    171 169
     
    
    172 170
         private fun handleTorBootstrapConnect() {
    

  • fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt
    ... ... @@ -21,7 +21,7 @@ class TorConnectionAssistViewModel(
    21 21
         private val TAG = "torConnectionAssistVM"
    
    22 22
         private val components = getApplication<Application>().components
    
    23 23
     
    
    24
    -    private val _torController: TorControllerGV = components.torController as TorControllerGV
    
    24
    +    private val _torController: TorControllerGV = components.torController
    
    25 25
     
    
    26 26
         private val _torConnectScreen = MutableStateFlow(ConnectAssistUiState.Splash)
    
    27 27
         internal val torConnectScreen: StateFlow<ConnectAssistUiState> = _torConnectScreen
    

  • fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
    ... ... @@ -1855,18 +1855,8 @@ class Settings(private val appContext: Context) : PreferencesHolder {
    1855 1855
          */
    
    1856 1856
         var enableUnifiedSearchSettingsUI: Boolean = showUnifiedSearchFeature && FeatureFlags.unifiedSearchSettings
    
    1857 1857
     
    
    1858
    -    var useNewBootstrap by booleanPreference(
    
    1859
    -        appContext.getPreferenceKey(R.string.pref_key_use_new_bootstrap),
    
    1860
    -        default = true,
    
    1861
    -    )
    
    1862
    -
    
    1863
    -    var useNewBootstrapNativeUi by booleanPreference(
    
    1864
    -        appContext.getPreferenceKey(R.string.pref_key_use_new_bootstrap_with_android_native),
    
    1865
    -        default = true,
    
    1866
    -    )
    
    1867
    -
    
    1868
    -    var useNewBootstrapHtmlUi by booleanPreference(
    
    1869
    -        appContext.getPreferenceKey(R.string.pref_key_use_new_bootstrap_with_html),
    
    1870
    -        default = false
    
    1858
    +    var useHtmlConnectionUi by booleanPreference(
    
    1859
    +        appContext.getPreferenceKey(R.string.pref_key_use_html_connection_ui),
    
    1860
    +        default = false,
    
    1871 1861
         )
    
    1872 1862
     }

  • fenix/app/src/main/res/layout/tor_network_settings_beta_connection_features.xml deleted
    1
    -<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
    
    2
    -   - License, v. 2.0. If a copy of the MPL was not distributed with this
    
    3
    -   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
    
    4
    -<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
    5
    -    xmlns:app="http://schemas.android.com/apk/res-auto"
    
    6
    -    android:layout_width="match_parent"
    
    7
    -    android:layout_height="wrap_content">
    
    8
    -
    
    9
    -    <TextView
    
    10
    -        android:id="@+id/enable_beta_connection_features_title"
    
    11
    -        android:layout_width="0dp"
    
    12
    -        android:layout_height="wrap_content"
    
    13
    -        android:layout_marginStart="16dp"
    
    14
    -        android:layout_marginTop="16dp"
    
    15
    -        android:layout_marginBottom="2dp"
    
    16
    -        android:clickable="false"
    
    17
    -        android:text="Enable beta connection features"
    
    18
    -        android:textAppearance="@style/ListItemTextStyle"
    
    19
    -        android:textSize="16sp"
    
    20
    -        app:layout_constraintBottom_toTopOf="@id/enable_beta_connection_features_summary"
    
    21
    -        app:layout_constraintEnd_toStartOf="@id/enable_beta_connection_features_switch"
    
    22
    -        app:layout_constraintStart_toStartOf="parent"
    
    23
    -        app:layout_constraintTop_toTopOf="parent"
    
    24
    -        app:lineHeight="24.sp" />
    
    25
    -
    
    26
    -    <TextView
    
    27
    -        android:id="@+id/enable_beta_connection_features_summary"
    
    28
    -        android:layout_width="0dp"
    
    29
    -        android:layout_height="wrap_content"
    
    30
    -        android:text="Help us test our new connection assist features which focuses on a streamlined connection with better integration with bridges"
    
    31
    -        android:textColor="?attr/textSecondary"
    
    32
    -        android:textColorLink="?attr/textSecondary"
    
    33
    -        android:textSize="12sp"
    
    34
    -        app:layout_constraintBottom_toTopOf="@id/enable_beta_connection_features_modes"
    
    35
    -        app:layout_constraintEnd_toEndOf="@id/enable_beta_connection_features_title"
    
    36
    -        app:layout_constraintStart_toStartOf="@id/enable_beta_connection_features_title"
    
    37
    -        app:layout_constraintTop_toBottomOf="@id/enable_beta_connection_features_title"
    
    38
    -        app:lineHeight="16.sp" />
    
    39
    -
    
    40
    -    <androidx.appcompat.widget.SwitchCompat
    
    41
    -        android:id="@+id/enable_beta_connection_features_switch"
    
    42
    -        android:layout_width="wrap_content"
    
    43
    -        android:layout_height="wrap_content"
    
    44
    -        android:minHeight="48dp"
    
    45
    -        android:paddingStart="18dp"
    
    46
    -        android:paddingEnd="18dp"
    
    47
    -        android:textColor="@color/state_list_text_color"
    
    48
    -        android:textOff="@string/studies_off"
    
    49
    -        android:textOn="@string/studies_on"
    
    50
    -        app:layout_constraintEnd_toEndOf="parent"
    
    51
    -        app:layout_constraintTop_toTopOf="@id/enable_beta_connection_features_title" />
    
    52
    -
    
    53
    -    <RadioGroup
    
    54
    -        android:id="@+id/enable_beta_connection_features_modes"
    
    55
    -        android:layout_width="match_parent"
    
    56
    -        android:layout_height="wrap_content"
    
    57
    -        android:layout_marginTop="10dp"
    
    58
    -        app:layout_constraintEnd_toEndOf="parent"
    
    59
    -        app:layout_constraintStart_toStartOf="parent"
    
    60
    -        app:layout_constraintTop_toBottomOf="@id/enable_beta_connection_features_summary">
    
    61
    -
    
    62
    -        <org.mozilla.fenix.settings.PreferenceBackedRadioButton
    
    63
    -            android:id="@+id/use_new_bootstrap_with_native_ui_radio_button"
    
    64
    -            android:layout_width="match_parent"
    
    65
    -            android:layout_height="wrap_content"
    
    66
    -            android:background="?android:attr/selectableItemBackground"
    
    67
    -            android:button="@null"
    
    68
    -            android:drawablePadding="@dimen/radio_button_preference_drawable_padding"
    
    69
    -            android:paddingStart="@dimen/radio_button_preference_horizontal"
    
    70
    -            android:paddingTop="@dimen/radio_button_preference_vertical"
    
    71
    -            android:paddingEnd="@dimen/radio_button_preference_horizontal"
    
    72
    -            android:paddingBottom="@dimen/radio_button_preference_vertical"
    
    73
    -            android:text="Native Android UI"
    
    74
    -            android:textAppearance="?android:attr/textAppearanceListItem"
    
    75
    -            android:textSize="16sp"
    
    76
    -            app:drawableStartCompat="?android:attr/listChoiceIndicatorSingle"
    
    77
    -            app:preferenceKey="@string/pref_key_use_new_bootstrap_with_android_native"
    
    78
    -            app:preferenceKeyDefaultValue="true" />
    
    79
    -
    
    80
    -        <org.mozilla.fenix.settings.PreferenceBackedRadioButton
    
    81
    -            android:id="@+id/use_new_bootstrap_with_html_ui_radio_button"
    
    82
    -            android:layout_width="match_parent"
    
    83
    -            android:layout_height="48dp"
    
    84
    -            android:background="?android:attr/selectableItemBackground"
    
    85
    -            android:button="@null"
    
    86
    -            android:drawablePadding="@dimen/radio_button_preference_drawable_padding"
    
    87
    -            android:paddingStart="@dimen/radio_button_preference_horizontal"
    
    88
    -            android:paddingTop="@dimen/radio_button_preference_vertical"
    
    89
    -            android:paddingEnd="@dimen/radio_button_preference_horizontal"
    
    90
    -            android:paddingBottom="@dimen/radio_button_preference_vertical"
    
    91
    -            android:text="HTML UI"
    
    92
    -            android:textAppearance="?android:attr/textAppearanceListItem"
    
    93
    -            android:textSize="16sp"
    
    94
    -            app:drawableStartCompat="?android:attr/listChoiceIndicatorSingle"
    
    95
    -            app:preferenceKey="@string/pref_key_use_new_bootstrap_with_html"
    
    96
    -            app:preferenceKeyDefaultValue="false" />
    
    97
    -    </RadioGroup>
    
    98
    -
    
    99
    -</androidx.constraintlayout.widget.ConstraintLayout>

  • fenix/app/src/main/res/navigation/nav_graph.xml
    ... ... @@ -977,11 +977,6 @@
    977 977
             android:id="@+id/torBridgeConfigFragment"
    
    978 978
             android:name="org.mozilla.fenix.settings.TorBridgeConfigFragment"
    
    979 979
             android:label="@string/preferences_tor_network_settings_bridge_config" />
    
    980
    -    <fragment
    
    981
    -        android:id="@+id/torBetaConnectionFeaturesFragment"
    
    982
    -        android:name="org.mozilla.fenix.tor.TorBetaConnectionFeaturesFragment"
    
    983
    -        android:label="Enable beta connection features"
    
    984
    -        tools:layout="@layout/tor_network_settings_beta_connection_features" />
    
    985 980
         <fragment
    
    986 981
             android:id="@+id/torLogsFragment"
    
    987 982
             android:name="org.mozilla.fenix.tor.TorLogsComposeFragment"
    

  • fenix/app/src/main/res/values/preference_keys.xml
    ... ... @@ -378,10 +378,8 @@
    378 378
     
    
    379 379
         <string name="pref_key_tor_network_settings_explanation" translatable="false">pref_key_tor_network_settings_explanation</string>
    
    380 380
         <string name="pref_key_tor_network_settings_bridge_config" translatable="false">pref_key_tor_network_settings_bridge_config</string>
    
    381
    -    <string name="pref_key_use_new_bootstrap" translatable="false">pref_key_use_new_bootstrap</string>
    
    382 381
         <string name="pref_key_tor_logs" translatable="false">pref_key_tor_logs</string>
    
    383
    -    <string name="pref_key_use_new_bootstrap_with_android_native" translatable="false">pref_key_use_new_bootstrap_with_android_native</string>
    
    384
    -    <string name="pref_key_use_new_bootstrap_with_html" translatable="false">pref_key_use_new_bootstrap_with_html</string>
    
    382
    +    <string name="pref_key_use_html_connection_ui" translatable="false">pref_key_use_html_connection_ui</string> <!-- Changing the pref_key should reset it to off for users that had it enabled   -->
    
    385 383
         <string name="pref_key_tor_network_settings_bridge_config_explanation" translatable="false">pref_key_tor_network_settings_bridge_config_explanation</string>
    
    386 384
         <string name="pref_key_tor_network_settings_bridge_config_toggle" translatable="false">pref_key_tor_network_settings_bridge_config_toggle</string>
    
    387 385
         <string name="pref_key_tor_network_settings_bridge_config_builtin_bridge_obfs4" translatable="false">pref_key_tor_network_settings_bridge_config_builtin_bridge_obfs4</string>
    

  • fenix/app/src/main/res/xml/preferences.xml
    ... ... @@ -176,10 +176,12 @@
    176 176
                 android:title="@string/tor_bootstrap_quick_start_label"
    
    177 177
                 app:iconSpaceReserved="false" />
    
    178 178
     
    
    179
    -        <Preference
    
    180
    -            android:key="@string/pref_key_use_new_bootstrap"
    
    181
    -            app:iconSpaceReserved="false"
    
    182
    -            android:title="Enable beta connection features" />
    
    179
    +        <SwitchPreference
    
    180
    +            android:defaultValue="false"
    
    181
    +            android:key="@string/pref_key_use_html_connection_ui"
    
    182
    +            android:summary="Recommended only for debugging"
    
    183
    +            android:title="Enable HTML connection UI"
    
    184
    +            app:iconSpaceReserved="false" />
    
    183 185
     
    
    184 186
             <Preference
    
    185 187
                 android:key="@string/pref_key_tor_logs"