package com.github.devnied.emvnfccard.fragment.viewPager.impl; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.ExpandableListView.OnChildClickListener; import com.github.devnied.emvnfccard.R; import com.github.devnied.emvnfccard.adapter.TransactionsAdapter; import com.github.devnied.emvnfccard.fragment.viewPager.AbstractFragment; import com.github.devnied.emvnfccard.fragment.viewPager.IFragment; import com.github.devnied.emvnfccard.model.EmvTransactionRecord; /** * View pager fragment used to display transaction history * * @author Millau Julien * */ public class TransactionHistoryFragment extends AbstractFragment implements OnChildClickListener { /** * Transaction list */ private List<EmvTransactionRecord> mTransactionList = new ArrayList<EmvTransactionRecord>(); /** * List adapter */ private BaseExpandableListAdapter mAdapter; /** * Expandable list view */ private ExpandableListView mExpandableListView; /** * Method used to create a new instance of the fragment * * @param pTransactionList * transactions list * @param pTitle * fragment title * @return fragment */ public static IFragment newInstance(final List<EmvTransactionRecord> pTransactionList, final String pTitle) { TransactionHistoryFragment ret = new TransactionHistoryFragment(); ret.setEnable(pTransactionList != null && !pTransactionList.isEmpty()); ret.setTitle(pTitle); if (pTransactionList != null && !pTransactionList.isEmpty()) { ret.getTransactionList().addAll(pTransactionList); } return ret; } @Override public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { return inflater.inflate(R.layout.transaction_list_history, container, false); } @Override public void onViewCreated(final View view, final Bundle savedInstanceState) { mExpandableListView = (ExpandableListView) view.findViewById(R.id.list_event); mExpandableListView.setEmptyView(view.findViewById(R.id.emptyHisto)); mAdapter = new TransactionsAdapter(mTransactionList); mExpandableListView.setOnChildClickListener(this); mExpandableListView.setAdapter(mAdapter); } /** * Method used to update transaction history * * @param pBuff */ public void update(final List<EmvTransactionRecord> pTransactionRecords) { mTransactionList.clear(); if (pTransactionRecords != null && !pTransactionRecords.isEmpty()) { mTransactionList.addAll(pTransactionRecords); } setEnable(pTransactionRecords != null); if (mAdapter != null) { mAdapter.notifyDataSetChanged(); } } @Override public boolean onChildClick(final ExpandableListView parent, final View v, final int groupPosition, final int childPosition, final long id) { parent.collapseGroup(groupPosition); return true; } /** * Method used to get the field mTransactionList * * @return the mTransactionList */ public List<EmvTransactionRecord> getTransactionList() { return mTransactionList; } }