| 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 |
| } |
| } |