Bug 1877833 - Utilize new credential management strings

fenix/125.0
sarah541 4 months ago committed by mergify[bot]
parent 0724939144
commit 2d03674397

@ -133,7 +133,7 @@ class SyncIntegrationTest {
verifySavedLoginsAfterSync() verifySavedLoginsAfterSync()
}.goBack { }.goBack {
// After checking the synced logins // After checking the synced logins
// on Logins and Passwords menu the Sync logins option is set to On // on Logins and Passwords menu the Sync passwords option is set to On
verifyDefaultViewAfterSync() verifyDefaultViewAfterSync()
} }
} }

@ -60,7 +60,7 @@ class CreditCardAutofillTest : TestSetup() {
MockCreditCard1.MOCK_EXPIRATION_MONTH, MockCreditCard1.MOCK_EXPIRATION_MONTH,
MockCreditCard1.MOCK_EXPIRATION_YEAR, MockCreditCard1.MOCK_EXPIRATION_YEAR,
) )
// Opening Manage saved cards to dismiss here the Secure your credit prompt // Opening Manage cards to dismiss here the Secure your credit prompt
clickManageSavedCreditCardsButton() clickManageSavedCreditCardsButton()
clickSecuredCreditCardsLaterButton() clickSecuredCreditCardsLaterButton()
}.goBackToAutofillSettings { }.goBackToAutofillSettings {
@ -470,7 +470,7 @@ class CreditCardAutofillTest : TestSetup() {
MockCreditCard2.MOCK_EXPIRATION_MONTH, MockCreditCard2.MOCK_EXPIRATION_MONTH,
MockCreditCard2.MOCK_EXPIRATION_YEAR, MockCreditCard2.MOCK_EXPIRATION_YEAR,
) )
// Opening Manage saved cards to dismiss here the Secure your credit prompt // Opening Manage cards to dismiss here the Secure your credit prompt
clickManageSavedCreditCardsButton() clickManageSavedCreditCardsButton()
clickSecuredCreditCardsLaterButton() clickSecuredCreditCardsLaterButton()
} }
@ -521,7 +521,7 @@ class CreditCardAutofillTest : TestSetup() {
MockCreditCard2.MOCK_EXPIRATION_MONTH, MockCreditCard2.MOCK_EXPIRATION_MONTH,
MockCreditCard2.MOCK_EXPIRATION_YEAR, MockCreditCard2.MOCK_EXPIRATION_YEAR,
) )
// Opening Manage saved cards to dismiss here the Secure your credit prompt // Opening Manage cards to dismiss here the Secure your credit prompt
clickManageSavedCreditCardsButton() clickManageSavedCreditCardsButton()
clickSecuredCreditCardsLaterButton() clickSecuredCreditCardsLaterButton()
} }

