diff --git a/app/src/main/java/org/mozilla/fenix/settings/creditcards/CreditCardEditorFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/creditcards/CreditCardEditorFragment.kt
new file mode 100644
index 0000000000..c2693ce01e
--- /dev/null
+++ b/app/src/main/java/org/mozilla/fenix/settings/creditcards/CreditCardEditorFragment.kt
@@ -0,0 +1,36 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.fenix.settings.creditcards
+
+import android.os.Bundle
+import android.view.View
+import androidx.fragment.app.Fragment
+import androidx.navigation.fragment.findNavController
+import kotlinx.android.synthetic.main.fragment_credit_card_editor.view.*
+import org.mozilla.fenix.R
+import org.mozilla.fenix.ext.showToolbar
+
+/**
+ * Display a credit card editor for adding and editing a credit card.
+ */
+class CreditCardEditorFragment : Fragment(R.layout.fragment_credit_card_editor) {
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ showToolbar(getString(R.string.credit_cards_add_card))
+
+ setupButtonClickListeners(view)
+ }
+
+ /**
+ * Setup the all button click listeners in the credit card editor.
+ */
+ private fun setupButtonClickListeners(view: View) {
+ view.cancel_button.setOnClickListener {
+ findNavController().popBackStack()
+ }
+ }
+}
diff --git a/app/src/main/java/org/mozilla/fenix/settings/creditcards/CreditCardsSettingFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/creditcards/CreditCardsSettingFragment.kt
index 4c2d711635..8febafc58e 100644
--- a/app/src/main/java/org/mozilla/fenix/settings/creditcards/CreditCardsSettingFragment.kt
+++ b/app/src/main/java/org/mozilla/fenix/settings/creditcards/CreditCardsSettingFragment.kt
@@ -6,9 +6,11 @@ package org.mozilla.fenix.settings.creditcards
import android.os.Bundle
import androidx.navigation.fragment.findNavController
+import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import mozilla.components.service.fxa.SyncEngine
import org.mozilla.fenix.R
+import org.mozilla.fenix.ext.getPreferenceKey
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.showToolbar
import org.mozilla.fenix.settings.SyncPreferenceView
@@ -51,4 +53,16 @@ class CreditCardsSettingFragment : PreferenceFragmentCompat() {
}
)
}
+
+ override fun onPreferenceTreeClick(preference: Preference): Boolean {
+ when (preference.key) {
+ getPreferenceKey(R.string.pref_key_credit_cards_add_credit_card) -> {
+ val directions =
+ CreditCardsSettingFragmentDirections.actionCreditCardsSettingFragmentToCreditCardEditorFragment()
+ findNavController().navigate(directions)
+ }
+ }
+
+ return super.onPreferenceTreeClick(preference)
+ }
}
diff --git a/app/src/main/res/layout/fragment_credit_card_editor.xml b/app/src/main/res/layout/fragment_credit_card_editor.xml
new file mode 100644
index 0000000000..8303799ff0
--- /dev/null
+++ b/app/src/main/res/layout/fragment_credit_card_editor.xml
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml
index 1912372ba2..552306844e 100644
--- a/app/src/main/res/navigation/nav_graph.xml
+++ b/app/src/main/res/navigation/nav_graph.xml
@@ -1044,6 +1044,17 @@
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right" />
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4d72c69b1b..c596164c0d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,6 +2,12 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+ Cancel
+
+ Save
+
Private %s
@@ -1513,6 +1519,18 @@
Sync cards across devices
Add credit card
+
+ Add card
+
+ Card Number
+
+ Expiration Date
+
+ Name on Card
+
+ Card Nickname
+
+ Delete card
Add search engine