Added tanMethodsNotSupportedByApplication to filter out TanMethods not supported by application (by default: ChipTanUsb)

This commit is contained in:
dankito 2024-09-10 03:26:39 +02:00
parent 99c864bcf1
commit c5b7967ce1
5 changed files with 14 additions and 5 deletions

View File

@ -36,6 +36,8 @@ open class GetAccountDataOptions(
*/ */
val preferredTanMethods: List<TanMethodType>? = TanMethodType.NonVisualOrImageBased, val preferredTanMethods: List<TanMethodType>? = TanMethodType.NonVisualOrImageBased,
val tanMethodsNotSupportedByApplication: List<TanMethodType> = TanMethodType.TanMethodsNotSupportedByMostApplications,
val abortIfTanIsRequired: Boolean = false, val abortIfTanIsRequired: Boolean = false,
// there's also the option preferredTanMedium, but can hardly find a use case for it as we // there's also the option preferredTanMedium, but can hardly find a use case for it as we

View File

@ -71,7 +71,9 @@ open class TransferMoneyRequest(
* But also graphical applications prefer non visual TanMethods as then they only have to display a text field to input * But also graphical applications prefer non visual TanMethods as then they only have to display a text field to input
* TAN, and then image based TanMethods as then they additionally only have to display an image. * TAN, and then image based TanMethods as then they additionally only have to display an image.
*/ */
val preferredTanMethods: List<TanMethodType>? = TanMethodType.NonVisualOrImageBased val preferredTanMethods: List<TanMethodType>? = TanMethodType.NonVisualOrImageBased,
val tanMethodsNotSupportedByApplication: List<TanMethodType> = TanMethodType.TanMethodsNotSupportedByMostApplications
) { ) {
override fun toString() = "$amount to $recipientName - $paymentReference" override fun toString() = "$amount to $recipientName - $paymentReference"
} }

View File

@ -37,12 +37,13 @@ open class TransferMoneyRequestForUser(
instantTransfer: Boolean = false, instantTransfer: Boolean = false,
preferredTanMethods: List<TanMethodType>? = TanMethodType.NonVisualOrImageBased preferredTanMethods: List<TanMethodType>? = TanMethodType.NonVisualOrImageBased,
) : TransferMoneyRequest(senderAccount, recipientName, recipientAccountIdentifier, recipientBankIdentifier, amount, currency, paymentReference, instantTransfer, preferredTanMethods) { tanMethodsNotSupportedByApplication: List<TanMethodType> = TanMethodType.TanMethodsNotSupportedByMostApplications,
) : TransferMoneyRequest(senderAccount, recipientName, recipientAccountIdentifier, recipientBankIdentifier, amount, currency, paymentReference, instantTransfer, preferredTanMethods, tanMethodsNotSupportedByApplication) {
constructor(bankCode: String, loginName: String, password: String, request: TransferMoneyRequest) constructor(bankCode: String, loginName: String, password: String, request: TransferMoneyRequest)
: this(bankCode, loginName, password, request.senderAccount, request.recipientName, request.recipientAccountIdentifier, request.recipientBankIdentifier, : this(bankCode, loginName, password, request.senderAccount, request.recipientName, request.recipientAccountIdentifier, request.recipientBankIdentifier,
request.amount, request.currency, request.paymentReference, request.instantTransfer, request.preferredTanMethods) request.amount, request.currency, request.paymentReference, request.instantTransfer, request.preferredTanMethods, request.tanMethodsNotSupportedByApplication)
override fun toString() = "$bankCode $loginName ${super.toString()}" override fun toString() = "$bankCode $loginName ${super.toString()}"
} }

View File

@ -43,6 +43,8 @@ enum class TanMethodType {
addAll(listOf(TanMethodType.ChipTanManuell)) // this is quite inconvenient for user, so i added it as last addAll(listOf(TanMethodType.ChipTanManuell)) // this is quite inconvenient for user, so i added it as last
} }
val TanMethodsNotSupportedByMostApplications = listOf(TanMethodType.ChipTanUsb)
} }
} }

View File

@ -46,6 +46,7 @@ open class FinTs4kMapper {
options.retrieveBalance, options.retrieveBalance,
RetrieveTransactions.valueOf(options.retrieveTransactions.name), options.retrieveTransactionsFrom, options.retrieveTransactionsTo, RetrieveTransactions.valueOf(options.retrieveTransactions.name), options.retrieveTransactionsFrom, options.retrieveTransactionsTo,
preferredTanMethods = options.preferredTanMethods?.map { mapTanMethodType(it) }, preferredTanMethods = options.preferredTanMethods?.map { mapTanMethodType(it) },
tanMethodsNotSupportedByApplication = options.tanMethodsNotSupportedByApplication.map { mapTanMethodType(it) },
abortIfTanIsRequired = options.abortIfTanIsRequired, abortIfTanIsRequired = options.abortIfTanIsRequired,
defaultBankValues = request.bankInfo?.let { mapToBankData(request, it) } defaultBankValues = request.bankInfo?.let { mapToBankData(request, it) }
) )
@ -306,7 +307,8 @@ open class FinTs4kMapper {
request.bankCode, request.loginName, request.password, request.senderAccount?.let { mapBankAccountIdentifier(it) }, request.bankCode, request.loginName, request.password, request.senderAccount?.let { mapBankAccountIdentifier(it) },
request.recipientName, request.recipientAccountIdentifier, request.recipientBankIdentifier, request.recipientName, request.recipientAccountIdentifier, request.recipientBankIdentifier,
mapToMoney(request.amount, request.currency), request.paymentReference, request.instantTransfer, mapToMoney(request.amount, request.currency), request.paymentReference, request.instantTransfer,
request.preferredTanMethods?.map { mapTanMethodType(it) } request.preferredTanMethods?.map { mapTanMethodType(it) },
request.tanMethodsNotSupportedByApplication.map { mapTanMethodType(it) }
) )
open fun mapTransferMoneyResponse(response: net.dankito.banking.client.model.response.TransferMoneyResponse): Response<TransferMoneyResponse> = open fun mapTransferMoneyResponse(response: net.dankito.banking.client.model.response.TransferMoneyResponse): Response<TransferMoneyResponse> =