Matthew Finkel pushed to branch tor-browser-82.0.0b4-10.0-1 at The Tor Project / Applications / fenix
Commits:
-
268e56f4
by Matthew Finkel at 2020-10-14T20:04:47+00:00
-
be57d067
by Matthew Finkel at 2020-10-14T20:04:51+00:00
-
e8d4affa
by Matthew Finkel at 2020-10-16T01:26:23+00:00
5 changed files:
- app/src/main/java/org/mozilla/fenix/components/Core.kt
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/TorOnboardingSecurityLevelViewHolder.kt
- app/src/main/java/org/mozilla/fenix/utils/Settings.kt
- app/src/main/res/layout/tor_onboarding_security_level.xml
- app/src/main/res/values/torbrowser_strings.xml
Changes:
... | ... | @@ -92,7 +92,8 @@ class Core(private val context: Context, private val crashReporter: CrashReporti |
92 | 92 |
fontInflationEnabled = context.settings().shouldUseAutoSize,
|
93 | 93 |
suspendMediaWhenInactive = false,
|
94 | 94 |
forceUserScalableContent = context.settings().forceEnableZoom,
|
95 |
- loginAutofillEnabled = context.settings().shouldAutofillLogins
|
|
95 |
+ loginAutofillEnabled = context.settings().shouldAutofillLogins,
|
|
96 |
+ torSecurityLevel = context.settings().torSecurityLevel().intRepresentation
|
|
96 | 97 |
)
|
97 | 98 |
|
98 | 99 |
GeckoEngine(
|
... | ... | @@ -69,9 +69,20 @@ class TorOnboardingSecurityLevelViewHolder( |
69 | 69 |
safestSecurityLevel.onClickListener {
|
70 | 70 |
updateSecurityLevel(SecurityLevel.SAFEST)
|
71 | 71 |
}
|
72 |
+ |
|
73 |
+ updateSecurityLevel(securityLevel)
|
|
72 | 74 |
}
|
73 | 75 |
|
74 | 76 |
private fun updateSecurityLevel(newLevel: SecurityLevel) {
|
77 |
+ val resources = itemView.context.resources
|
|
78 |
+ val securityLevel = when (newLevel) {
|
|
79 |
+ SecurityLevel.STANDARD -> resources.getString(R.string.tor_security_level_standard_option)
|
|
80 |
+ SecurityLevel.SAFER -> resources.getString(R.string.tor_security_level_safer_option)
|
|
81 |
+ SecurityLevel.SAFEST -> resources.getString(R.string.tor_security_level_safest_option)
|
|
82 |
+ }
|
|
83 |
+ itemView.current_level.text = resources.getString(
|
|
84 |
+ R.string.tor_onboarding_chosen_security_level_label, securityLevel
|
|
85 |
+ )
|
|
75 | 86 |
itemView.context.components.let {
|
76 | 87 |
it.core.engine.settings.torSecurityLevel = newLevel.intRepresentation
|
77 | 88 |
}
|
... | ... | @@ -40,6 +40,7 @@ import org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataOnQuitTyp |
40 | 40 |
import org.mozilla.fenix.settings.logins.SavedLoginsSortingStrategyMenu
|
41 | 41 |
import org.mozilla.fenix.settings.logins.SortingStrategy
|
42 | 42 |
import org.mozilla.fenix.settings.registerOnSharedPreferenceChangeListener
|
43 |
+import org.mozilla.fenix.tor.SecurityLevel
|
|
43 | 44 |
import java.security.InvalidParameterException
|
44 | 45 |
|
45 | 46 |
private const val AUTOPLAY_USER_SETTING = "AUTOPLAY_USER_SETTING"
|
... | ... | @@ -176,6 +177,33 @@ class Settings(private val appContext: Context) : PreferencesHolder { |
176 | 177 |
true
|
177 | 178 |
)
|
178 | 179 |
|
180 |
+ var standardSecurityLevel by booleanPreference(
|
|
181 |
+ appContext.getPreferenceKey(SecurityLevel.STANDARD.preferenceKey),
|
|
182 |
+ default = true
|
|
183 |
+ )
|
|
184 |
+ |
|
185 |
+ var saferSecurityLevel by booleanPreference(
|
|
186 |
+ appContext.getPreferenceKey(SecurityLevel.SAFER.preferenceKey),
|
|
187 |
+ default = false
|
|
188 |
+ )
|
|
189 |
+ |
|
190 |
+ var safestSecurityLevel by booleanPreference(
|
|
191 |
+ appContext.getPreferenceKey(SecurityLevel.SAFEST.preferenceKey),
|
|
192 |
+ default = false
|
|
193 |
+ )
|
|
194 |
+ |
|
195 |
+ // torSecurityLevel is defined as the first |true| preference,
|
|
196 |
+ // beginning at the safest level.
|
|
197 |
+ // If multiple preferences are true, then that is a bug and the
|
|
198 |
+ // highest |true| security level is chosen.
|
|
199 |
+ // Standard is the default level.
|
|
200 |
+ fun torSecurityLevel(): SecurityLevel = when {
|
|
201 |
+ safestSecurityLevel -> SecurityLevel.SAFEST
|
|
202 |
+ saferSecurityLevel -> SecurityLevel.SAFER
|
|
203 |
+ standardSecurityLevel -> SecurityLevel.STANDARD
|
|
204 |
+ else -> SecurityLevel.STANDARD
|
|
205 |
+ }
|
|
206 |
+ |
|
179 | 207 |
// If any of the prefs have been modified, quit displaying the fenix moved tip
|
180 | 208 |
fun shouldDisplayFenixMovingTip(): Boolean =
|
181 | 209 |
preferences.getBoolean(
|
... | ... | @@ -32,9 +32,18 @@ |
32 | 32 |
android:textAppearance="@style/Body14TextStyle"
|
33 | 33 |
app:layout_constraintEnd_toEndOf="parent"
|
34 | 34 |
app:layout_constraintStart_toStartOf="parent"
|
35 |
- app:layout_constraintTop_toBottomOf="@id/header_text"
|
|
35 |
+ app:layout_constraintTop_toBottomOf="@id/current_level"
|
|
36 | 36 |
tools:text="@string/tor_onboarding_security_level_description" />
|
37 | 37 |
|
38 |
+ <TextView
|
|
39 |
+ android:id="@+id/current_level"
|
|
40 |
+ android:layout_width="match_parent"
|
|
41 |
+ android:layout_height="wrap_content"
|
|
42 |
+ android:layout_marginTop="12dp"
|
|
43 |
+ app:layout_constraintEnd_toEndOf="parent"
|
|
44 |
+ app:layout_constraintStart_toStartOf="parent"
|
|
45 |
+ app:layout_constraintTop_toBottomOf="@id/header_text"
|
|
46 |
+ tools:text="@string/tor_onboarding_chosen_security_level_label" />
|
|
38 | 47 |
|
39 | 48 |
<org.mozilla.fenix.onboarding.OnboardingRadioButton
|
40 | 49 |
android:id="@+id/security_level_standard_option"
|
... | ... | @@ -20,6 +20,7 @@ |
20 | 20 |
|
21 | 21 |
<string name="tor_onboarding_security_level">Set your Security Level</string>
|
22 | 22 |
<string name="tor_onboarding_security_level_description">Disable certain web features that can be used to attack you, and harm your security, anonymity, and privacy.</string>
|
23 |
+ <string name="tor_onboarding_chosen_security_level_label">Current Security Level: %s</string>
|
|
23 | 24 |
<string name="tor_onboarding_security_settings_button">Open Security Settings</string>
|
24 | 25 |
<string name="tor_onboarding_donate_header">Donate and keep Tor safe</string>
|
25 | 26 |
<string name="tor_onboarding_donate_description">Tor is free to use because of donations from people like you.</string>
|