blob: 6205ad7f95a79f397afcfc3e3b128aeb655ecf05 [file] [log] [blame]
package org.apache.fineract.ui.adapters
import android.content.Context
import androidx.appcompat.widget.AppCompatImageView
import androidx.recyclerview.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import kotlinx.android.synthetic.main.item_account.view.*
import org.apache.fineract.R
import org.apache.fineract.data.models.accounts.Account
import org.apache.fineract.injection.ApplicationContext
import org.apache.fineract.utils.DateUtils
import org.apache.fineract.utils.StatusUtils
import javax.inject.Inject
class AccountsAdapter @Inject constructor(@ApplicationContext val context: Context)
: RecyclerView.Adapter<AccountsAdapter.ViewHolder>() {
var accounts: List<Account> = ArrayList()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent?.context).inflate(R.layout.item_account, parent, false)
return ViewHolder(view)
}
override fun getItemCount(): Int = accounts.size
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val account = accounts[position]
holder.tvIdentifier.text = account.identifier
val modifiedBy = context.getString(R.string.last_modified_by) + context.getString(
R.string.colon) + account.lastModifiedBy
holder.tvModifiedBy.text = modifiedBy
val lastModifiedOn = context.getString(R.string.last_modified_on) + context.getString(
R.string.colon) +
DateUtils.getDate(account.lastModifiedOn,
DateUtils.INPUT_DATE_FORMAT, DateUtils.OUTPUT_DATE_FORMAT)
StatusUtils.setAccountType(account.type, holder.ivAccountTypeIndicator, context)
holder.tvModifiedOn.text = lastModifiedOn
holder.tvName.text = account.name
}
fun setAccountsList(accounts: List<Account>) {
this.accounts = accounts
notifyDataSetChanged()
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val tvIdentifier: TextView = itemView.tv_account_identifier
val tvModifiedBy: TextView = itemView.tv_modified_by
val tvModifiedOn: TextView = itemView.tv_modified_on
val tvName: TextView = itemView.tv_name
val ivAccountTypeIndicator: AppCompatImageView = itemView.iv_type_indicator
}
}