@ -56,14 +56,14 @@ class LoginsTest : TestSetup() {
} }
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2092713 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2092713
// Tests the Logins and passwords menu items and default values // Tests the Passwords menu items and default values
@Test @Test
fun loginsAndPasswordsSettingsItemsTest() { fun loginsAndPasswordsSettingsItemsTest() {
homeScreen { homeScreen {
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
// Necessary to scroll a little bit for all screen sizes // Necessary to scroll a little bit for all screen sizes
scrollToElementByText("Logins and passwords") scrollToElementByText("Passwords")
}.openLoginsAndPasswordSubMenu { }.openLoginsAndPasswordSubMenu {
verifyDefaultView() verifyDefaultView()
verifyAutofillInFirefoxToggle(true) verifyAutofillInFirefoxToggle(true)
@ -80,7 +80,7 @@ class LoginsTest : TestSetup() {
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
// Necessary to scroll a little bit for all screen sizes // Necessary to scroll a little bit for all screen sizes
scrollToElementByText("Logins and passwords") scrollToElementByText("Passwords")
}.openLoginsAndPasswordSubMenu { }.openLoginsAndPasswordSubMenu {
verifyDefaultView() verifyDefaultView()
}.openSavedLogins { }.openSavedLogins {
@ -98,7 +98,7 @@ class LoginsTest : TestSetup() {
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
// Necessary to scroll a little bit for all screen sizes // Necessary to scroll a little bit for all screen sizes
scrollToElementByText("Logins and passwords") scrollToElementByText("Passwords")
}.openLoginsAndPasswordSubMenu { }.openLoginsAndPasswordSubMenu {
}.openSyncLogins { }.openSyncLogins {
verifyReadyToScanOption() verifyReadyToScanOption()
@ -132,7 +132,7 @@ class LoginsTest : TestSetup() {
browserScreen { browserScreen {
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
scrollToElementByText("Logins and passwords") scrollToElementByText("Passwords")
}.openLoginsAndPasswordSubMenu { }.openLoginsAndPasswordSubMenu {
verifyDefaultView() verifyDefaultView()
}.openSavedLogins { }.openSavedLogins {
@ -222,7 +222,7 @@ class LoginsTest : TestSetup() {
clickPageObject(itemWithText("Update")) clickPageObject(itemWithText("Update"))
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
scrollToElementByText("Logins and passwords") scrollToElementByText("Passwords")
}.openLoginsAndPasswordSubMenu { }.openLoginsAndPasswordSubMenu {
}.openSavedLogins { }.openSavedLogins {
verifySecurityPromptForLogins() verifySecurityPromptForLogins()

@ -201,9 +201,9 @@ class SettingsRobot {
Log.i(TAG, "verifyEnhancedTrackingProtectionButton: Verified that the \"Enhanced Tracking Protection\" button is visible") Log.i(TAG, "verifyEnhancedTrackingProtectionButton: Verified that the \"Enhanced Tracking Protection\" button is visible")
} }
fun verifyLoginsAndPasswordsButton() { fun verifyLoginsAndPasswordsButton() {
scrollToElementByText("Logins and passwords") scrollToElementByText("Passwords")
Log.i(TAG, "verifyLoginsAndPasswordsButton: Trying to verify that the \"Logins and passwords\" button is visible") Log.i(TAG, "verifyLoginsAndPasswordsButton: Trying to verify that the \"Logins and passwords\" button is visible")
onView(withText(R.string.preferences_passwords_logins_and_passwords)) onView(withText(R.string.preferences_passwords_logins_and_passwords_2))
.check(matches(withEffectiveVisibility(Visibility.VISIBLE))) .check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
Log.i(TAG, "verifyLoginsAndPasswordsButton: Verified that the \"Logins and passwords\" button is visible") Log.i(TAG, "verifyLoginsAndPasswordsButton: Verified that the \"Logins and passwords\" button is visible")
} }
@ -625,9 +625,9 @@ class SettingsRobot {
} }
fun openLoginsAndPasswordSubMenu(interact: SettingsSubMenuLoginsAndPasswordRobot.() -> Unit): SettingsSubMenuLoginsAndPasswordRobot.Transition { fun openLoginsAndPasswordSubMenu(interact: SettingsSubMenuLoginsAndPasswordRobot.() -> Unit): SettingsSubMenuLoginsAndPasswordRobot.Transition {
scrollToElementByText("Logins and passwords") scrollToElementByText("Passwords")
Log.i(TAG, "openLoginsAndPasswordSubMenu: Trying to click the \"Logins and passwords\" button") Log.i(TAG, "openLoginsAndPasswordSubMenu: Trying to click the \"Logins and passwords\" button")
onView(withText("Logins and passwords")).click() onView(withText("Passwords")).click()
Log.i(TAG, "openLoginsAndPasswordSubMenu: Clicked the \"Logins and passwords\" button") Log.i(TAG, "openLoginsAndPasswordSubMenu: Clicked the \"Logins and passwords\" button")
SettingsSubMenuLoginsAndPasswordRobot().interact() SettingsSubMenuLoginsAndPasswordRobot().interact()

@ -110,7 +110,7 @@ class SettingsSubMenuAutofillRobot {
fun verifyAddressesAutofillToggle(enabled: Boolean) { fun verifyAddressesAutofillToggle(enabled: Boolean) {
Log.i(TAG, "verifyAddressesAutofillToggle: Trying to verify that the \"Save and autofill addresses\" toggle is checked: $enabled") Log.i(TAG, "verifyAddressesAutofillToggle: Trying to verify that the \"Save and autofill addresses\" toggle is checked: $enabled")
onView(withText(R.string.preferences_addresses_save_and_autofill_addresses)) onView(withText(R.string.preferences_addresses_save_and_autofill_addresses_2))
.check( .check(
matches( matches(
hasCousin( hasCousin(
@ -130,7 +130,7 @@ class SettingsSubMenuAutofillRobot {
fun verifySaveAndAutofillCreditCardsToggle(enabled: Boolean) { fun verifySaveAndAutofillCreditCardsToggle(enabled: Boolean) {
Log.i(TAG, "verifySaveAndAutofillCreditCardsToggle: Trying to verify that the \"Save and autofill cards\" toggle is checked: $enabled") Log.i(TAG, "verifySaveAndAutofillCreditCardsToggle: Trying to verify that the \"Save and autofill cards\" toggle is checked: $enabled")
onView(withText(R.string.preferences_credit_cards_save_and_autofill_cards)) onView(withText(R.string.preferences_credit_cards_save_and_autofill_cards_2))
.check( .check(
matches( matches(
hasCousin( hasCousin(
@ -229,9 +229,9 @@ class SettingsSubMenuAutofillRobot {
} }
fun clickSaveAndAutofillAddressesOption() { fun clickSaveAndAutofillAddressesOption() {
Log.i(TAG, "clickSaveAndAutofillAddressesOption: Trying to click the \"Save and autofill addresses\" button") Log.i(TAG, "clickSaveAndAutofillAddressesOption: Trying to click the \"Save and fill addresses\" button")
saveAndAutofillAddressesOption().click() saveAndAutofillAddressesOption().click()
Log.i(TAG, "clickSaveAndAutofillAddressesOption: Clicked the \"Save and autofill addresses\" button") Log.i(TAG, "clickSaveAndAutofillAddressesOption: Clicked the \"Save and fill addresses\" button")
} }
fun clickAddAddressButton() { fun clickAddAddressButton() {
Log.i(TAG, "clickAddAddressButton: Trying to click the \"Add address\" button") Log.i(TAG, "clickAddAddressButton: Trying to click the \"Add address\" button")
@ -527,10 +527,10 @@ class SettingsSubMenuAutofillRobot {
fun verifyEditCreditCardToolbarTitle() = assertUIObjectExists(editCreditCardToolbarTitle()) fun verifyEditCreditCardToolbarTitle() = assertUIObjectExists(editCreditCardToolbarTitle())
fun verifyCreditCardNumberErrorMessage() = fun verifyCreditCardNumberErrorMessage() =
assertUIObjectExists(itemContainingText(getStringResource(R.string.credit_cards_number_validation_error_message))) assertUIObjectExists(itemContainingText(getStringResource(R.string.credit_cards_number_validation_error_message_2)))
fun verifyNameOnCreditCardErrorMessage() = fun verifyNameOnCreditCardErrorMessage() =
assertUIObjectExists(itemContainingText(getStringResource(R.string.credit_cards_name_on_card_validation_error_message))) assertUIObjectExists(itemContainingText(getStringResource(R.string.credit_cards_name_on_card_validation_error_message_2)))
class Transition { class Transition {
fun goBack(interact: SettingsRobot.() -> Unit): SettingsRobot.Transition { fun goBack(interact: SettingsRobot.() -> Unit): SettingsRobot.Transition {
@ -585,8 +585,8 @@ private fun manageAddressesToolbarTitle() =
.childSelector(UiSelector().text(getStringResource(R.string.addresses_manage_addresses))), .childSelector(UiSelector().text(getStringResource(R.string.addresses_manage_addresses))),
) )
private fun saveAndAutofillAddressesOption() = itemContainingText(getStringResource(R.string.preferences_addresses_save_and_autofill_addresses)) private fun saveAndAutofillAddressesOption() = itemContainingText(getStringResource(R.string.preferences_addresses_save_and_autofill_addresses_2))
private fun saveAndAutofillAddressesSummary() = itemContainingText(getStringResource(R.string.preferences_addresses_save_and_autofill_addresses_summary)) private fun saveAndAutofillAddressesSummary() = itemContainingText(getStringResource(R.string.preferences_addresses_save_and_autofill_addresses_summary_2))
private fun addAddressButton() = itemContainingText(getStringResource(R.string.preferences_addresses_add_address)) private fun addAddressButton() = itemContainingText(getStringResource(R.string.preferences_addresses_add_address))
private fun manageAddressesButton() = private fun manageAddressesButton() =
mDevice.findObject( mDevice.findObject(
@ -614,14 +614,14 @@ private fun toolbarDeleteAddressButton() = itemWithResId("$packageName:id/delete
private fun cancelDeleteAddressButton() = onView(withId(android.R.id.button2)).inRoot(RootMatchers.isDialog()) private fun cancelDeleteAddressButton() = onView(withId(android.R.id.button2)).inRoot(RootMatchers.isDialog())
private fun confirmDeleteAddressButton() = onView(withId(android.R.id.button1)).inRoot(RootMatchers.isDialog()) private fun confirmDeleteAddressButton() = onView(withId(android.R.id.button1)).inRoot(RootMatchers.isDialog())
private fun creditCardsSectionTitle() = itemContainingText(getStringResource(R.string.preferences_credit_cards)) private fun creditCardsSectionTitle() = itemContainingText(getStringResource(R.string.preferences_credit_cards_2))
private fun saveAndAutofillCreditCardsOption() = itemContainingText(getStringResource(R.string.preferences_credit_cards_save_and_autofill_cards)) private fun saveAndAutofillCreditCardsOption() = itemContainingText(getStringResource(R.string.preferences_credit_cards_save_and_autofill_cards_2))
private fun saveAndAutofillCreditCardsSummary() = itemContainingText(getStringResource(R.string.preferences_credit_cards_save_and_autofill_cards_summary)) private fun saveAndAutofillCreditCardsSummary() = itemContainingText(getStringResource(R.string.preferences_credit_cards_save_and_autofill_cards_summary_2))
private fun syncCreditCardsAcrossDevicesButton() = itemContainingText(getStringResource(R.string.preferences_credit_cards_sync_cards_across_devices)) private fun syncCreditCardsAcrossDevicesButton() = itemContainingText(getStringResource(R.string.preferences_credit_cards_sync_cards_across_devices))
private fun addCreditCardButton() = mDevice.findObject(UiSelector().textContains(getStringResource(R.string.preferences_credit_cards_add_credit_card))) private fun addCreditCardButton() = mDevice.findObject(UiSelector().textContains(getStringResource(R.string.preferences_credit_cards_add_credit_card_2)))
private fun savedCreditCardsToolbarTitle() = itemContainingText(getStringResource(R.string.credit_cards_saved_cards)) private fun savedCreditCardsToolbarTitle() = itemContainingText(getStringResource(R.string.credit_cards_saved_cards))
private fun editCreditCardToolbarTitle() = itemContainingText(getStringResource(R.string.credit_cards_edit_card)) private fun editCreditCardToolbarTitle() = itemContainingText(getStringResource(R.string.credit_cards_edit_card))
private fun manageSavedCreditCardsButton() = mDevice.findObject(UiSelector().textContains(getStringResource(R.string.preferences_credit_cards_manage_saved_cards))) private fun manageSavedCreditCardsButton() = mDevice.findObject(UiSelector().textContains(getStringResource(R.string.preferences_credit_cards_manage_saved_cards_2)))
private fun creditCardNumberTextInput() = mDevice.findObject(UiSelector().resourceId("$packageName:id/card_number_input")) private fun creditCardNumberTextInput() = mDevice.findObject(UiSelector().resourceId("$packageName:id/card_number_input"))
private fun nameOnCreditCardTextInput() = mDevice.findObject(UiSelector().resourceId("$packageName:id/name_on_card_input")) private fun nameOnCreditCardTextInput() = mDevice.findObject(UiSelector().resourceId("$packageName:id/name_on_card_input"))
private fun expiryMonthDropDown() = mDevice.findObject(UiSelector().resourceId("$packageName:id/expiry_month_drop_down")) private fun expiryMonthDropDown() = mDevice.findObject(UiSelector().resourceId("$packageName:id/expiry_month_drop_down"))

@ -38,10 +38,10 @@ import org.mozilla.fenix.helpers.ext.waitNotNull
class SettingsSubMenuLoginsAndPasswordRobot { class SettingsSubMenuLoginsAndPasswordRobot {
fun verifyDefaultView() { fun verifyDefaultView() {
mDevice.waitNotNull(Until.findObjects(By.text("Save logins and passwords")), TestAssetHelper.waitingTime) mDevice.waitNotNull(Until.findObjects(By.text("Save passwords")), TestAssetHelper.waitingTime)
Log.i(TAG, "verifyDefaultView: Trying to verify that the \"Save logins and passwords\" button is displayed") Log.i(TAG, "verifyDefaultView: Trying to verify that the \"Save logins and passwords\" button is displayed")
saveLoginsAndPasswordButton().check(matches(isDisplayed())) saveLoginsAndPasswordButton().check(matches(isDisplayed()))
Log.i(TAG, "verifyDefaultView: Verified that the \"Save logins and passwords\" button is displayed") Log.i(TAG, "verifyDefaultView: Verified that the \"Save passwords\" button is displayed")
Log.i(TAG, "verifyDefaultView: Trying to verify that the Autofill in Firefox option is displayed") Log.i(TAG, "verifyDefaultView: Trying to verify that the Autofill in Firefox option is displayed")
autofillInFirefoxOption().check(matches(isDisplayed())) autofillInFirefoxOption().check(matches(isDisplayed()))
Log.i(TAG, "verifyDefaultView: Verified that the Autofill in Firefox option is displayed") Log.i(TAG, "verifyDefaultView: Verified that the Autofill in Firefox option is displayed")
@ -179,11 +179,11 @@ fun settingsSubMenuLoginsAndPassword(interact: SettingsSubMenuLoginsAndPasswordR
return SettingsSubMenuLoginsAndPasswordRobot.Transition() return SettingsSubMenuLoginsAndPasswordRobot.Transition()
} }
private fun saveLoginsAndPasswordButton() = onView(withText("Save logins and passwords")) private fun saveLoginsAndPasswordButton() = onView(withText("Save passwords"))
private fun savedLoginsButton() = onView(withText("Saved logins")) private fun savedLoginsButton() = onView(withText("Saved passwords"))
private fun syncLoginsButton() = onView(withText("Sync logins across devices")) private fun syncLoginsButton() = onView(withText("Sync passwords across devices"))
private fun loginExceptionsButton() = onView(withText("Exceptions")) private fun loginExceptionsButton() = onView(withText("Exceptions"))

@ -44,28 +44,28 @@ import org.mozilla.fenix.helpers.ext.waitNotNull
class SettingsSubMenuLoginsAndPasswordsSavedLoginsRobot { class SettingsSubMenuLoginsAndPasswordsSavedLoginsRobot {
fun verifySecurityPromptForLogins() { fun verifySecurityPromptForLogins() {
Log.i(TAG, "verifySecurityPromptForLogins: Trying to verify that the \"Secure your logins and passwords\" dialog is visible") Log.i(TAG, "verifySecurityPromptForLogins: Trying to verify that the \"Secure your saved passwords\" dialog is visible")
onView(withText("Secure your logins and passwords")).check( onView(withText("Secure your saved passwords")).check(
matches( matches(
withEffectiveVisibility( withEffectiveVisibility(
ViewMatchers.Visibility.VISIBLE, ViewMatchers.Visibility.VISIBLE,
), ),
), ),
) )
Log.i(TAG, "verifySecurityPromptForLogins: Verified that the \"Secure your logins and passwords\" dialog is visible") Log.i(TAG, "verifySecurityPromptForLogins: Verified that the \"Secure your saved passwords\" dialog is visible")
} }
fun verifyEmptySavedLoginsListView() { fun verifyEmptySavedLoginsListView() {
Log.i(TAG, "verifyEmptySavedLoginsListView: Trying to verify that the saved logins section description is displayed") Log.i(TAG, "verifyEmptySavedLoginsListView: Trying to verify that the saved logins section description is displayed")
onView(withText(getStringResource(R.string.preferences_passwords_saved_logins_description_empty_text))) onView(withText(getStringResource(R.string.preferences_passwords_saved_logins_description_empty_text_2)))
.check(matches(isDisplayed())) .check(matches(isDisplayed()))
Log.i(TAG, "verifyEmptySavedLoginsListView: Verified that the saved logins section description is displayed") Log.i(TAG, "verifyEmptySavedLoginsListView: Verified that the saved logins section description is displayed")
Log.i(TAG, "verifyEmptySavedLoginsListView: Trying to verify that the \"Learn more about Sync\" link is displayed") Log.i(TAG, "verifyEmptySavedLoginsListView: Trying to verify that the \"Learn more about Sync\" link is displayed")
onView(withText(R.string.preferences_passwords_saved_logins_description_empty_learn_more_link)) onView(withText(R.string.preferences_passwords_saved_logins_description_empty_learn_more_link_2))
.check(matches(isDisplayed())) .check(matches(isDisplayed()))
Log.i(TAG, "verifyEmptySavedLoginsListView: Verified that the \"Learn more about Sync\" link is displayed") Log.i(TAG, "verifyEmptySavedLoginsListView: Verified that the \"Learn more about Sync\" link is displayed")
Log.i(TAG, "verifyEmptySavedLoginsListView: Trying to verify that the \"Add login\" button is displayed") Log.i(TAG, "verifyEmptySavedLoginsListView: Trying to verify that the \"Add login\" button is displayed")
onView(withText(R.string.preferences_logins_add_login)) onView(withText(R.string.preferences_logins_add_login_2))
.check(matches(isDisplayed())) .check(matches(isDisplayed()))
Log.i(TAG, "verifyEmptySavedLoginsListView: Verified that the \"Add login\" button is displayed") Log.i(TAG, "verifyEmptySavedLoginsListView: Verified that the \"Add login\" button is displayed")
} }
@ -88,7 +88,7 @@ class SettingsSubMenuLoginsAndPasswordsSavedLoginsRobot {
fun clickAddLoginButton() { fun clickAddLoginButton() {
Log.i(TAG, "clickAddLoginButton: Trying to click the \"Add login\" button") Log.i(TAG, "clickAddLoginButton: Trying to click the \"Add login\" button")
itemContainingText(getStringResource(R.string.preferences_logins_add_login)).click() itemContainingText(getStringResource(R.string.preferences_logins_add_login_2)).click()
Log.i(TAG, "clickAddLoginButton: Clicked the \"Add login\" button") Log.i(TAG, "clickAddLoginButton: Clicked the \"Add login\" button")
} }
@ -117,7 +117,7 @@ class SettingsSubMenuLoginsAndPasswordsSavedLoginsRobot {
assertUIObjectExists(itemContainingText(getStringResource(R.string.add_login_hostname_invalid_text_2))) assertUIObjectExists(itemContainingText(getStringResource(R.string.add_login_hostname_invalid_text_2)))
fun verifyPasswordErrorMessage() = fun verifyPasswordErrorMessage() =
assertUIObjectExists(itemContainingText(getStringResource(R.string.saved_login_password_required))) assertUIObjectExists(itemContainingText(getStringResource(R.string.saved_login_password_required_2)))
fun verifyPasswordClearButtonEnabled() = fun verifyPasswordClearButtonEnabled() =
assertItemIsEnabledAndVisible(itemWithResId("$packageName:id/clearPasswordTextButton")) assertItemIsEnabledAndVisible(itemWithResId("$packageName:id/clearPasswordTextButton"))
@ -208,7 +208,7 @@ class SettingsSubMenuLoginsAndPasswordsSavedLoginsRobot {
} }
fun verifyLoginDeletionPrompt() = fun verifyLoginDeletionPrompt() =
assertUIObjectExists(itemContainingText(getStringResource(R.string.login_deletion_confirmation))) assertUIObjectExists(itemContainingText(getStringResource(R.string.login_deletion_confirmation_2)))
fun clickConfirmDeleteLogin() { fun clickConfirmDeleteLogin() {
Log.i(TAG, "clickConfirmDeleteLogin: Trying to click the \"Delete\" dialog button") Log.i(TAG, "clickConfirmDeleteLogin: Trying to click the \"Delete\" dialog button")
@ -271,10 +271,10 @@ class SettingsSubMenuLoginsAndPasswordsSavedLoginsRobot {
} }
fun verifyUserNameRequiredErrorMessage() = fun verifyUserNameRequiredErrorMessage() =
assertUIObjectExists(itemContainingText(getStringResource(R.string.saved_login_username_required))) assertUIObjectExists(itemContainingText(getStringResource(R.string.saved_login_username_required_2)))
fun verifyPasswordRequiredErrorMessage() = fun verifyPasswordRequiredErrorMessage() =
assertUIObjectExists(itemContainingText(getStringResource(R.string.saved_login_password_required))) assertUIObjectExists(itemContainingText(getStringResource(R.string.saved_login_password_required_2)))
fun clickGoBackButton() = goBackButton().click() fun clickGoBackButton() = goBackButton().click()

@ -1039,7 +1039,7 @@ abstract class BaseBrowserFragment :
private fun showBiometricPrompt(context: Context) { private fun showBiometricPrompt(context: Context) {
if (BiometricPromptFeature.canUseFeature(context)) { if (BiometricPromptFeature.canUseFeature(context)) {
biometricPromptFeature.get() biometricPromptFeature.get()
?.requestAuthentication(getString(R.string.credit_cards_biometric_prompt_unlock_message)) ?.requestAuthentication(getString(R.string.credit_cards_biometric_prompt_unlock_message_2))
return return
} }
@ -1064,7 +1064,7 @@ abstract class BaseBrowserFragment :
private fun showPinVerification(manager: KeyguardManager) { private fun showPinVerification(manager: KeyguardManager) {
val intent = manager.createConfirmDeviceCredentialIntent( val intent = manager.createConfirmDeviceCredentialIntent(
getString(R.string.credit_cards_biometric_prompt_message_pin), getString(R.string.credit_cards_biometric_prompt_message_pin),
getString(R.string.credit_cards_biometric_prompt_unlock_message), getString(R.string.credit_cards_biometric_prompt_unlock_message_2),
) )
startForResult.launch(intent) startForResult.launch(intent)
@ -1075,8 +1075,8 @@ abstract class BaseBrowserFragment :
*/ */
private fun showPinDialogWarning(context: Context) { private fun showPinDialogWarning(context: Context) {
AlertDialog.Builder(context).apply { AlertDialog.Builder(context).apply {
setTitle(getString(R.string.credit_cards_warning_dialog_title)) setTitle(getString(R.string.credit_cards_warning_dialog_title_2))
setMessage(getString(R.string.credit_cards_warning_dialog_message)) setMessage(getString(R.string.credit_cards_warning_dialog_message_3))
setNegativeButton(getString(R.string.credit_cards_warning_dialog_later)) { _: DialogInterface, _ -> setNegativeButton(getString(R.string.credit_cards_warning_dialog_later)) { _: DialogInterface, _ ->
promptsFeature.get()?.onBiometricResult(isAuthenticated = false) promptsFeature.get()?.onBiometricResult(isAuthenticated = false)

@ -18,7 +18,7 @@ class LoginExceptionsAdapter(
) : ExceptionsAdapter<LoginException>(interactor, DiffCallback) { ) : ExceptionsAdapter<LoginException>(interactor, DiffCallback) {
override val deleteButtonLayoutId = R.layout.delete_logins_exceptions_button override val deleteButtonLayoutId = R.layout.delete_logins_exceptions_button
override val headerDescriptionResource = R.string.preferences_passwords_exceptions_description override val headerDescriptionResource = R.string.preferences_passwords_exceptions_description_2
override fun wrapAdapterItem(item: LoginException) = override fun wrapAdapterItem(item: LoginException) =
LoginAdapterItem(item) LoginAdapterItem(item)

@ -20,7 +20,10 @@ class LoginExceptionsView(
init { init {
binding.exceptionsLearnMore.isVisible = false binding.exceptionsLearnMore.isVisible = false
binding.exceptionsEmptyMessage.text = binding.exceptionsEmptyMessage.text =
containerView.context.getString(R.string.preferences_passwords_exceptions_description_empty) containerView.context.getString(
R.string.preferences_passwords_exceptions_description_empty_2,
containerView.context.getString(R.string.app_name),
)
binding.exceptionsList.apply { binding.exceptionsList.apply {
adapter = exceptionsAdapter adapter = exceptionsAdapter
} }

@ -17,7 +17,11 @@ class ExceptionsHeaderViewHolder(
init { init {
view.findViewById<TextView>(R.id.exceptions_description).text = view.findViewById<TextView>(R.id.exceptions_description).text =
view.context.getString(description) if (description == R.string.preferences_passwords_exceptions_description_2) {
view.context.getString(description, view.context.getString(R.string.app_name))
} else {
view.context.getString(description)
}
} }
companion object { companion object {

@ -236,7 +236,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
autofillPreference.title = if (settings.addressFeature) { autofillPreference.title = if (settings.addressFeature) {
getString(R.string.preferences_autofill) getString(R.string.preferences_autofill)
} else { } else {
getString(R.string.preferences_credit_cards) getString(R.string.preferences_credit_cards_2)
} }
val openLinksInAppsSettingsPreference = val openLinksInAppsSettingsPreference =

@ -15,7 +15,7 @@ import mozilla.components.service.fxa.manager.FxaAccountManager
import mozilla.components.service.fxa.manager.SyncEnginesStorage import mozilla.components.service.fxa.manager.SyncEnginesStorage
/** /**
* A view to help manage the sync preference in the "Logins and passwords" and "Credit cards" * A view to help manage the sync preference in the "Passwords" and "Payment Methods"
* settings. The provided [syncPreference] is used to navigate to the different fragments * settings. The provided [syncPreference] is used to navigate to the different fragments
* that manages the sync account authentication. A toggle will be also added * that manages the sync account authentication. A toggle will be also added
* depending on the sync account status. * depending on the sync account status.

@ -278,9 +278,9 @@ class AccountSettingsFragment : PreferenceFragmentCompat() {
private fun showPinDialogWarning(syncEngine: SyncEngine, newValue: Boolean) { private fun showPinDialogWarning(syncEngine: SyncEngine, newValue: Boolean) {
context?.let { context?.let {
AlertDialog.Builder(it).apply { AlertDialog.Builder(it).apply {
setTitle(getString(R.string.logins_warning_dialog_title)) setTitle(getString(R.string.logins_warning_dialog_title_2))
setMessage( setMessage(
getString(R.string.logins_warning_dialog_message), getString(R.string.logins_warning_dialog_message_2),
) )
setNegativeButton(getString(R.string.logins_warning_dialog_later)) { _: DialogInterface, _ -> setNegativeButton(getString(R.string.logins_warning_dialog_later)) { _: DialogInterface, _ ->

@ -107,7 +107,7 @@ class AddressEditorView(
internal fun showConfirmDeleteAddressDialog(context: Context, guid: String) { internal fun showConfirmDeleteAddressDialog(context: Context, guid: String) {
AlertDialog.Builder(context).apply { AlertDialog.Builder(context).apply {
setMessage(R.string.addressess_confirm_dialog_message) setMessage(R.string.addressess_confirm_dialog_message_2)
setNegativeButton(R.string.addressess_confirm_dialog_cancel_button) { dialog: DialogInterface, _ -> setNegativeButton(R.string.addressess_confirm_dialog_cancel_button) { dialog: DialogInterface, _ ->
dialog.cancel() dialog.cancel()
} }

@ -131,6 +131,9 @@ class AutofillSettingFragment : BiometricPromptPreferenceFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
requirePreference<SwitchPreference>(R.string.pref_key_credit_cards_save_and_autofill_cards).summary =
getString(R.string.preferences_credit_cards_save_and_autofill_cards_summary_2, getString(R.string.app_name))
consumeFrom(store) { state -> consumeFrom(store) { state ->
if (requireComponents.settings.addressFeature) { if (requireComponents.settings.addressFeature) {
updateAddressPreference(state.addresses.isNotEmpty(), findNavController()) updateAddressPreference(state.addresses.isNotEmpty(), findNavController())
@ -152,7 +155,7 @@ class AutofillSettingFragment : BiometricPromptPreferenceFragment() {
if (requireComponents.settings.addressFeature) { if (requireComponents.settings.addressFeature) {
showToolbar(getString(R.string.preferences_autofill)) showToolbar(getString(R.string.preferences_autofill))
} else { } else {
showToolbar(getString(R.string.preferences_credit_cards)) showToolbar(getString(R.string.preferences_credit_cards_2))
} }
SyncPreferenceView( SyncPreferenceView(
@ -231,11 +234,11 @@ class AutofillSettingFragment : BiometricPromptPreferenceFragment() {
if (hasCreditCards) { if (hasCreditCards) {
manageSavedCardsPreference.icon = null manageSavedCardsPreference.icon = null
manageSavedCardsPreference.title = manageSavedCardsPreference.title =
getString(R.string.preferences_credit_cards_manage_saved_cards) getString(R.string.preferences_credit_cards_manage_saved_cards_2)
} else { } else {
manageSavedCardsPreference.setIcon(R.drawable.ic_new) manageSavedCardsPreference.setIcon(R.drawable.ic_new)
manageSavedCardsPreference.title = manageSavedCardsPreference.title =
getString(R.string.preferences_credit_cards_add_credit_card) getString(R.string.preferences_credit_cards_add_credit_card_2)
} }
manageSavedCardsPreference.setOnPreferenceClickListener { manageSavedCardsPreference.setOnPreferenceClickListener {
@ -279,8 +282,8 @@ class AutofillSettingFragment : BiometricPromptPreferenceFragment() {
*/ */
override fun showPinDialogWarning(context: Context) { override fun showPinDialogWarning(context: Context) {
AlertDialog.Builder(context).apply { AlertDialog.Builder(context).apply {
setTitle(getString(R.string.credit_cards_warning_dialog_title)) setTitle(getString(R.string.credit_cards_warning_dialog_title_2))
setMessage(getString(R.string.credit_cards_warning_dialog_message)) setMessage(getString(R.string.credit_cards_warning_dialog_message_3))
setNegativeButton(getString(R.string.credit_cards_warning_dialog_later)) { _: DialogInterface, _ -> setNegativeButton(getString(R.string.credit_cards_warning_dialog_later)) { _: DialogInterface, _ ->
navigateToCreditCardManagementFragment() navigateToCreditCardManagementFragment()

@ -151,7 +151,7 @@ class CreditCardEditorFragment :
private fun showDeleteDialog(onPositiveClickListener: DialogInterface.OnClickListener) { private fun showDeleteDialog(onPositiveClickListener: DialogInterface.OnClickListener) {
deleteDialog = AlertDialog.Builder(requireContext()).apply { deleteDialog = AlertDialog.Builder(requireContext()).apply {
setMessage(R.string.credit_cards_delete_dialog_confirmation) setMessage(R.string.credit_cards_delete_dialog_confirmation_2)
setNegativeButton(R.string.credit_cards_cancel_button) { dialog: DialogInterface, _ -> setNegativeButton(R.string.credit_cards_cancel_button) { dialog: DialogInterface, _ ->
dialog.cancel() dialog.cancel()
} }

@ -24,7 +24,7 @@ interface CreditCardsManagementInteractor {
/** /**
* Navigates to the credit card editor to add a new credit card. Called when a user * Navigates to the credit card editor to add a new credit card. Called when a user
* taps on 'Add credit card' button. * taps on 'Add card' button.
*/ */
fun onAddCreditCardClick() fun onAddCreditCardClick()
} }

@ -127,7 +127,7 @@ class CreditCardEditorView(
isValid = false isValid = false
binding.cardNumberLayout.error = binding.cardNumberLayout.error =
binding.root.context.getString(R.string.credit_cards_number_validation_error_message) binding.root.context.getString(R.string.credit_cards_number_validation_error_message_2)
binding.cardNumberTitle.setTextColor(binding.root.context.getColorFromAttr(R.attr.textWarning)) binding.cardNumberTitle.setTextColor(binding.root.context.getColorFromAttr(R.attr.textWarning))
} }
@ -138,7 +138,7 @@ class CreditCardEditorView(
isValid = false isValid = false
binding.nameOnCardLayout.error = binding.nameOnCardLayout.error =
binding.root.context.getString(R.string.credit_cards_name_on_card_validation_error_message) binding.root.context.getString(R.string.credit_cards_name_on_card_validation_error_message_2)
binding.nameOnCardTitle.setTextColor(binding.root.context.getColorFromAttr(R.attr.textWarning)) binding.nameOnCardTitle.setTextColor(binding.root.context.getColorFromAttr(R.attr.textWarning))
} }

@ -275,7 +275,7 @@ class AddLoginFragment : Fragment(R.layout.fragment_add_login), MenuProvider {
currentValue.isEmpty() && usernameChanged -> { currentValue.isEmpty() && usernameChanged -> {
// Invalid username because it's empty (although this is not true when editing logins) // Invalid username because it's empty (although this is not true when editing logins)
validUsername = false validUsername = false
layout.error = context?.getString(R.string.saved_login_username_required) layout.error = context?.getString(R.string.saved_login_username_required_2)
layout.setErrorIconDrawable(R.drawable.mozac_ic_warning_with_bottom_padding) layout.setErrorIconDrawable(R.drawable.mozac_ic_warning_with_bottom_padding)
layout.setErrorIconTintList( layout.setErrorIconTintList(
ColorStateList.valueOf( ColorStateList.valueOf(
@ -315,7 +315,7 @@ class AddLoginFragment : Fragment(R.layout.fragment_add_login), MenuProvider {
private fun setPasswordError() { private fun setPasswordError() {
binding.inputLayoutPassword.let { layout -> binding.inputLayoutPassword.let { layout ->
validPassword = false validPassword = false
layout.error = context?.getString(R.string.saved_login_password_required) layout.error = context?.getString(R.string.saved_login_password_required_2)
layout.setErrorIconDrawable(R.drawable.mozac_ic_warning_with_bottom_padding) layout.setErrorIconDrawable(R.drawable.mozac_ic_warning_with_bottom_padding)
layout.setErrorIconTintList( layout.setErrorIconTintList(
ColorStateList.valueOf( ColorStateList.valueOf(
@ -365,7 +365,7 @@ class AddLoginFragment : Fragment(R.layout.fragment_add_login), MenuProvider {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
showToolbar(getString(R.string.add_login)) showToolbar(getString(R.string.add_login_2))
} }
override fun onMenuItemSelected(item: MenuItem): Boolean = when (item.itemId) { override fun onMenuItemSelected(item: MenuItem): Boolean = when (item.itemId) {

@ -161,7 +161,7 @@ class EditLoginFragment : Fragment(R.layout.fragment_edit_login), MenuProvider {
validUsername = false validUsername = false
binding.clearUsernameTextButton.isVisible = false binding.clearUsernameTextButton.isVisible = false
setLayoutError( setLayoutError(
context?.getString(R.string.saved_login_username_required), context?.getString(R.string.saved_login_username_required_2),
binding.inputLayoutUsername, binding.inputLayoutUsername,
) )
} }
@ -204,7 +204,7 @@ class EditLoginFragment : Fragment(R.layout.fragment_edit_login), MenuProvider {
binding.revealPasswordButton.isVisible = false binding.revealPasswordButton.isVisible = false
binding.clearPasswordTextButton.isVisible = false binding.clearPasswordTextButton.isVisible = false
setLayoutError( setLayoutError(
context?.getString(R.string.saved_login_password_required), context?.getString(R.string.saved_login_password_required_2),
binding.inputLayoutPassword, binding.inputLayoutPassword,
) )
} }

@ -225,7 +225,7 @@ class LoginDetailFragment : SecureFragment(R.layout.fragment_login_detail), Menu
private fun displayDeleteLoginDialog() { private fun displayDeleteLoginDialog() {
activity?.let { activity -> activity?.let { activity ->
deleteDialog = AlertDialog.Builder(activity).apply { deleteDialog = AlertDialog.Builder(activity).apply {
setMessage(R.string.login_deletion_confirmation) setMessage(R.string.login_deletion_confirmation_2)
setNegativeButton(R.string.dialog_delete_negative) { dialog: DialogInterface, _ -> setNegativeButton(R.string.dialog_delete_negative) { dialog: DialogInterface, _ ->
dialog.cancel() dialog.cancel()
} }

@ -156,9 +156,9 @@ class SavedLoginsAuthFragment : PreferenceFragmentCompat() {
accountManager = requireComponents.backgroundServices.accountManager, accountManager = requireComponents.backgroundServices.accountManager,
syncEngine = SyncEngine.Passwords, syncEngine = SyncEngine.Passwords,
loggedOffTitle = requireContext() loggedOffTitle = requireContext()
.getString(R.string.preferences_passwords_sync_logins_across_devices), .getString(R.string.preferences_passwords_sync_logins_across_devices_2),
loggedInTitle = requireContext() loggedInTitle = requireContext()
.getString(R.string.preferences_passwords_sync_logins), .getString(R.string.preferences_passwords_sync_logins_2),
onSyncSignInClicked = { onSyncSignInClicked = {
val directions = val directions =
SavedLoginsAuthFragmentDirections.actionSavedLoginsAuthFragmentToTurnOnSyncFragment( SavedLoginsAuthFragmentDirections.actionSavedLoginsAuthFragmentToTurnOnSyncFragment(
@ -183,7 +183,7 @@ class SavedLoginsAuthFragment : PreferenceFragmentCompat() {
if (BiometricPromptFeature.canUseFeature(context)) { if (BiometricPromptFeature.canUseFeature(context)) {
togglePrefsEnabledWhileAuthenticating(false) togglePrefsEnabledWhileAuthenticating(false)
biometricPromptFeature.get() biometricPromptFeature.get()
?.requestAuthentication(getString(R.string.logins_biometric_prompt_message)) ?.requestAuthentication(getString(R.string.logins_biometric_prompt_message_2))
return return
} }
@ -203,9 +203,9 @@ class SavedLoginsAuthFragment : PreferenceFragmentCompat() {
private fun showPinDialogWarning(context: Context) { private fun showPinDialogWarning(context: Context) {
AlertDialog.Builder(context).apply { AlertDialog.Builder(context).apply {
setTitle(getString(R.string.logins_warning_dialog_title)) setTitle(getString(R.string.logins_warning_dialog_title_2))
setMessage( setMessage(
getString(R.string.logins_warning_dialog_message), getString(R.string.logins_warning_dialog_message_2),
) )
setNegativeButton(getString(R.string.logins_warning_dialog_later)) { _: DialogInterface, _ -> setNegativeButton(getString(R.string.logins_warning_dialog_later)) { _: DialogInterface, _ ->

@ -146,7 +146,7 @@ class SavedLoginsFragment : SecureFragment(), MenuProvider {
val searchItem = menu.findItem(R.id.search) val searchItem = menu.findItem(R.id.search)
val searchView: SearchView = searchItem.actionView as SearchView val searchView: SearchView = searchItem.actionView as SearchView
searchView.imeOptions = EditorInfo.IME_ACTION_DONE searchView.imeOptions = EditorInfo.IME_ACTION_DONE
searchView.queryHint = getString(R.string.preferences_passwords_saved_logins_search) searchView.queryHint = getString(R.string.preferences_passwords_saved_logins_search_2)
searchView.maxWidth = Int.MAX_VALUE searchView.maxWidth = Int.MAX_VALUE
if (searchQuery?.searchedForText?.isNotEmpty() == true) { if (searchQuery?.searchedForText?.isNotEmpty() == true) {
@ -225,7 +225,7 @@ class SavedLoginsFragment : SecureFragment(), MenuProvider {
private fun initToolbar() { private fun initToolbar() {
requireActivity().addMenuProvider(this, viewLifecycleOwner, Lifecycle.State.RESUMED) requireActivity().addMenuProvider(this, viewLifecycleOwner, Lifecycle.State.RESUMED)
showToolbar(getString(R.string.preferences_passwords_saved_logins)) showToolbar(getString(R.string.preferences_passwords_saved_logins_2))
(activity as HomeActivity).getSupportActionBarAndInflateIfNecessary() (activity as HomeActivity).getSupportActionBarAndInflateIfNecessary()
.setDisplayShowTitleEnabled(false) .setDisplayShowTitleEnabled(false)
toolbarChildContainer = initChildContainerFromToolbar() toolbarChildContainer = initChildContainerFromToolbar()

@ -49,7 +49,7 @@ class SavedLoginsListView(
val appName = context.getString(R.string.app_name) val appName = context.getString(R.string.app_name)
text = String.format( text = String.format(
context.getString( context.getString(
R.string.preferences_passwords_saved_logins_description_empty_text, R.string.preferences_passwords_saved_logins_description_empty_text_2,
), ),
appName, appName,
) )

@ -1602,7 +1602,7 @@ class Settings(private val appContext: Context) : PreferencesHolder {
) )
/** /**
* Storing the user choice from the "Credit cards" settings for whether save and autofill cards * Storing the user choice from the "Payment methods" settings for whether save and autofill cards
* should be enabled or not. * should be enabled or not.
* If set to `true` when the user focuses on credit card fields in the webpage an Android prompt letting her * If set to `true` when the user focuses on credit card fields in the webpage an Android prompt letting her
* select the card details to be automatically filled will appear. * select the card details to be automatically filled will appear.

@ -36,7 +36,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="4dp" android:padding="4dp"
android:text="@string/preferences_passwords_saved_logins_description_empty_text" android:text="@string/preferences_passwords_saved_logins_description_empty_text_2"
android:textColor="?attr/textSecondary" android:textColor="?attr/textSecondary"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
@ -47,7 +47,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="4dp" android:padding="4dp"
android:text="@string/preferences_passwords_saved_logins_description_empty_learn_more_link" android:text="@string/preferences_passwords_saved_logins_description_empty_learn_more_link_2"
android:textColor="?attr/textSecondary" android:textColor="?attr/textSecondary"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintTop_toBottomOf="@id/saved_passwords_empty_message" /> app:layout_constraintTop_toBottomOf="@id/saved_passwords_empty_message" />

@ -111,7 +111,7 @@
android:colorControlHighlight="?attr/textPrimary" android:colorControlHighlight="?attr/textPrimary"
android:colorControlActivated="?attr/textPrimary" android:colorControlActivated="?attr/textPrimary"
android:textColor="?attr/textPrimary" android:textColor="?attr/textPrimary"
android:contentDescription="@string/saved_login_username_description" android:contentDescription="@string/saved_login_username_description_3"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/usernameHeader" app:layout_constraintTop_toBottomOf="@id/usernameHeader"
@ -180,7 +180,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:colorControlActivated="?attr/textPrimary" android:colorControlActivated="?attr/textPrimary"
android:colorControlHighlight="?attr/textPrimary" android:colorControlHighlight="?attr/textPrimary"
android:contentDescription="@string/saved_login_password_description" android:contentDescription="@string/saved_login_password_description_2"
android:paddingBottom="11dp" android:paddingBottom="11dp"
android:textColor="?attr/textPrimary" android:textColor="?attr/textPrimary"
app:hintEnabled="false" app:hintEnabled="false"

@ -41,7 +41,7 @@
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:textColor="?attr/textPrimary" android:textColor="?attr/textPrimary"
android:layout_marginStart="3dp" android:layout_marginStart="3dp"
android:contentDescription="@string/saved_login_hostname_description" android:contentDescription="@string/saved_login_hostname_description_3"
app:backgroundTint="@android:color/transparent" app:backgroundTint="@android:color/transparent"
app:hintEnabled="false" app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="@id/hostnameHeaderText" app:layout_constraintEnd_toEndOf="@id/hostnameHeaderText"
@ -60,7 +60,7 @@
android:textColor="?attr/textDisabled" android:textColor="?attr/textDisabled"
android:letterSpacing="0.01" android:letterSpacing="0.01"
android:lineSpacingExtra="8sp" android:lineSpacingExtra="8sp"
android:hint="@string/saved_login_hostname_description" android:hint="@string/saved_login_hostname_description_3"
android:inputType="textNoSuggestions" android:inputType="textNoSuggestions"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
@ -98,7 +98,7 @@
android:colorControlHighlight="?attr/textPrimary" android:colorControlHighlight="?attr/textPrimary"
android:colorControlActivated="?attr/textPrimary" android:colorControlActivated="?attr/textPrimary"
android:textColor="?attr/textPrimary" android:textColor="?attr/textPrimary"
android:contentDescription="@string/saved_login_username_description" android:contentDescription="@string/saved_login_username_description_3"
app:layout_constraintEnd_toEndOf="@id/usernameHeader" app:layout_constraintEnd_toEndOf="@id/usernameHeader"
app:layout_constraintStart_toStartOf="@id/usernameHeader" app:layout_constraintStart_toStartOf="@id/usernameHeader"
app:layout_constraintTop_toBottomOf="@id/usernameHeader" app:layout_constraintTop_toBottomOf="@id/usernameHeader"
@ -169,7 +169,7 @@
android:colorControlHighlight="?attr/textPrimary" android:colorControlHighlight="?attr/textPrimary"
android:colorControlActivated="?attr/textPrimary" android:colorControlActivated="?attr/textPrimary"
android:textColor="?attr/textPrimary" android:textColor="?attr/textPrimary"
android:contentDescription="@string/saved_login_password_description" android:contentDescription="@string/saved_login_password_description_2"
app:hintEnabled="false" app:hintEnabled="false"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/passwordHeader" app:layout_constraintEnd_toEndOf="@id/passwordHeader"

@ -28,7 +28,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/credit_cards_saved_cards_item_margin_start" android:layout_margin="@dimen/credit_cards_saved_cards_item_margin_start"
android:text="@string/preferences_credit_cards_add_credit_card" android:text="@string/preferences_credit_cards_add_credit_card_2"
style="@style/Body16TextStyle" style="@style/Body16TextStyle"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

@ -28,7 +28,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/credit_cards_saved_cards_item_margin_start" android:layout_margin="@dimen/credit_cards_saved_cards_item_margin_start"
android:text="@string/preferences_logins_add_login" android:text="@string/preferences_logins_add_login_2"
style="@style/Body16TextStyle" style="@style/Body16TextStyle"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

@ -16,7 +16,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="end" android:ellipsize="end"
android:singleLine="true" android:singleLine="true"
android:text="@string/preferences_passwords_saved_logins" android:text="@string/preferences_passwords_saved_logins_2"
app:layout_constrainedWidth="true" app:layout_constrainedWidth="true"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/toolbar_chevron_icon" app:layout_constraintEnd_toStartOf="@id/toolbar_chevron_icon"
@ -42,7 +42,7 @@
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginStart="@dimen/saved_logins_sort_menu_dropdown_chevron_icon_margin_start" android:layout_marginStart="@dimen/saved_logins_sort_menu_dropdown_chevron_icon_margin_start"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:contentDescription="@string/saved_logins_menu_dropdown_chevron_icon_content_description" android:contentDescription="@string/saved_logins_menu_dropdown_chevron_icon_content_description_2"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/toolbar_title" app:layout_constraintStart_toEndOf="@id/toolbar_title"

@ -6,9 +6,9 @@
<item <item
android:id="@+id/search" android:id="@+id/search"
android:icon="@drawable/ic_search" android:icon="@drawable/ic_search"
android:title="@string/preferences_passwords_saved_logins_search" android:title="@string/preferences_passwords_saved_logins_search_2"
app:actionViewClass="androidx.appcompat.widget.SearchView" app:actionViewClass="androidx.appcompat.widget.SearchView"
app:iconTint="?attr/textPrimary" app:iconTint="?attr/textPrimary"
android:contentDescription="@string/preferences_passwords_saved_logins_search" android:contentDescription="@string/preferences_passwords_saved_logins_search_2"
app:showAsAction="collapseActionView|always" /> app:showAsAction="collapseActionView|always" />
</menu> </menu>

@ -7,8 +7,8 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/loginOptionsEditDelete" android:id="@+id/loginOptionsEditDelete"
android:contentDescription="@string/login_options_menu" android:contentDescription="@string/login_options_menu_2"
android:title="@string/login_options_menu" android:title="@string/login_options_menu_2"
app:showAsAction="never" > app:showAsAction="never" >
<item <item

@ -9,6 +9,6 @@
android:id="@+id/save_login_button" android:id="@+id/save_login_button"
android:icon="@drawable/mozac_ic_checkmark_24" android:icon="@drawable/mozac_ic_checkmark_24"
app:iconTint="@color/save_enabled_ic_color" app:iconTint="@color/save_enabled_ic_color"
android:title="@string/save_changes_to_login" android:title="@string/save_changes_to_login_2"
app:showAsAction="always" /> app:showAsAction="always" />
</menu> </menu>

@ -414,7 +414,7 @@
<fragment <fragment
android:id="@+id/savedLoginsAuthFragment" android:id="@+id/savedLoginsAuthFragment"
android:name="org.mozilla.fenix.settings.logins.fragment.SavedLoginsAuthFragment" android:name="org.mozilla.fenix.settings.logins.fragment.SavedLoginsAuthFragment"
android:label="@string/preferences_passwords_logins_and_passwords"> android:label="@string/preferences_passwords_logins_and_passwords_2">
<action <action
android:id="@+id/action_savedLoginsAuthFragment_to_loginsListFragment" android:id="@+id/action_savedLoginsAuthFragment_to_loginsListFragment"
app:destination="@id/savedLogins" app:destination="@id/savedLogins"
@ -1276,7 +1276,7 @@
<fragment <fragment
android:id="@+id/autofillSettingFragment" android:id="@+id/autofillSettingFragment"
android:name="org.mozilla.fenix.settings.autofill.AutofillSettingFragment" android:name="org.mozilla.fenix.settings.autofill.AutofillSettingFragment"
android:label="@string/preferences_credit_cards"> android:label="@string/preferences_credit_cards_2">
<action <action
android:id="@+id/action_autofillSettingFragment_to_creditCardEditorFragment" android:id="@+id/action_autofillSettingFragment_to_creditCardEditorFragment"
app:destination="@id/creditCardEditorFragment" app:destination="@id/creditCardEditorFragment"
@ -1375,7 +1375,7 @@
<fragment <fragment
android:id="@+id/addLoginFragment" android:id="@+id/addLoginFragment"
android:name="org.mozilla.fenix.settings.logins.fragment.AddLoginFragment" android:name="org.mozilla.fenix.settings.logins.fragment.AddLoginFragment"
android:label="@string/add_login" android:label="@string/add_login_2"
tools:layout="@layout/fragment_add_login"> tools:layout="@layout/fragment_add_login">
<action <action
android:id="@+id/action_addLoginFragment_to_loginDetailFragment" android:id="@+id/action_addLoginFragment_to_loginDetailFragment"
@ -1400,7 +1400,7 @@
<fragment <fragment
android:id="@+id/editLoginFragment" android:id="@+id/editLoginFragment"
android:name="org.mozilla.fenix.settings.logins.fragment.EditLoginFragment" android:name="org.mozilla.fenix.settings.logins.fragment.EditLoginFragment"
android:label="@string/edit" android:label="@string/edit_2"
tools:layout="@layout/fragment_edit_login"> tools:layout="@layout/fragment_edit_login">
<argument <argument
android:name="savedLoginItem" android:name="savedLoginItem"

@ -207,7 +207,7 @@
<string name="pref_key_credit_cards_save_and_autofill_cards" translatable="false">pref_key_credit_cards_save_and_autofill_cards</string> <string name="pref_key_credit_cards_save_and_autofill_cards" translatable="false">pref_key_credit_cards_save_and_autofill_cards</string>
<!-- Key for the "Sync cards across devices" preference in the "Autofill" fragment --> <!-- Key for the "Sync cards across devices" preference in the "Autofill" fragment -->
<string name="pref_key_credit_cards_sync_cards_across_devices" translatable="false">pref_key_credit_cards_sync_cards_across_devices</string> <string name="pref_key_credit_cards_sync_cards_across_devices" translatable="false">pref_key_credit_cards_sync_cards_across_devices</string>
<!-- Key for the "Manage saved cards" preference in the "Autofill" fragment --> <!-- Key for the "Manage cards" preference in the "Autofill" fragment -->
<string name="pref_key_credit_cards_manage_cards" translatable="false">pref_key_credit_cards_manage_cards</string> <string name="pref_key_credit_cards_manage_cards" translatable="false">pref_key_credit_cards_manage_cards</string>
<!-- Key for the "Manage addresses" preference in the "Autofill" fragment --> <!-- Key for the "Manage addresses" preference in the "Autofill" fragment -->
<string name="pref_key_addresses_manage_addresses" translatable="false">pref_key_addresses_manage_addresses</string> <string name="pref_key_addresses_manage_addresses" translatable="false">pref_key_addresses_manage_addresses</string>

@ -676,9 +676,9 @@
<!-- Preference for syncing bookmarks --> <!-- Preference for syncing bookmarks -->
<string name="preferences_sync_bookmarks">Bookmarks</string> <string name="preferences_sync_bookmarks">Bookmarks</string>
<!-- Preference for syncing logins --> <!-- Preference for syncing logins -->
<string name="preferences_sync_logins">Logins</string> <string name="preferences_sync_logins" moz:RemovedIn="125" tools:ignore="UnusedResources">Logins</string>
<!-- Preference for syncing passwords --> <!-- Preference for syncing passwords -->
<string name="preferences_sync_logins_2" tools:ignore="UnusedResources">Passwords</string> <string name="preferences_sync_logins_2">Passwords</string>
<!-- Preference for syncing tabs --> <!-- Preference for syncing tabs -->
<string name="preferences_sync_tabs_2">Open tabs</string> <string name="preferences_sync_tabs_2">Open tabs</string>
<!-- Preference for signing out --> <!-- Preference for signing out -->
@ -702,9 +702,9 @@
and the third is the device model. --> and the third is the device model. -->
<string name="default_device_name_2">%1$s on %2$s %3$s</string> <string name="default_device_name_2">%1$s on %2$s %3$s</string>
<!-- Preference for syncing credit cards --> <!-- Preference for syncing credit cards -->
<string name="preferences_sync_credit_cards">Credit cards</string> <string name="preferences_sync_credit_cards" moz:RemovedIn="125" tools:ignore="UnusedResources">Credit cards</string>
<!-- Preference for syncing payment methods --> <!-- Preference for syncing payment methods -->
<string name="preferences_sync_credit_cards_2" tools:ignore="UnusedResources">Payment methods</string> <string name="preferences_sync_credit_cards_2">Payment methods</string>
<!-- Preference for syncing addresses --> <!-- Preference for syncing addresses -->
<string name="preferences_sync_address">Addresses</string> <string name="preferences_sync_address">Addresses</string>
@ -1617,13 +1617,13 @@
<string name="add_to_homescreen_description_2">You can easily add this website to your devices Home screen to have instant access and browse faster with an app-like experience.</string> <string name="add_to_homescreen_description_2">You can easily add this website to your devices Home screen to have instant access and browse faster with an app-like experience.</string>
<!-- Preference for managing the settings for logins and passwords in Fenix --> <!-- Preference for managing the settings for logins and passwords in Fenix -->
<string name="preferences_passwords_logins_and_passwords">Logins and passwords</string> <string name="preferences_passwords_logins_and_passwords" moz:RemovedIn="125" tools:ignore="UnusedResources">Logins and passwords</string>
<!-- Preference for managing the settings for logins and passwords in Fenix --> <!-- Preference for managing the settings for logins and passwords in Fenix -->
<string name="preferences_passwords_logins_and_passwords_2" tools:ignore="UnusedResources">Passwords</string> <string name="preferences_passwords_logins_and_passwords_2">Passwords</string>
<!-- Preference for managing the saving of logins and passwords in Fenix --> <!-- Preference for managing the saving of logins and passwords in Fenix -->
<string name="preferences_passwords_save_logins">Save logins and passwords</string> <string name="preferences_passwords_save_logins" moz:RemovedIn="125" tools:ignore="UnusedResources">Save logins and passwords</string>
<!-- Preference for managing the saving of logins and passwords in Fenix --> <!-- Preference for managing the saving of logins and passwords in Fenix -->
<string name="preferences_passwords_save_logins_2" tools:ignore="UnusedResources">Save passwords</string> <string name="preferences_passwords_save_logins_2">Save passwords</string>
<!-- Preference option for asking to save passwords in Fenix --> <!-- Preference option for asking to save passwords in Fenix -->
<string name="preferences_passwords_save_logins_ask_to_save">Ask to save</string> <string name="preferences_passwords_save_logins_ask_to_save">Ask to save</string>
<!-- Preference option for never saving passwords in Fenix --> <!-- Preference option for never saving passwords in Fenix -->
@ -1637,47 +1637,46 @@
<!-- Description for the preference for autofilling logins from Fenix in other apps (e.g. autofilling the Twitter app) --> <!-- Description for the preference for autofilling logins from Fenix in other apps (e.g. autofilling the Twitter app) -->
<string name="preferences_android_autofill_description">Fill usernames and passwords in other apps on your device.</string> <string name="preferences_android_autofill_description">Fill usernames and passwords in other apps on your device.</string>
<!-- Preference option for adding a login --> <!-- Preference option for adding a login -->
<string name="preferences_logins_add_login">Add login</string> <string name="preferences_logins_add_login" moz:RemovedIn="125" tools:ignore="UnusedResources">Add login</string>
<!-- Preference option for adding a password --> <!-- Preference option for adding a password -->
<string name="preferences_logins_add_login_2" tools:ignore="UnusedResources">Add password</string> <string name="preferences_logins_add_login_2">Add password</string>
<!-- Preference for syncing saved logins in Fenix -->
<string name="preferences_passwords_sync_logins">Sync logins</string>
<!-- Preference for syncing saved passwords in Fenix --> <!-- Preference for syncing saved passwords in Fenix -->
<string name="preferences_passwords_sync_logins_2" tools:ignore="UnusedResources">Sync passwords</string> <string name="preferences_passwords_sync_logins" moz:RemovedIn="125" tools:ignore="UnusedResources">Sync logins</string>
<!-- Preference for syncing saved passwords in Fenix -->
<string name="preferences_passwords_sync_logins_2">Sync passwords</string>
<!-- Preference for syncing saved logins in Fenix, when not signed in--> <!-- Preference for syncing saved logins in Fenix, when not signed in-->
<string name="preferences_passwords_sync_logins_across_devices">Sync logins across devices</string> <string name="preferences_passwords_sync_logins_across_devices" moz:RemovedIn="125" tools:ignore="UnusedResources">Sync logins across devices</string>
<!-- Preference for syncing saved passwords in Fenix, when not signed in--> <!-- Preference for syncing saved passwords in Fenix, when not signed in-->
<string name="preferences_passwords_sync_logins_across_devices_2" tools:ignore="UnusedResources">Sync passwords across devices</string> <string name="preferences_passwords_sync_logins_across_devices_2">Sync passwords across devices</string>
<!-- Preference to access list of saved logins --> <!-- Preference to access list of saved logins -->
<string name="preferences_passwords_saved_logins">Saved logins</string> <string name="preferences_passwords_saved_logins" moz:RemovedIn="125" tools:ignore="UnusedResources">Saved logins</string>
<!-- Preference to access list of saved passwords --> <!-- Preference to access list of saved passwords -->
<string name="preferences_passwords_saved_logins_2" tools:ignore="UnusedResources">Saved passwords</string> <string name="preferences_passwords_saved_logins_2">Saved passwords</string>
<!-- Description of empty list of saved passwords. Placeholder is replaced with app name. --> <!-- Description of empty list of saved passwords. Placeholder is replaced with app name. -->
<string name="preferences_passwords_saved_logins_description_empty_text">The logins you save or sync to %s will show up here.</string> <string name="preferences_passwords_saved_logins_description_empty_text" moz:RemovedIn="125" tools:ignore="UnusedResources">The logins you save or sync to %s will show up here.</string>
<!-- Description of empty list of saved passwords. Placeholder is replaced with app name. --> <!-- Description of empty list of saved passwords. Placeholder is replaced with app name. -->
<string name="preferences_passwords_saved_logins_description_empty_text_2" tools:ignore="UnusedResources">The passwords you save or sync to %s will be listed here. All passwords you save are encrypted. <string name="preferences_passwords_saved_logins_description_empty_text_2">The passwords you save or sync to %s will be listed here. All passwords you save are encrypted.</string>
</string>
<!-- Preference to access list of saved logins --> <!-- Preference to access list of saved logins -->
<string name="preferences_passwords_saved_logins_description_empty_learn_more_link">Learn more about Sync.</string> <string name="preferences_passwords_saved_logins_description_empty_learn_more_link" moz:RemovedIn="125" tools:ignore="UnusedResources">Learn more about Sync.</string>
<!-- Clickable text for opening an external link for more information about Sync. --> <!-- Clickable text for opening an external link for more information about Sync. -->
<string name="preferences_passwords_saved_logins_description_empty_learn_more_link_2" tools:ignore="UnusedResources">Learn more about sync</string> <string name="preferences_passwords_saved_logins_description_empty_learn_more_link_2">Learn more about sync</string>
<!-- Preference to access list of login exceptions that we never save logins for --> <!-- Preference to access list of login exceptions that we never save logins for -->
<string name="preferences_passwords_exceptions">Exceptions</string> <string name="preferences_passwords_exceptions">Exceptions</string>
<!-- Empty description of list of login exceptions that we never save logins for --> <!-- Empty description of list of login exceptions that we never save logins for -->
<string name="preferences_passwords_exceptions_description_empty">Logins and passwords that are not saved will be shown here.</string> <string name="preferences_passwords_exceptions_description_empty" moz:RemovedIn="125" tools:ignore="UnusedResources">Logins and passwords that are not saved will be shown here.</string>
<!-- Empty description of list of login exceptions that we never save passwords for. Parameter will be replaced by app name. --> <!-- Empty description of list of login exceptions that we never save passwords for. Parameter will be replaced by app name. -->
<string name="preferences_passwords_exceptions_description_empty_2" tools:ignore="UnusedResources">%s wont save passwords for sites listed here.</string> <string name="preferences_passwords_exceptions_description_empty_2">%s wont save passwords for sites listed here.</string>
<!-- Description of list of login exceptions that we never save logins for --> <!-- Description of list of login exceptions that we never save logins for -->
<string name="preferences_passwords_exceptions_description">Logins and passwords will not be saved for these sites.</string> <string name="preferences_passwords_exceptions_description" moz:RemovedIn="125" tools:ignore="UnusedResources">Logins and passwords will not be saved for these sites.</string>
<!-- Description of list of login exceptions that we never save passwords for. Parameter will be replaced by app name. --> <!-- Description of list of login exceptions that we never save passwords for. Parameter will be replaced by app name. -->
<string name="preferences_passwords_exceptions_description_2" tools:ignore="UnusedResources">%s wont save passwords for these sites.</string> <string name="preferences_passwords_exceptions_description_2">%s wont save passwords for these sites.</string>
<!-- Text on button to remove all saved login exceptions --> <!-- Text on button to remove all saved login exceptions -->
<string name="preferences_passwords_exceptions_remove_all">Delete all exceptions</string> <string name="preferences_passwords_exceptions_remove_all">Delete all exceptions</string>
<!-- Hint for search box in logins list --> <!-- Hint for search box in logins list -->
<string name="preferences_passwords_saved_logins_search">Search logins</string> <string name="preferences_passwords_saved_logins_search" moz:RemovedIn="125" tools:ignore="UnusedResources">Search logins</string>
<!-- Hint for search box in passwords list --> <!-- Hint for search box in passwords list -->
<string name="preferences_passwords_saved_logins_search_2" tools:ignore="UnusedResources">Search passwords</string> <string name="preferences_passwords_saved_logins_search_2">Search passwords</string>
<!-- The header for the site that a login is for --> <!-- The header for the site that a login is for -->
<string name="preferences_passwords_saved_logins_site">Site</string> <string name="preferences_passwords_saved_logins_site">Site</string>
<!-- The header for the username for a login --> <!-- The header for the username for a login -->
@ -1705,17 +1704,17 @@
<!-- Content Description (for screenreaders etc) read for the button to hide a password in logins --> <!-- Content Description (for screenreaders etc) read for the button to hide a password in logins -->
<string name="saved_login_hide_password">Hide password</string> <string name="saved_login_hide_password">Hide password</string>
<!-- Message displayed in biometric prompt displayed for authentication before allowing users to view their logins --> <!-- Message displayed in biometric prompt displayed for authentication before allowing users to view their logins -->
<string name="logins_biometric_prompt_message">Unlock to view your saved logins</string> <string name="logins_biometric_prompt_message" moz:RemovedIn="125" tools:ignore="UnusedResources">Unlock to view your saved logins</string>
<!-- Message displayed in biometric prompt displayed for authentication before allowing users to view their passwords --> <!-- Message displayed in biometric prompt displayed for authentication before allowing users to view their passwords -->
<string name="logins_biometric_prompt_message_2" tools:ignore="UnusedResources">Unlock to view your saved passwords</string> <string name="logins_biometric_prompt_message_2">Unlock to view your saved passwords</string>
<!-- Title of warning dialog if users have no device authentication set up --> <!-- Title of warning dialog if users have no device authentication set up -->
<string name="logins_warning_dialog_title">Secure your logins and passwords</string> <string name="logins_warning_dialog_title" moz:RemovedIn="125" tools:ignore="UnusedResources">Secure your logins and passwords</string>
<!-- Title of warning dialog if users have no device authentication set up --> <!-- Title of warning dialog if users have no device authentication set up -->
<string name="logins_warning_dialog_title_2" tools:ignore="UnusedResources">Secure your saved passwords</string> <string name="logins_warning_dialog_title_2">Secure your saved passwords</string>
<!-- Message of warning dialog if users have no device authentication set up --> <!-- Message of warning dialog if users have no device authentication set up -->
<string name="logins_warning_dialog_message">Set up a device lock pattern, PIN, or password to protect your saved logins and passwords from being accessed if someone else has your device.</string> <string name="logins_warning_dialog_message" moz:RemovedIn="125" tools:ignore="UnusedResources">Set up a device lock pattern, PIN, or password to protect your saved logins and passwords from being accessed if someone else has your device.</string>
<!-- Message of warning dialog if users have no device authentication set up --> <!-- Message of warning dialog if users have no device authentication set up -->
<string name="logins_warning_dialog_message_2" tools:ignore="UnusedResources">Set up a device lock pattern, PIN, or password to protect your saved passwords from being accessed if someone else has your device.</string> <string name="logins_warning_dialog_message_2">Set up a device lock pattern, PIN, or password to protect your saved passwords from being accessed if someone else has your device.</string>
<!-- Negative button to ignore warning dialog if users have no device authentication set up --> <!-- Negative button to ignore warning dialog if users have no device authentication set up -->
<string name="logins_warning_dialog_later">Later</string> <string name="logins_warning_dialog_later">Later</string>
<!-- Positive button to send users to set up a pin of warning dialog if users have no device authentication set up --> <!-- Positive button to send users to set up a pin of warning dialog if users have no device authentication set up -->
@ -1731,9 +1730,9 @@
<!-- Saved logins sorting strategy menu item -by last used- (if selected, it will sort saved logins by last used) --> <!-- Saved logins sorting strategy menu item -by last used- (if selected, it will sort saved logins by last used) -->
<string name="saved_logins_sort_strategy_last_used">Last used</string> <string name="saved_logins_sort_strategy_last_used">Last used</string>
<!-- Content description (not visible, for screen readers etc.): Sort saved logins dropdown menu chevron icon --> <!-- Content description (not visible, for screen readers etc.): Sort saved logins dropdown menu chevron icon -->
<string name="saved_logins_menu_dropdown_chevron_icon_content_description">Sort logins menu</string> <string name="saved_logins_menu_dropdown_chevron_icon_content_description" moz:RemovedIn="125" tools:ignore="UnusedResources">Sort logins menu</string>
<!-- Content description (not visible, for screen readers etc.) --> <!-- Content description (not visible, for screen readers etc.) -->
<string name="saved_logins_menu_dropdown_chevron_icon_content_description_2" tools:ignore="UnusedResources">Sort passwords menu</string> <string name="saved_logins_menu_dropdown_chevron_icon_content_description_2">Sort passwords menu</string>
<!-- Autofill --> <!-- Autofill -->
<!-- Preference and title for managing the autofill settings --> <!-- Preference and title for managing the autofill settings -->
@ -1741,41 +1740,41 @@
<!-- Preference and title for managing the settings for addresses --> <!-- Preference and title for managing the settings for addresses -->
<string name="preferences_addresses">Addresses</string> <string name="preferences_addresses">Addresses</string>
<!-- Preference and title for managing the settings for credit cards --> <!-- Preference and title for managing the settings for credit cards -->
<string name="preferences_credit_cards">Credit cards</string> <string name="preferences_credit_cards" moz:RemovedIn="125" tools:ignore="UnusedResources">Credit cards</string>
<!-- Preference and title for managing the settings for payment methods --> <!-- Preference and title for managing the settings for payment methods -->
<string name="preferences_credit_cards_2" tools:ignore="UnusedResources">Payment methods</string> <string name="preferences_credit_cards_2">Payment methods</string>
<!-- Preference for saving and autofilling credit cards --> <!-- Preference for saving and autofilling credit cards -->
<string name="preferences_credit_cards_save_and_autofill_cards">Save and autofill cards</string> <string name="preferences_credit_cards_save_and_autofill_cards" moz:RemovedIn="125" tools:ignore="UnusedResources">Save and autofill cards</string>
<!-- Preference for saving and autofilling credit cards --> <!-- Preference for saving and autofilling credit cards -->
<string name="preferences_credit_cards_save_and_autofill_cards_2" tools:ignore="UnusedResources">Save and fill payment methods</string> <string name="preferences_credit_cards_save_and_autofill_cards_2">Save and fill payment methods</string>
<!-- Preference summary for saving and autofilling credit card data --> <!-- Preference summary for saving and autofilling credit card data -->
<string name="preferences_credit_cards_save_and_autofill_cards_summary">Data is encrypted</string> <string name="preferences_credit_cards_save_and_autofill_cards_summary" moz:RemovedIn="125" tools:ignore="UnusedResources">Data is encrypted</string>
<!-- Preference summary for saving and autofilling payment method data. Parameter will be replaced by app name. --> <!-- Preference summary for saving and autofilling payment method data. Parameter will be replaced by app name. -->
<string name="preferences_credit_cards_save_and_autofill_cards_summary_2" tools:ignore="UnusedResources">%s encrypts all payment methods you save</string> <string name="preferences_credit_cards_save_and_autofill_cards_summary_2">%s encrypts all payment methods you save</string>
<!-- Preference option for syncing credit cards across devices. This is displayed when the user is not signed into sync --> <!-- Preference option for syncing credit cards across devices. This is displayed when the user is not signed into sync -->
<string name="preferences_credit_cards_sync_cards_across_devices">Sync cards across devices</string> <string name="preferences_credit_cards_sync_cards_across_devices">Sync cards across devices</string>
<!-- Preference option for syncing credit cards across devices. This is displayed when the user is signed into sync --> <!-- Preference option for syncing credit cards across devices. This is displayed when the user is signed into sync -->
<string name="preferences_credit_cards_sync_cards">Sync cards</string> <string name="preferences_credit_cards_sync_cards">Sync cards</string>
<!-- Preference option for adding a credit card --> <!-- Preference option for adding a credit card -->
<string name="preferences_credit_cards_add_credit_card">Add credit card</string> <string name="preferences_credit_cards_add_credit_card" moz:RemovedIn="125" tools:ignore="UnusedResources">Add credit card</string>
<!-- Preference option for adding a card --> <!-- Preference option for adding a card -->
<string name="preferences_credit_cards_add_credit_card_2" tools:ignore="UnusedResources">Add card</string> <string name="preferences_credit_cards_add_credit_card_2">Add card</string>
<!-- Preference option for managing saved credit cards --> <!-- Preference option for managing saved credit cards -->
<string name="preferences_credit_cards_manage_saved_cards">Manage saved cards</string> <string name="preferences_credit_cards_manage_saved_cards" moz:RemovedIn="125" tools:ignore="UnusedResources">Manage saved cards</string>
<!-- Preference option for managing saved cards --> <!-- Preference option for managing saved cards -->
<string name="preferences_credit_cards_manage_saved_cards_2" tools:ignore="UnusedResources">Manage cards</string> <string name="preferences_credit_cards_manage_saved_cards_2">Manage cards</string>
<!-- Preference option for adding an address --> <!-- Preference option for adding an address -->
<string name="preferences_addresses_add_address">Add address</string> <string name="preferences_addresses_add_address">Add address</string>
<!-- Preference option for managing saved addresses --> <!-- Preference option for managing saved addresses -->
<string name="preferences_addresses_manage_addresses">Manage addresses</string> <string name="preferences_addresses_manage_addresses">Manage addresses</string>
<!-- Preference for saving and autofilling addresses --> <!-- Preference for saving and autofilling addresses -->
<string name="preferences_addresses_save_and_autofill_addresses">Save and autofill addresses</string> <string name="preferences_addresses_save_and_autofill_addresses" moz:RemovedIn="125" tools:ignore="UnusedResources">Save and autofill addresses</string>
<!-- Preference for saving and filling addresses --> <!-- Preference for saving and filling addresses -->
<string name="preferences_addresses_save_and_autofill_addresses_2" tools:ignore="UnusedResources">Save and fill addresses</string> <string name="preferences_addresses_save_and_autofill_addresses_2">Save and fill addresses</string>
<!-- Preference summary for saving and autofilling address data --> <!-- Preference summary for saving and autofilling address data -->
<string name="preferences_addresses_save_and_autofill_addresses_summary">Include information like numbers, email and shipping addresses</string> <string name="preferences_addresses_save_and_autofill_addresses_summary" moz:RemovedIn="125" tools:ignore="UnusedResources">Include information like numbers, email and shipping addresses</string>
<!-- Preference summary for saving and filling address data --> <!-- Preference summary for saving and filling address data -->
<string name="preferences_addresses_save_and_autofill_addresses_summary_2" tools:ignore="UnusedResources">Includes phone numbers and email addresses</string> <string name="preferences_addresses_save_and_autofill_addresses_summary_2">Includes phone numbers and email addresses</string>
<!-- Title of the "Add card" screen --> <!-- Title of the "Add card" screen -->
<string name="credit_cards_add_card">Add card</string> <string name="credit_cards_add_card">Add card</string>
@ -1796,9 +1795,9 @@
<!-- The text for the "Delete card" button for deleting a credit card --> <!-- The text for the "Delete card" button for deleting a credit card -->
<string name="credit_cards_delete_card_button">Delete card</string> <string name="credit_cards_delete_card_button">Delete card</string>
<!-- The text for the confirmation message of "Delete card" dialog --> <!-- The text for the confirmation message of "Delete card" dialog -->
<string name="credit_cards_delete_dialog_confirmation">Are you sure you want to delete this credit card?</string> <string name="credit_cards_delete_dialog_confirmation" moz:RemovedIn="125" tools:ignore="UnusedResources">Are you sure you want to delete this credit card?</string>
<!-- The text for the confirmation message of "Delete card" dialog --> <!-- The text for the confirmation message of "Delete card" dialog -->
<string name="credit_cards_delete_dialog_confirmation_2" tools:ignore="UnusedResources">Delete card?</string> <string name="credit_cards_delete_dialog_confirmation_2">Delete card?</string>
<!-- The text for the positive button on "Delete card" dialog --> <!-- The text for the positive button on "Delete card" dialog -->
<string name="credit_cards_delete_dialog_button">Delete</string> <string name="credit_cards_delete_dialog_button">Delete</string>
<!-- The title for the "Save" menu item for saving a credit card --> <!-- The title for the "Save" menu item for saving a credit card -->
@ -1810,23 +1809,23 @@
<!-- Title of the "Saved cards" screen --> <!-- Title of the "Saved cards" screen -->
<string name="credit_cards_saved_cards">Saved cards</string> <string name="credit_cards_saved_cards">Saved cards</string>
<!-- Error message for credit card number validation --> <!-- Error message for credit card number validation -->
<string name="credit_cards_number_validation_error_message">Please enter a valid credit card number</string> <string name="credit_cards_number_validation_error_message" moz:RemovedIn="125" tools:ignore="UnusedResources">Please enter a valid credit card number</string>
<!-- Error message for card number validation --> <!-- Error message for card number validation -->
<string name="credit_cards_number_validation_error_message_2" tools:ignore="UnusedResources">Enter a valid card number</string> <string name="credit_cards_number_validation_error_message_2">Enter a valid card number</string>
<!-- Error message for credit card name on card validation --> <!-- Error message for credit card name on card validation -->
<string name="credit_cards_name_on_card_validation_error_message">Please fill out this field</string> <string name="credit_cards_name_on_card_validation_error_message" moz:RemovedIn="125" tools:ignore="UnusedResources">Please fill out this field</string>
<!-- Error message for card name on card validation --> <!-- Error message for card name on card validation -->
<string name="credit_cards_name_on_card_validation_error_message_2" tools:ignore="UnusedResources">Add a name</string> <string name="credit_cards_name_on_card_validation_error_message_2">Add a name</string>
<!-- Message displayed in biometric prompt displayed for authentication before allowing users to view their saved credit cards --> <!-- Message displayed in biometric prompt displayed for authentication before allowing users to view their saved credit cards -->
<string name="credit_cards_biometric_prompt_message">Unlock to view your saved cards</string> <string name="credit_cards_biometric_prompt_message">Unlock to view your saved cards</string>
<!-- Title of warning dialog if users have no device authentication set up --> <!-- Title of warning dialog if users have no device authentication set up -->
<string name="credit_cards_warning_dialog_title">Secure your credit cards</string> <string name="credit_cards_warning_dialog_title" moz:RemovedIn="125" tools:ignore="UnusedResources">Secure your credit cards</string>
<!-- Title of warning dialog if users have no device authentication set up --> <!-- Title of warning dialog if users have no device authentication set up -->
<string name="credit_cards_warning_dialog_title_2" tools:ignore="UnusedResources">Secure your saved payment methods</string> <string name="credit_cards_warning_dialog_title_2">Secure your saved payment methods</string>
<!-- Message of warning dialog if users have no device authentication set up --> <!-- Message of warning dialog if users have no device authentication set up -->
<string name="credit_cards_warning_dialog_message">Set up a device lock pattern, PIN, or password to protect your saved credit cards from being accessed if someone else has your device.</string> <string name="credit_cards_warning_dialog_message" moz:RemovedIn="125" tools:ignore="UnusedResources">Set up a device lock pattern, PIN, or password to protect your saved credit cards from being accessed if someone else has your device.</string>
<!-- Message of warning dialog if users have no device authentication set up --> <!-- Message of warning dialog if users have no device authentication set up -->
<string name="credit_cards_warning_dialog_message_3" tools:ignore="UnusedResources">Set up a device lock pattern, PIN, or password to protect your saved payment methods from being accessed if someone else has your device.</string> <string name="credit_cards_warning_dialog_message_3">Set up a device lock pattern, PIN, or password to protect your saved payment methods from being accessed if someone else has your device.</string>
<!-- Positive button to send users to set up a pin of warning dialog if users have no device authentication set up --> <!-- Positive button to send users to set up a pin of warning dialog if users have no device authentication set up -->
<string name="credit_cards_warning_dialog_set_up_now">Set up now</string> <string name="credit_cards_warning_dialog_set_up_now">Set up now</string>
<!-- Negative button to ignore warning dialog if users have no device authentication set up --> <!-- Negative button to ignore warning dialog if users have no device authentication set up -->
@ -1834,9 +1833,9 @@
<!-- Title of PIN verification dialog to direct users to re-enter their device credentials to access their credit cards --> <!-- Title of PIN verification dialog to direct users to re-enter their device credentials to access their credit cards -->
<string name="credit_cards_biometric_prompt_message_pin">Unlock your device</string> <string name="credit_cards_biometric_prompt_message_pin">Unlock your device</string>
<!-- Message displayed in biometric prompt for authentication, before allowing users to use their stored credit card information --> <!-- Message displayed in biometric prompt for authentication, before allowing users to use their stored credit card information -->
<string name="credit_cards_biometric_prompt_unlock_message">Unlock to use stored credit card information</string> <string name="credit_cards_biometric_prompt_unlock_message" moz:RemovedIn="125" tools:ignore="UnusedResources">Unlock to use stored credit card information</string>
<!-- Message displayed in biometric prompt for authentication, before allowing users to use their stored payment method information --> <!-- Message displayed in biometric prompt for authentication, before allowing users to use their stored payment method information -->
<string name="credit_cards_biometric_prompt_unlock_message_2" tools:ignore="UnusedResources">Unlock to use saved payment methods</string> <string name="credit_cards_biometric_prompt_unlock_message_2">Unlock to use saved payment methods</string>
<!-- Title of the "Add address" screen --> <!-- Title of the "Add address" screen -->
<string name="addresses_add_address">Add address</string> <string name="addresses_add_address">Add address</string>
<!-- Title of the "Edit address" screen --> <!-- Title of the "Edit address" screen -->
@ -1874,9 +1873,9 @@
<!-- The text for the "Delete address" button for deleting an address --> <!-- The text for the "Delete address" button for deleting an address -->
<string name="addressess_delete_address_button">Delete address</string> <string name="addressess_delete_address_button">Delete address</string>
<!-- The title for the "Delete address" confirmation dialog --> <!-- The title for the "Delete address" confirmation dialog -->
<string name="addressess_confirm_dialog_message">Are you sure you want to delete this address?</string> <string name="addressess_confirm_dialog_message" moz:RemovedIn="125" tools:ignore="UnusedResources">Are you sure you want to delete this address?</string>
<!-- The title for the "Delete address" confirmation dialog --> <!-- The title for the "Delete address" confirmation dialog -->
<string name="addressess_confirm_dialog_message_2" tools:ignore="UnusedResources">Delete this address?</string> <string name="addressess_confirm_dialog_message_2" >Delete this address?</string>
<!-- The text for the positive button on "Delete address" dialog --> <!-- The text for the positive button on "Delete address" dialog -->
<string name="addressess_confirm_dialog_ok_button">Delete</string> <string name="addressess_confirm_dialog_ok_button">Delete</string>
<!-- The text for the negative button on "Delete address" dialog --> <!-- The text for the negative button on "Delete address" dialog -->
@ -1972,49 +1971,49 @@
<!-- Login overflow menu edit button --> <!-- Login overflow menu edit button -->
<string name="login_menu_edit_button">Edit</string> <string name="login_menu_edit_button">Edit</string>
<!-- Message in delete confirmation dialog for logins --> <!-- Message in delete confirmation dialog for logins -->
<string name="login_deletion_confirmation">Are you sure you want to delete this login?</string> <string name="login_deletion_confirmation" moz:RemovedIn="125" tools:ignore="UnusedResources">Are you sure you want to delete this login?</string>
<!-- Message in delete confirmation dialog for password --> <!-- Message in delete confirmation dialog for password -->
<string name="login_deletion_confirmation_2" tools:ignore="UnusedResources">Are you sure you want to delete this password?</string> <string name="login_deletion_confirmation_2">Are you sure you want to delete this password?</string>
<!-- Positive action of a dialog asking to delete --> <!-- Positive action of a dialog asking to delete -->
<string name="dialog_delete_positive">Delete</string> <string name="dialog_delete_positive">Delete</string>
<!-- Negative action of a dialog asking to delete login --> <!-- Negative action of a dialog asking to delete login -->
<string name="dialog_delete_negative">Cancel</string> <string name="dialog_delete_negative">Cancel</string>
<!-- The saved login options menu description. --> <!-- The saved login options menu description. -->
<string name="login_options_menu">Login options</string> <string name="login_options_menu" moz:RemovedIn="125" tools:ignore="UnusedResources">Login options</string>
<!-- The saved password options menu description. --> <!-- The saved password options menu description. -->
<string name="login_options_menu_2" tools:ignore="UnusedResources">Password options</string> <string name="login_options_menu_2">Password options</string>
<!-- The editable text field for a login's web address. --> <!-- The editable text field for a login's web address. -->
<string name="saved_login_hostname_description">The editable text field for the web address of the login.</string> <string name="saved_login_hostname_description" moz:RemovedIn="125" tools:ignore="UnusedResources">The editable text field for the web address of the login.</string>
<!-- The editable text field for a website address. --> <!-- The editable text field for a website address. -->
<string name="saved_login_hostname_description_3" tools:ignore="UnusedResources">The editable text field for the website address.</string> <string name="saved_login_hostname_description_3">The editable text field for the website address.</string>
<!-- The editable text field for a login's username. --> <!-- The editable text field for a login's username. -->
<string name="saved_login_username_description">The editable text field for the username of the login.</string> <string name="saved_login_username_description" moz:RemovedIn="125" tools:ignore="UnusedResources">The editable text field for the username of the login.</string>
<!-- The editable text field for a username. --> <!-- The editable text field for a username. -->
<string name="saved_login_username_description_3" tools:ignore="UnusedResources">The editable text field for the username.</string> <string name="saved_login_username_description_3">The editable text field for the username.</string>
<!-- The editable text field for a login's password. --> <!-- The editable text field for a login's password. -->
<string name="saved_login_password_description">The editable text field for the password of the login.</string> <string name="saved_login_password_description" moz:RemovedIn="125" tools:ignore="UnusedResources">The editable text field for the password of the login.</string>
<!-- The editable text field for a login's password. --> <!-- The editable text field for a login's password. -->
<string name="saved_login_password_description_2" tools:ignore="UnusedResources">The editable text field for the password.</string> <string name="saved_login_password_description_2">The editable text field for the password.</string>
<!-- The button description to save changes to an edited login. --> <!-- The button description to save changes to an edited login. -->
<string name="save_changes_to_login">Save changes to login.</string> <string name="save_changes_to_login" moz:RemovedIn="125" tools:ignore="UnusedResources">Save changes to login.</string>
<!-- The button description to save changes to an edited password. --> <!-- The button description to save changes to an edited password. -->
<string name="save_changes_to_login_2" tools:ignore="UnusedResources">Save changes.</string> <string name="save_changes_to_login_2">Save changes.</string>
<!-- The page title for editing a saved login. --> <!-- The page title for editing a saved login. -->
<string name="edit">Edit</string> <string name="edit" moz:RemovedIn="125" tools:ignore="UnusedResources">Edit</string>
<!-- The page title for editing a saved password. --> <!-- The page title for editing a saved password. -->
<string name="edit_2" tools:ignore="UnusedResources">Edit password</string> <string name="edit_2">Edit password</string>
<!-- The page title for adding new login. --> <!-- The page title for adding new login. -->
<string name="add_login">Add new login</string> <string name="add_login" moz:RemovedIn="125" tools:ignore="UnusedResources">Add new login</string>
<!-- The page title for adding new password. --> <!-- The page title for adding new password. -->
<string name="add_login_2" tools:ignore="UnusedResources">Add password</string> <string name="add_login_2">Add password</string>
<!-- The error message in add/edit login view when password field is blank. --> <!-- The error message in add/edit login view when password field is blank. -->
<string name="saved_login_password_required">Password required</string> <string name="saved_login_password_required" moz:RemovedIn="125" tools:ignore="UnusedResources">Password required</string>
<!-- Error text displayed underneath the password field when it is in an error case. --> <!-- Error text displayed underneath the password field when it is in an error case. -->
<string name="saved_login_password_required_2" tools:ignore="UnusedResources">Enter a password</string> <string name="saved_login_password_required_2">Enter a password</string>
<!-- The error message in add login view when username field is blank. --> <!-- The error message in add login view when username field is blank. -->
<string name="saved_login_username_required">Username required</string> <string name="saved_login_username_required" moz:RemovedIn="125" tools:ignore="UnusedResources">Username required</string>
<!-- The error message in add login view when username field is blank. --> <!-- The error message in add login view when username field is blank. -->
<string name="saved_login_username_required_2" tools:ignore="UnusedResources">Enter a username</string> <string name="saved_login_username_required_2">Enter a username</string>
<!-- The error message in add login view when hostname field is blank. --> <!-- The error message in add login view when hostname field is blank. -->
<string name="saved_login_hostname_required" tools:ignore="UnusedResources">Hostname required</string> <string name="saved_login_hostname_required" tools:ignore="UnusedResources">Hostname required</string>
<!-- The error message in add login view when hostname field is blank. --> <!-- The error message in add login view when hostname field is blank. -->

@ -38,7 +38,7 @@
android:defaultValue="true" android:defaultValue="true"
android:key="@string/pref_key_sync_credit_cards" android:key="@string/pref_key_sync_credit_cards"
android:layout="@layout/checkbox_left_preference" android:layout="@layout/checkbox_left_preference"
android:title="@string/preferences_sync_credit_cards" /> android:title="@string/preferences_sync_credit_cards_2" />
<CheckBoxPreference <CheckBoxPreference
android:defaultValue="true" android:defaultValue="true"
@ -50,7 +50,7 @@
android:defaultValue="true" android:defaultValue="true"
android:key="@string/pref_key_sync_logins" android:key="@string/pref_key_sync_logins"
android:layout="@layout/checkbox_left_preference" android:layout="@layout/checkbox_left_preference"
android:title="@string/preferences_sync_logins" /> android:title="@string/preferences_sync_logins_2" />
<CheckBoxPreference <CheckBoxPreference
android:defaultValue="true" android:defaultValue="true"

@ -12,8 +12,8 @@
<SwitchPreference <SwitchPreference
android:defaultValue="true" android:defaultValue="true"
android:key="@string/pref_key_addresses_save_and_autofill_addresses" android:key="@string/pref_key_addresses_save_and_autofill_addresses"
android:summary="@string/preferences_addresses_save_and_autofill_addresses_summary" android:summary="@string/preferences_addresses_save_and_autofill_addresses_summary_2"
android:title="@string/preferences_addresses_save_and_autofill_addresses" /> android:title="@string/preferences_addresses_save_and_autofill_addresses_2" />
<Preference <Preference
android:key="@string/pref_key_addresses_manage_addresses" android:key="@string/pref_key_addresses_manage_addresses"
android:title="@string/preferences_addresses_manage_addresses" /> android:title="@string/preferences_addresses_manage_addresses" />
@ -21,18 +21,18 @@
<androidx.preference.PreferenceCategory <androidx.preference.PreferenceCategory
android:layout="@layout/preference_cat_style" android:layout="@layout/preference_cat_style"
android:title="@string/preferences_credit_cards"> android:title="@string/preferences_credit_cards_2">
<SwitchPreference <SwitchPreference
android:defaultValue="true" android:defaultValue="true"
android:key="@string/pref_key_credit_cards_save_and_autofill_cards" android:key="@string/pref_key_credit_cards_save_and_autofill_cards"
android:summary="@string/preferences_credit_cards_save_and_autofill_cards_summary" android:summary="@string/preferences_credit_cards_save_and_autofill_cards_summary_2"
android:title="@string/preferences_credit_cards_save_and_autofill_cards" /> android:title="@string/preferences_credit_cards_save_and_autofill_cards_2" />
<org.mozilla.fenix.settings.SyncPreference <org.mozilla.fenix.settings.SyncPreference
android:key="@string/pref_key_credit_cards_sync_cards_across_devices" android:key="@string/pref_key_credit_cards_sync_cards_across_devices"
android:title="@string/preferences_credit_cards_sync_cards_across_devices" android:title="@string/preferences_credit_cards_sync_cards_across_devices"
app:singleLineTitle="false" /> app:singleLineTitle="false" />
<Preference <Preference
android:key="@string/pref_key_credit_cards_manage_cards" android:key="@string/pref_key_credit_cards_manage_cards"
android:title="@string/preferences_credit_cards_manage_saved_cards" /> android:title="@string/preferences_credit_cards_manage_saved_cards_2" />
</androidx.preference.PreferenceCategory> </androidx.preference.PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>

@ -7,8 +7,8 @@
<SwitchPreference <SwitchPreference
android:defaultValue="true" android:defaultValue="true"
android:key="@string/pref_key_credit_cards_save_and_autofill_cards" android:key="@string/pref_key_credit_cards_save_and_autofill_cards"
android:summary="@string/preferences_credit_cards_save_and_autofill_cards_summary" android:summary="@string/preferences_credit_cards_save_and_autofill_cards_summary_2"
android:title="@string/preferences_credit_cards_save_and_autofill_cards" /> android:title="@string/preferences_credit_cards_save_and_autofill_cards_2" />
<org.mozilla.fenix.settings.SyncPreference <org.mozilla.fenix.settings.SyncPreference
android:key="@string/pref_key_credit_cards_sync_cards_across_devices" android:key="@string/pref_key_credit_cards_sync_cards_across_devices"
android:title="@string/preferences_credit_cards_sync_cards_across_devices" android:title="@string/preferences_credit_cards_sync_cards_across_devices"
@ -16,6 +16,6 @@
app:allowDividerBelow="true" /> app:allowDividerBelow="true" />
<Preference <Preference
android:key="@string/pref_key_credit_cards_manage_cards" android:key="@string/pref_key_credit_cards_manage_cards"
android:title="@string/preferences_credit_cards_manage_saved_cards" android:title="@string/preferences_credit_cards_manage_saved_cards_2"
app:allowDividerAbove="true" /> app:allowDividerAbove="true" />
</PreferenceScreen> </PreferenceScreen>

@ -7,7 +7,7 @@
<Preference <Preference
android:key="@string/pref_key_save_logins_settings" android:key="@string/pref_key_save_logins_settings"
android:summary="@string/preferences_passwords_save_logins_ask_to_save" android:summary="@string/preferences_passwords_save_logins_ask_to_save"
android:title="@string/preferences_passwords_save_logins" /> android:title="@string/preferences_passwords_save_logins_2" />
<SwitchPreference <SwitchPreference
android:defaultValue="true" android:defaultValue="true"
android:key="@string/pref_key_autofill_logins" android:key="@string/pref_key_autofill_logins"
@ -19,10 +19,10 @@
android:summary="@string/preferences_android_autofill_description" /> android:summary="@string/preferences_android_autofill_description" />
<org.mozilla.fenix.settings.SyncPreference <org.mozilla.fenix.settings.SyncPreference
android:key="@string/pref_key_sync_logins" android:key="@string/pref_key_sync_logins"
android:title="@string/preferences_passwords_sync_logins" /> android:title="@string/preferences_passwords_sync_logins_2" />
<Preference <Preference
android:key="@string/pref_key_saved_logins" android:key="@string/pref_key_saved_logins"
android:title="@string/preferences_passwords_saved_logins" /> android:title="@string/preferences_passwords_saved_logins_2" />
<androidx.preference.Preference <androidx.preference.Preference
android:key="@string/pref_key_login_exceptions" android:key="@string/pref_key_login_exceptions"
android:title="@string/preferences_passwords_exceptions" android:title="@string/preferences_passwords_exceptions"

@ -65,12 +65,12 @@
<androidx.preference.Preference <androidx.preference.Preference
android:key="@string/pref_key_passwords" android:key="@string/pref_key_passwords"
app:iconSpaceReserved="false" app:iconSpaceReserved="false"
android:title="@string/preferences_passwords_logins_and_passwords" /> android:title="@string/preferences_passwords_logins_and_passwords_2" />
<androidx.preference.Preference <androidx.preference.Preference
app:iconSpaceReserved="false" app:iconSpaceReserved="false"
android:key="@string/pref_key_credit_cards" android:key="@string/pref_key_credit_cards"
android:title="@string/preferences_credit_cards" /> android:title="@string/preferences_credit_cards_2" />
<androidx.preference.Preference <androidx.preference.Preference
android:key="@string/pref_key_accessibility" android:key="@string/pref_key_accessibility"

@ -44,7 +44,7 @@ class FenixSnackbarDelegateTest {
every { snackbar.setText(any()) } returns snackbar every { snackbar.setText(any()) } returns snackbar
every { snackbar.setAction(any(), any()) } returns snackbar every { snackbar.setAction(any(), any()) } returns snackbar
every { view.context.getString(R.string.app_name) } returns "Firefox" every { view.context.getString(R.string.app_name) } returns "Firefox"
every { view.context.getString(R.string.edit) } returns "Edit" every { view.context.getString(R.string.edit_2) } returns "Edit password"
} }
@After @After
@ -88,7 +88,7 @@ class FenixSnackbarDelegateTest {
snackBarParentView = mockk(), snackBarParentView = mockk(),
text = R.string.app_name, text = R.string.app_name,
duration = 0, duration = 0,
action = R.string.edit, action = R.string.edit_2,
listener = null, listener = null,
) )
@ -104,14 +104,14 @@ class FenixSnackbarDelegateTest {
snackBarParentView = mockk(), snackBarParentView = mockk(),
text = R.string.app_name, text = R.string.app_name,
duration = 0, duration = 0,
action = R.string.edit, action = R.string.edit_2,
listener = listener, listener = listener,
) )
verify { snackbar.setText("Firefox") } verify { snackbar.setText("Firefox") }
verify { verify {
snackbar.setAction( snackbar.setAction(
"Edit", "Edit password",
withArg { withArg {
verify(exactly = 0) { listener(view) } verify(exactly = 0) { listener(view) }
it.invoke() it.invoke()

@ -38,7 +38,7 @@ class LoginExceptionsViewTest {
@Test @Test
fun `sets empty message text`() { fun `sets empty message text`() {
assertEquals( assertEquals(
"Logins and passwords that are not saved will be shown here.", "Firefox Fenix wont save passwords for sites listed here.",
view.binding.exceptionsEmptyMessage.text, view.binding.exceptionsEmptyMessage.text,
) )
assertTrue(view.binding.exceptionsList.adapter is LoginExceptionsAdapter) assertTrue(view.binding.exceptionsList.adapter is LoginExceptionsAdapter)

@ -24,14 +24,17 @@ class ExceptionsHeaderViewHolderTest {
view = mockk { view = mockk {
every { findViewById<TextView>(R.id.exceptions_description) } returns description every { findViewById<TextView>(R.id.exceptions_description) } returns description
every { every {
context.getString(R.string.preferences_passwords_exceptions_description) context.getString(eq(R.string.preferences_passwords_exceptions_description_2), any())
} returns "Logins and passwords will not be saved for these sites." } returns "Firefox fenix wont save passwords for these sites."
every {
context.getString(R.string.app_name)
} returns "Firefox fenix"
} }
} }
@Test @Test
fun `sets description text`() { fun `sets description text`() {
ExceptionsHeaderViewHolder(view, R.string.preferences_passwords_exceptions_description) ExceptionsHeaderViewHolder(view, R.string.preferences_passwords_exceptions_description_2)
verify { description.text = "Logins and passwords will not be saved for these sites." } verify { description.text = "Firefox fenix wont save passwords for these sites." }
} }
} }

@ -60,9 +60,9 @@ class AutofillSettingFragmentTest {
} }
@Test @Test
fun `GIVEN the list of credit cards is not empty, WHEN fragment is displayed THEN the manage credit cards pref is 'Manage saved cards'`() = runTestOnMain { fun `GIVEN the list of credit cards is not empty, WHEN fragment is displayed THEN the manage credit cards pref is 'Manage cards'`() = runTestOnMain {
val preferenceTitle = val preferenceTitle =
testContext.getString(R.string.preferences_credit_cards_manage_saved_cards) testContext.getString(R.string.preferences_credit_cards_manage_saved_cards_2)
val manageCardsPreference = autofillSettingFragment.findPreference<Preference>( val manageCardsPreference = autofillSettingFragment.findPreference<Preference>(
autofillSettingFragment.getPreferenceKey(R.string.pref_key_credit_cards_manage_cards), autofillSettingFragment.getPreferenceKey(R.string.pref_key_credit_cards_manage_cards),
) )
@ -84,7 +84,7 @@ class AutofillSettingFragmentTest {
@Test @Test
fun `GIVEN the list of credit cards is empty, WHEN fragment is displayed THEN the manage credit cards pref is 'Add card'`() = runTestOnMain { fun `GIVEN the list of credit cards is empty, WHEN fragment is displayed THEN the manage credit cards pref is 'Add card'`() = runTestOnMain {
val preferenceTitle = val preferenceTitle =
testContext.getString(R.string.preferences_credit_cards_add_credit_card) testContext.getString(R.string.preferences_credit_cards_add_credit_card_2)
val manageCardsPreference = autofillSettingFragment.findPreference<Preference>( val manageCardsPreference = autofillSettingFragment.findPreference<Preference>(
autofillSettingFragment.getPreferenceKey(R.string.pref_key_credit_cards_manage_cards), autofillSettingFragment.getPreferenceKey(R.string.pref_key_credit_cards_manage_cards),
) )

@ -64,8 +64,8 @@ class SyncPreferenceViewTest {
every { getString(R.string.preferences_credit_cards_sync_cards) } returns "Sync cards" every { getString(R.string.preferences_credit_cards_sync_cards) } returns "Sync cards"
every { getString(R.string.pref_key_sync_logins) } returns "pref_key_sync_logins" every { getString(R.string.pref_key_sync_logins) } returns "pref_key_sync_logins"
every { getString(R.string.preferences_passwords_sync_logins) } returns "Sync logins" every { getString(R.string.preferences_passwords_sync_logins_2) } returns "Sync passwords"
every { getString(R.string.preferences_passwords_sync_logins_across_devices) } returns "Sync logins across devices" every { getString(R.string.preferences_passwords_sync_logins_across_devices_2) } returns "Sync passwords across devices"
} }
syncPreference = mockk { syncPreference = mockk {
@ -204,7 +204,7 @@ class SyncPreferenceViewTest {
) )
companion object { companion object {
const val notLoggedInTitle: String = "Sync logins across devices" const val notLoggedInTitle: String = "Sync passwords across devices"
const val loggedInTitle: String = "Sync logins" const val loggedInTitle: String = "Sync passwords"
} }
} }

Loading…
Cancel
Save