From 46a267a494d402efa28fd55eeaa9444a1f2bc26e Mon Sep 17 00:00:00 2001 From: Gabriel Luong Date: Sun, 28 Feb 2021 18:53:22 -0500 Subject: [PATCH] For #18243 - Add a credit card editor screen --- .../creditcards/CreditCardEditorFragment.kt | 36 +++ .../creditcards/CreditCardsSettingFragment.kt | 14 ++ .../layout/fragment_credit_card_editor.xml | 237 ++++++++++++++++++ app/src/main/res/navigation/nav_graph.xml | 11 + app/src/main/res/values/strings.xml | 18 ++ 5 files changed, 316 insertions(+) create mode 100644 app/src/main/java/org/mozilla/fenix/settings/creditcards/CreditCardEditorFragment.kt create mode 100644 app/src/main/res/layout/fragment_credit_card_editor.xml 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 000000000..c2693ce01 --- /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 4c2d71163..8febafc58 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 000000000..8303799ff --- /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 1912372ba..552306844 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 4d72c69b1..c596164c0 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