Created
July 22, 2021 19:55
-
-
Save photizzo/3869771e66cb4e6c40e29daebd8ff97d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.eyowo.android.report.ui.util | |
import android.widget.ImageView | |
import android.widget.TextView | |
import com.eyowo.android.core.utils.ext.isAvailable | |
import com.eyowo.android.core.utils.ext.isNotAvailable | |
import com.eyowo.android.core.utils.getTransactionsImage | |
import com.eyowo.android.core.utils.toTitleCase | |
import com.eyowo.android.report.R | |
import com.eyowo.android.report.model.ExpensesModel | |
import com.eyowo.android.report.model.TRANSACTION_SUB_TYPE | |
import com.eyowo.android.report.model.TRANSACTION_TYPE | |
import com.eyowo.android.report.ui.expense.ExpensesAdapter | |
fun TextView.showTransactionExtraData(transactionModel: ExpensesModel) { | |
text = | |
if (transactionModel.metadata != null && transactionModel.metadata.sub_type != TRANSACTION_SUB_TYPE.UNKNOWN) { | |
when { | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.EYOWO_BUSINESS_PAYMENT -> | |
transactionModel.metadata.sub_type.subtype.toLowerCase() | |
.capitalize() | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.PHONE_TRANSFER && | |
transactionModel.metadata.scheduledPaymentId.isAvailable() -> context.getString( | |
R.string.scheduled_phone_transfer | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.PHONE_TRANSFER -> context.getString( | |
R.string.phone_transfer | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.BILL_PAYMENT_CHARGE || | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.SMS_CHARGE || | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.TRANSACTION_CHARGE | |
|| transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.WHATSAPP_SMS_CHARGE -> context.getString( | |
R.string.charges | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.VIRTUAL_CARD || | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.VIRTUAL_CARD_CREATION || | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.VIRTUAL_CARD_FUNDING | |
|| transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.VIRTUAL_CARD_TERMINATION -> context.getString( | |
R.string.virtual_card | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.AIRTIME_RECHARGE && | |
transactionModel.metadata.scheduledPaymentId.isAvailable() -> context.getString( | |
R.string.scheduled_airtime_purchase | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.AIRTIME_RECHARGE && | |
transactionModel.metadata.recipientMobile.isAvailable() | |
&& transactionModel.metadata.scheduledPaymentId.isNotAvailable() -> context.getString( | |
R.string.airtime_purchase | |
) | |
transactionModel.metadata.scheduledPaymentId.isAvailable() -> context.getString( | |
R.string.scheduled_holder, | |
transactionModel.metadata.sub_type.subtype | |
).toLowerCase().capitalize() | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.RECEIVE && | |
transactionModel.metadata.source.isNotEmpty() && | |
transactionModel.metadata.source == ExpensesAdapter.PAYSTACK_CARDS -> context.getString( | |
R.string.card_funding | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.BILL_PAYMENT | |
&& transactionModel.metadata.billerCategory == "Data" -> { | |
context.getString(R.string.data_purchase_transaction) | |
} | |
else -> transactionModel.metadata.subTypeString.replace( | |
"_", | |
" " | |
).toLowerCase().capitalize() | |
} | |
} else { | |
transactionModel.type.type.toLowerCase().capitalize() | |
} | |
} | |
fun TextView.showTransactionDetails(transactionModel: ExpensesModel) { | |
text = if (transactionModel.metadata != null) { | |
when { | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.EYOWO_BUSINESS_PAYMENT -> { | |
if (transactionModel.metadata.senderName.isNotAvailable()) { | |
transactionModel.metadata.sub_type.subtype | |
} else { | |
transactionModel.metadata.senderName.toLowerCase().toTitleCase() | |
} | |
} | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.OUTWARD_BANK_TRANSFER -> transactionModel.metadata.account_name.toLowerCase() | |
.toTitleCase() | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.INWARD_BANK_TRANSFER -> transactionModel.metadata.account_name.toLowerCase() | |
.toTitleCase() | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.EYOWO_RETAIL_PAYMENT -> transactionModel.metadata.billSenderName | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.CARD_VERIFICATION_PAYMENT -> context.getString( | |
R.string.verif_card_ending_with, | |
transactionModel.metadata.cardBIN | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.CARD_FUNDING -> context.getString( | |
R.string.verif_card_ending_with, | |
transactionModel.metadata.cardBIN | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.EXPERIENCE_IT -> transactionModel.metadata.description | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.WHATSAPP_SMS_CHARGE -> transactionModel.metadata.subTypeString.replace( | |
"_", | |
" " | |
).toTitleCase() | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.DEVELOPER_APP_BVN_CHECK -> if (transactionModel.metadata.developerAppName.isNotAvailable()) { | |
transactionModel.metadata.bvn | |
} else { | |
transactionModel.metadata.developerAppName | |
} | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.BILL_PAYMENT | |
|| transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.AIRTIME_RECHARGE -> { | |
val sentTo = if (transactionModel.metadata.contactname.isNotAvailable()) { | |
transactionModel.metadata.recipientMobile | |
} else { | |
transactionModel.metadata.contactname | |
} | |
when (transactionModel.metadata.billerCategory) { | |
"VTU" -> "${transactionModel.metadata.billerName.toTitleCase()} ($sentTo)" | |
else -> transactionModel.metadata.billerName.toTitleCase() | |
} | |
} | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.CASH_OUT_FROM_SAFE -> { | |
if (transactionModel.metadata.safeName.isNotAvailable()) { | |
transactionModel.metadata.sub_type.subtype.toTitleCase() | |
} else { | |
transactionModel.metadata.safeName.toTitleCase() | |
} | |
} | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.SAVINGS_WITHDRAWAL -> { | |
if (transactionModel.metadata.safeName.isNotAvailable()) { | |
transactionModel.metadata.sub_type.subtype.toTitleCase() | |
} else { | |
transactionModel.metadata.safeName.toTitleCase() | |
} | |
} | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.EYOWO_RETAIL_CASHBACK -> transactionModel.metadata.senderName | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.TRANSACTION_CHARGE -> this.context.getString( | |
R.string.charge_holder, | |
transactionModel.metadata.category.category | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.SMS_CHARGE -> transactionModel.metadata.subTypeString.replace( | |
"_", | |
" " | |
).toTitleCase() | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.SAVINGS_DEPOSIT -> transactionModel.metadata.safeName.toTitleCase() | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.EYOWO_AGENT_DEPOSIT -> transactionModel.metadata.agentPhoneNumber | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.INTEREST_RUN -> transactionModel.metadata.safeName.toTitleCase() | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.DSTV -> transactionModel.metadata.sub_type.subtype | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.INTEREST_PAYMENT -> transactionModel.metadata.safeName.toTitleCase() | |
// WHY I HAD TO DO THIS WITH ENUMS? I DO NOT KNOW.... | |
transactionModel.metadata.sub_type.subtype == TRANSACTION_SUB_TYPE.PHONE_TRANSFER.subtype -> { | |
if (transactionModel.metadata.contactname.isNotAvailable()) { | |
transactionModel.metadata.receiverMobile | |
} else { | |
"${transactionModel.metadata.contactname} (${transactionModel.metadata.receiverMobile})" | |
} | |
} | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.VIRTUAL_CARD_FUNDING -> this.context.getString( | |
R.string.virtual_card_funding | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.VIRTUAL_CARD_TERMINATION -> this.context.getString( | |
R.string.virtual_card_termination | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.VIRTUAL_CARD_CREATION -> this.context.getString( | |
R.string.virtual_card_creation | |
) | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.BILL_PAYMENT_CHARGE -> transactionModel.metadata.sub_type.subtype.toTitleCase() | |
transactionModel.metadata.sub_type.subtype == TRANSACTION_SUB_TYPE.RECEIVE.subtype -> if (transactionModel.metadata.senderMobile.isNotEmpty() && | |
transactionModel.metadata.senderMobile.isAvailable() | |
) { | |
if (transactionModel.metadata.contactname.isNotAvailable()) { | |
transactionModel.metadata.senderMobile | |
} else { | |
transactionModel.metadata.contactname | |
} | |
} else { | |
this.context.getString( | |
R.string.card_ending_with, | |
transactionModel.metadata.cardBIN | |
) | |
} | |
else -> transactionModel.metadata.subTypeString.replace( | |
"_", | |
" " | |
).toLowerCase().toTitleCase() | |
} | |
} else { | |
transactionModel.metadata?.subTypeString?.replace("_", " ")?.toTitleCase() | |
} | |
} | |
fun ImageView.showTransactionIcon(transactionModel: ExpensesModel) { | |
val image: Int = | |
if (transactionModel.metadata != null) { | |
when { | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.OUTWARD_BANK_TRANSFER -> R.drawable.ic_eyowo_logo_report | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.EYOWO_RETAIL_PAYMENT -> R.drawable.ic_retail_shop | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.BILL_PAYMENT | |
|| transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.AIRTIME_RECHARGE -> { | |
getTransactionsImage(transactionModel.metadata.billerName) | |
} | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.EYOWO_RETAIL_CASHBACK -> R.drawable.ic_eyowo_logo_report | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.TRANSACTION_CHARGE -> R.drawable.ic_eyowo_logo_report | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.SMS_CHARGE -> R.drawable.ic_sms_charge | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.EYOWO_AGENT_DEPOSIT -> R.drawable.ic_agent_deposit | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.INTEREST_RUN -> R.drawable.ic_safe | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.INTEREST_PAYMENT -> R.drawable.ic_safe | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.PHONE_TRANSFER -> R.drawable.ic_eyowo_logo_report | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.VIRTUAL_CARD_CREATION -> R.drawable.ic_eyowo_logo_report | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.VIRTUAL_CARD_TERMINATION -> R.drawable.ic_eyowo_logo_report | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.VIRTUAL_CARD_FUNDING -> R.drawable.ic_eyowo_logo_report | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.DSTV -> R.drawable.dstv_circular | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.CARD_VERIFICATION_PAYMENT -> R.drawable.ic_card | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.SAVINGS_DEPOSIT -> R.drawable.ic_safe | |
transactionModel.metadata.sub_type == TRANSACTION_SUB_TYPE.SAVINGS_WITHDRAWAL -> R.drawable.ic_safe | |
// WHY I HAD TO DO THIS WITH ENUMS? I DO NOT KNOW.... | |
transactionModel.metadata.sub_type.subtype == TRANSACTION_SUB_TYPE.RECEIVE.subtype -> | |
if (transactionModel.metadata.senderMobile.isNotEmpty() && transactionModel.metadata.senderMobile.isAvailable()) { | |
// transactionModel.metadata.senderMobile | |
// generateTextDrawable("TRF") | |
R.drawable.ic_eyowo_logo_report | |
} else if (transactionModel.metadata.source.isNotEmpty() && transactionModel.metadata.source == "PAYSTACK_CARDS") { | |
R.drawable.ic_card | |
} else { | |
R.drawable.ic_eyowo_logo_report | |
} | |
else -> if (transactionModel.type == TRANSACTION_TYPE.EYOWO_CREDIT) { | |
R.drawable.ic_eyowo_logo_report | |
} else { | |
R.drawable.ic_eyowo_logo_report | |
} | |
} | |
} else { | |
if (transactionModel.type == TRANSACTION_TYPE.EYOWO_CREDIT) { | |
R.drawable.ic_eyowo_logo_report | |
} else { | |
R.drawable.ic_eyowo_logo_report | |
} | |
} | |
setImageResource(image) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment