Remove unused credit card fragment

This commit is contained in:
J-Jamet
2021-05-09 15:27:05 +02:00
parent 68ae3b79ab
commit da4d8629bd
6 changed files with 0 additions and 233 deletions

View File

@@ -85,7 +85,6 @@ import kotlin.collections.ArrayList
class EntryEditActivity : LockingActivity(),
EntryCustomFieldDialogFragment.EntryCustomFieldListener,
GeneratePasswordDialogFragment.GeneratePasswordListener,
CreditCardDetailsDialogFragment.EntryCCFieldListener,
SetOTPDialogFragment.CreateOtpListener,
DatePickerDialog.OnDateSetListener,
TimePickerDialog.OnTimeSetListener,
@@ -435,29 +434,6 @@ class EntryEditActivity : LockingActivity(),
GeneratePasswordDialogFragment().show(supportFragmentManager, "PasswordGeneratorFragment")
}
private fun addNewCreditCard() {
var cardholder: String? = null
var number: String? = null
var expiration: String? = null
var cvv: String? = null
entryEditFragment?.getCustomFields()?.forEach { field ->
when (field.name) {
TemplatesCustomFields.CC_CARDHOLDER_FIELD_NAME ->
cardholder = field.protectedValue.stringValue
TemplatesCustomFields.CC_NUMBER_FIELD_NAME ->
number = field.protectedValue.stringValue
TemplatesCustomFields.CC_EXP_FIELD_NAME ->
expiration = field.protectedValue.stringValue
TemplatesCustomFields.CC_CVV_FIELD_NAME ->
cvv = field.protectedValue.stringValue
}
}
val cc = CreditCard(cardholder, number, expiration, cvv)
CreditCardDetailsDialogFragment.build(cc).show(supportFragmentManager, "CreditCardDialog")
}
/**
* Add a new customized field
*/
@@ -490,10 +466,6 @@ class EntryEditActivity : LockingActivity(),
entryEditFragment?.removeCustomField(oldField)
}
override fun onNewCCFieldsApproved(ccFields: ArrayList<Field>) {
// TODO Remove
}
/**
* Add a new attachment
*/
@@ -655,11 +627,6 @@ class EntryEditActivity : LockingActivity(),
isVisible = allowCustomField
}
menu?.findItem(R.id.menu_add_credit_card)?.apply {
isEnabled = allowCustomField
isVisible = allowCustomField
}
// Attachment not compatible below KitKat
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
menu?.findItem(R.id.menu_add_attachment)?.isVisible = false
@@ -727,10 +694,6 @@ class EntryEditActivity : LockingActivity(),
addNewCustomField()
return true
}
R.id.menu_add_credit_card -> {
addNewCreditCard()
return true
}
R.id.menu_add_attachment -> {
addNewAttachment()
return true

View File

@@ -1,179 +0,0 @@
package com.kunzisoft.keepass.activities.dialogs
import android.app.Dialog
import android.content.Context
import android.os.Bundle
import android.view.WindowManager
import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.EditText
import android.widget.Spinner
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.model.CreditCard
import com.kunzisoft.keepass.model.TemplatesCustomFields.buildAllFields
import com.kunzisoft.keepass.model.Field
import java.util.*
class CreditCardDetailsDialogFragment : DialogFragment() {
private var mCreditCard: CreditCard? = null
private var entryCCFieldListener: EntryCCFieldListener? = null
private var mCcCardholderName: EditText? = null
private var mCcCardNumber: EditText? = null
private var mCcSecurityCode: EditText? = null
private var mCcExpirationMonthSpinner: Spinner? = null
private var mCcExpirationYearSpinner: Spinner? = null
private var mPositiveButton: Button? = null
override fun onAttach(context: Context) {
super.onAttach(context)
try {
entryCCFieldListener = context as EntryCCFieldListener
} catch (e: ClassCastException) {
// The activity doesn't implement the interface, throw exception
throw ClassCastException(context.toString()
+ " must implement " + EntryCCFieldListener::class.java.name)
}
}
override fun onDetach() {
entryCCFieldListener = null
super.onDetach()
}
override fun onResume() {
super.onResume()
// To prevent auto dismiss
val d = dialog as AlertDialog?
if (d != null) {
mPositiveButton = d.getButton(Dialog.BUTTON_POSITIVE) as Button
mPositiveButton?.run {
setOnClickListener {
submitDialog()
}
}
}
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putParcelable(KEY_CREDIT_CARD, mCreditCard)
}
private fun submitDialog() {
val ccNumber = mCcCardNumber?.text?.toString() ?: ""
val month = mCcExpirationMonthSpinner?.selectedItem?.toString() ?: ""
val year = mCcExpirationYearSpinner?.selectedItem?.toString()?.substring(2,4) ?: ""
val cvv = mCcSecurityCode?.text?.toString() ?: ""
val ccName = mCcCardholderName?.text?.toString() ?: ""
entryCCFieldListener?.onNewCCFieldsApproved(buildAllFields(ccName, ccNumber, month + year, cvv))
(dialog as AlertDialog?)?.dismiss()
}
interface EntryCCFieldListener {
fun onNewCCFieldsApproved(ccFields: ArrayList<Field>)
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
// Retrieve credit card details if available
if (savedInstanceState != null) {
if (savedInstanceState.containsKey(KEY_CREDIT_CARD)) {
mCreditCard = savedInstanceState.getParcelable(KEY_CREDIT_CARD)
}
} else {
arguments?.apply {
if (containsKey(KEY_CREDIT_CARD)) {
mCreditCard = getParcelable(KEY_CREDIT_CARD)
}
}
}
activity?.let { activity ->
val root = activity.layoutInflater.inflate(R.layout.entry_cc_details_dialog, null)
root?.run {
mCcCardholderName = findViewById(R.id.creditCardholderNameField)
mCcCardNumber = findViewById(R.id.creditCardNumberField)
mCcSecurityCode = findViewById(R.id.creditCardSecurityCode)
mCcExpirationMonthSpinner = findViewById(R.id.expirationMonth)
mCcExpirationYearSpinner = findViewById(R.id.expirationYear)
mCreditCard?.cardholder?.let {
mCcCardholderName?.setText(it)
}
mCreditCard?.number?.let {
mCcCardNumber?.setText(it)
}
mCreditCard?.cvv?.let {
mCcSecurityCode?.setText(it)
}
}
val months = arrayOf("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12")
mCcExpirationMonthSpinner?.let { spinner ->
spinner.adapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_item, months)
mCreditCard?.let { cc ->
spinner.setSelection(getIndex(spinner, cc.getExpirationMonth()))
}
}
val years = arrayOfNulls<String>(5)
val year = Calendar.getInstance()[Calendar.YEAR]
for (i in years.indices) {
years[i] = (year + i).toString()
}
mCcExpirationYearSpinner?.let { spinner ->
spinner.adapter = ArrayAdapter<String>(requireContext(), android.R.layout.simple_spinner_item, years)
mCreditCard?.let { cc ->
spinner.setSelection(getIndex(spinner, "20" + cc.getExpirationYear()))
}
}
val builder = AlertDialog.Builder(activity)
builder.setView(root).setTitle(R.string.entry_setup_credit_card)
.setPositiveButton(android.R.string.ok, null)
.setNegativeButton(android.R.string.cancel) { _, _ -> }
val dialogCreated = builder.create()
dialogCreated.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
return dialogCreated
}
return super.onCreateDialog(savedInstanceState)
}
private fun getIndex(spinner: Spinner, value: String?): Int {
for (i in 0 until spinner.count) {
if (spinner.getItemAtPosition(i).toString() == value) {
return i
}
}
return 0
}
companion object {
private const val KEY_CREDIT_CARD = "KEY_CREDIT_CARD"
fun build(creditCard: CreditCard? = null): CreditCardDetailsDialogFragment {
return CreditCardDetailsDialogFragment().apply {
if (creditCard != null) {
arguments = Bundle().apply {
putParcelable(KEY_CREDIT_CARD, creditCard)
}
}
}
}
}
}

