package com.pam.codenamehippie.ui; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ExpandableListView; import android.widget.TextView; import com.pam.codenamehippie.R; import com.pam.codenamehippie.modele.OrganismeModele; import com.pam.codenamehippie.modele.TransactionModele; import com.pam.codenamehippie.modele.UtilisateurModele; import com.pam.codenamehippie.modele.depot.DepotManager; import com.pam.codenamehippie.modele.depot.ObservateurDeDepot; import com.pam.codenamehippie.modele.depot.TransactionModeleDepot; import com.pam.codenamehippie.ui.adapter.ListeStatistiquesAdapter; import java.io.IOException; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Locale; /** * Cette activité sert à afficher les statistiques des produits collectés * selon l'id de l'organisme/entreprise */ public class ListeStatistiquesActivity extends HippieActivity implements ObservateurDeDepot<TransactionModele> { private static final String TAG = ListeStatistiquesActivity.class.getSimpleName(); private View footer; private ExpandableListView listeStatistiques; private ListeStatistiquesAdapter statistiquesAdapter; // Id de l'organisme/entreprise private Integer orgId; private Double totalFinal = 0.00d; private TextView tv_totalFinal; public void setTv_totalFinal(TextView tv_totalFinal) { this.tv_totalFinal = tv_totalFinal; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.liste_statistiques); // On va chercher l'expendable listView this.listeStatistiques = (ExpandableListView) findViewById(R.id.list_statistiques_group); this.statistiquesAdapter = new ListeStatistiquesAdapter(this); if (this.footer == null) { this.footer = this.getLayoutInflater().inflate(R.layout.liste_statistique_footer, this.listeStatistiques, false); } this.listeStatistiques.addFooterView(this.footer); // TODO: trouver une façon d'afficher le total final (somme des valeurs de chaque groupe) this.tv_totalFinal = (TextView) findViewById(R.id.tv_statistiques_valeur_total); this.listeStatistiques.setAdapter(this.statistiquesAdapter); //On va chercher l'id organisme UtilisateurModele uc = this.authentificateur.getUtilisateur(); OrganismeModele org = (uc != null) ? uc.getOrganisme() : null; this.orgId = (org != null) ? org.getId() : -1; } @Override protected void onPause() { super.onPause(); } @Override protected void onResume() { super.onResume(); TransactionModeleDepot transactionModeleDepot = DepotManager.getInstance().getTransactionModeleDepot(); if (this.orgId != null && this.orgId != -1) { // TODO: Ajouter 2 DatePicker dans le layout list_statistique Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, 2014); Date dateDebut = calendar.getTime(); calendar = Calendar.getInstance(); Date dateFin = calendar.getTime(); // TODO: inserer filtre de liste // transactionModeleDepot.setFiltreDeListe(new FiltreDeListe<TransactionModele>() { // @Override // public boolean appliquer(TransactionModele item) { // OrganismeModele k = item.getReceveur(); // return (orgId.toString().equalsIgnoreCase(k.toString())); // } // }); transactionModeleDepot.peuplerTransactions(this.orgId, dateDebut, dateFin); } } @Override public void surDebutDeRequete() { this.afficherLaProgressBar(); } @Override public void surChangementDeDonnees(List<TransactionModele> modeles) { this.totalFinal = 0.00d; for (TransactionModele modele : modeles) { this.totalFinal += modele.getAlimentaire().getValeur(); } this.tv_totalFinal.setText(String.format(Locale.getDefault(), "$ %.2f", this.totalFinal)); Log.d("totalFinal", this.totalFinal.toString()); this.statistiquesAdapter.setItems(modeles); } @Override public void surFinDeRequete() { this.cacherLaProgressbar(); } @Override public void surErreur(IOException e) { //todo: snackbar Log.e(this.getClass().getSimpleName(), e.getMessage(), e); } }