Android Open Source - SuiviConsoFreeMobile Data Interpreter






From Project

Back to project page SuiviConsoFreeMobile.

License

The source code is released under:

Ce logiciel est dans le domaine public.

If you think the Android project SuiviConsoFreeMobile listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package net.yvesd.scfm;
//w  w  w. j a  v a  2s.c om
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class DataInterpreter {

  /**
   * Interprte les donnes de la page Suivi Conso de Free en informations
   * affichables  l'cran
   * 
   * @param htmlData
   *            les donnes de la page Suivi Conso de Free
   * @return informations affichables  l'cran
   */
  public static DonnesCompteur[] interpret(String htmlData) {

    List<DonnesCompteur> list = new ArrayList<DonnesCompteur>();

    Document d = Jsoup.parse(htmlData);

    ajouterTousElementsClasse(list, d, "infosLigneDetail");

    ajouterTousElementsClasse(list, d, "resumeConso");

    DonnesCompteur donnesCompteurN = new DonnesCompteur(
        "<br><font color=#C00000><b>NATIONAL</b></font");
    list.add(donnesCompteurN);

    extraireDetailsConso(list, d, "national");

    DonnesCompteur donnesCompteurI = new DonnesCompteur(
        "<br><font color=#C00000><b>INTERNATIONAL</b></font");
    list.add(donnesCompteurI);

    extraireDetailsConso(list, d, "international");

    DonnesCompteur donnesCompteurT = new DonnesCompteur(
        "<br><font color=#C00000><b>MONTANT TOTAL</b></font");
    list.add(donnesCompteurT);

    extraireMontantTotal(list, d);

    // Conversion en tableau
    DonnesCompteur[] tab = new DonnesCompteur[list.size()];
    int i = 0;
    for (DonnesCompteur dc : list) {
      tab[i++] = dc;
    }

    return tab;
  }

  private static void extraireMontantTotal(List<DonnesCompteur> list,
      Document d) {

    Elements elements = d.select(".montant p");
    StringBuffer sb = new StringBuffer();

    Iterator<Element> it = elements.iterator();

    if (it.hasNext()) {
      String txt = it.next().text();
      sb.append(txt);
    }

    while (it.hasNext()) {
      String txt = it.next().text();
      sb.append("<br>");
      sb.append(txt);
    }

    DonnesCompteur c = new DonnesCompteur(sb.toString());
    list.add(c);
  }

  private static void ajouterTousElementsClasse(List<DonnesCompteur> list,
      Document d, String classeCSS) {
    Elements infos1 = d.select("." + classeCSS);
    for (Element e : infos1) {
      String texte = e.text();
      if (!("".equals(texte))) {
        DonnesCompteur c = new DonnesCompteur(texte);
        list.add(c);
      }
    }

  }

  private static void extraireDetailsConso(List<DonnesCompteur> list,
      Document d, String cssClass) {

    Elements titres = d.select("." + cssClass + " .titreDetail");
    Elements cD = d.select("." + cssClass + " .consoDetail");

    Iterator<Element> itTitres = titres.iterator();
    Iterator<Element> itCD = cD.iterator();

    GestionIcones gi = new GestionIcones();
    while (itTitres.hasNext()) {
      Element elementTitre = itTitres.next();

      String titre = elementTitre.text();
      StringBuffer sb = new StringBuffer();
      GestionIcones.IconeCouleur ic = gi.trouveIconePour(titre);

      sb.append("<b>" + titre + "</b>");

      if (itCD.hasNext()) {
        Element e = itCD.next();
        String cdTexte = e.text();
        if (!("".equals(cdTexte))) {
          sb.append("<br>");
          sb.append(cdTexte);
        }
      }

      list.add(new DonnesCompteur(sb.toString(), ic.icone,
          ic.nomClePreference, ic.couleurDefaut));
    }

    extraireHorsForfait(list, d, cssClass);

  }

  private static void extraireHorsForfait(List<DonnesCompteur> list,
      Document d, String cssc) {

    Elements hF = d.select("." + cssc + " .horsForfait");
    StringBuffer hfSb = new StringBuffer();
    Iterator<Element> itHF = hF.iterator();
    if (itHF.hasNext()) {
      hfSb.append("<b>Hors forfait</b><br>");
      String text = itHF.next().text();
      text = supprimerMentionHorsForfait(text);
      hfSb.append(text);
    } else {
      hfSb.append("Pas d'information de suivi conso  afficher. Dbut du mois ?");
    }

    while (itHF.hasNext()) {
      Element e = itHF.next();

      String text = e.text();
      if (!("".equals(text))) {
        text = supprimerMentionHorsForfait(text);
        hfSb.append("<br>");
        hfSb.append(text);
      }
    }
    list.add(new DonnesCompteur(
        hfSb.toString(),
        R.drawable.ic_euro,
        SuiviConsoFreeMobileActivity.PREF_KEY_COULEUR_ICONE_HORSFORFAIT,
        GestionIcones.COULEUR_DEFAUT_HF));
  }

  private static String supprimerMentionHorsForfait(String text) {

    text = text.replaceAll("Hors forfait", "");
    text = text.trim();
    return text;
  }
}




Java Source Code List

net.yvesd.scfm.AfficherSuiviconsoDetailleActivity.java
net.yvesd.scfm.CanWaitForStream.java
net.yvesd.scfm.DataInterpreter.java
net.yvesd.scfm.DataRecuperatorMock.java
net.yvesd.scfm.DataRecuperatorParams.java
net.yvesd.scfm.DonnesCompteur.java
net.yvesd.scfm.EditAccountActivity.java
net.yvesd.scfm.EditAccountsActivity.java
net.yvesd.scfm.ExtracteurErreur.java
net.yvesd.scfm.GestionIcones.java
net.yvesd.scfm.GestionnaireThemes.java
net.yvesd.scfm.MyHttpClient.java
net.yvesd.scfm.OptionActivity.java
net.yvesd.scfm.SuiviConsoFreeMobileActivity.java
net.yvesd.scfm.TelechargeurDonnesConso.java
net.yvesd.scfm.TelechargeurGenerique.java
net.yvesd.scfm.TelechargeurSuiviConsoDetaille.java