View File

@@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#ffffff"
android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z"/>
</vector>

View File

@@ -33,12 +33,6 @@
android:orderInCategory="93"
app:iconTint="?attr/colorControlNormal"
app:showAsAction="ifRoom" />
<item android:id="@+id/menu_add_credit_card"
android:icon="@drawable/ic_credit_card_white_24dp"
android:title="@string/entry_setup_credit_card"
android:orderInCategory="94"
app:iconTint="?attr/colorControlNormal"
app:showAsAction="ifRoom" />
<item android:id="@+id/menu_add_field"
android:icon="@drawable/ic_new_field_white_24dp"
android:title="@string/entry_add_field"

View File

@@ -363,7 +363,6 @@
<string name="security">Sicherheit</string>
<string name="entry_history">Verlauf</string>
<string name="entry_setup_otp">Einmalpasswort einrichten</string>
<string name="entry_setup_credit_card">Kreditkarte hinzufügen</string>
<string name="otp_type">OTP-Typ</string>
<string name="otp_secret">Geheimnis</string>
<string name="otp_period">Zeitraum (Sekunden)</string>

View File

@@ -93,7 +93,6 @@
<string name="save">Save</string>
<string name="entry_title">Title</string>
<string name="entry_setup_otp">Set up one-time password</string>
<string name="entry_setup_credit_card">Edit credit card details</string>
<string name="otp_type">OTP type</string>
<string name="otp_secret">Secret</string>
<string name="otp_period">Period (seconds)</string>