Esempio n. 1
0
 @Override
 protected Void doInBackground(Boolean... params) {
   Boolean chargerImage = params[0];
   for (JsonFile json : JsonFile.values()) {
     try {
       if (!Synchronizer.downloadJsonFile(getBaseContext(), json.getUrl(), json.getType())) {
         // Si une erreur de chargement on sort
         break;
       }
       publishProgress(progressStatus++);
     } catch (RuntimeException e) {
       Log.w("DialogSynchronizeFragment", "Impossible de synchroniser", e);
     }
   }
   // Une fois finie on supprime le cache
   MembreFacade.getInstance().viderCache();
   ConferenceFacade.getInstance().viderCache();
   if (chargerImage) {
     // On pren les membres s'ils viennent d'etre recharge
     List<Membre> membres =
         MembreFacade.getInstance().getMembres(getBaseContext(), TypeFile.members.name(), null);
     for (Membre membre : membres) {
       if (membre.getUrlimage() != null) {
         Synchronizer.downloadImage(
             getBaseContext(), membre.getUrlimage(), "membre" + membre.getId());
         publishProgress(progressStatus++);
       }
     }
     // On charge les logos des sponsors
     membres =
         MembreFacade.getInstance().getMembres(getBaseContext(), TypeFile.sponsor.name(), null);
     for (Membre membre : membres) {
       if (membre.getLogo() != null) {
         Synchronizer.downloadImage(getBaseContext(), membre.getLogo(), "logo" + membre.getId());
         publishProgress(progressStatus++);
       }
     }
   }
   return null;
 }
  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    if (getActivity().getIntent().getExtras() != null) {
      idSession = getActivity().getIntent().getExtras().getLong(UIUtils.MESSAGE);
      typeSession = getActivity().getIntent().getExtras().getString(UIUtils.TYPE);
    } else {
      // On gere le cas ou on tourne l'écran en restorant les états de la vue
      idSession = savedInstanceState.getLong("ID_SESSION");
      ;
      typeSession = savedInstanceState.getString("TYPE_SESSION");
    }
    Conference conference = null;
    // On recupere la session concernee
    if (TypeFile.lightningtalks.name().equals(typeSession)) {
      conference = ConferenceFacade.getInstance().getLightningtalk(getActivity(), idSession);
    } else {
      conference = ConferenceFacade.getInstance().getTalk(getActivity(), idSession);
    }

    List<Membre> speakers = new ArrayList<Membre>();
    for (Long id : conference.getSpeakers()) {
      Membre membre =
          MembreFacade.getInstance().getMembre(getActivity(), TypeFile.members.name(), id);
      if (membre != null) {
        speakers.add(membre);
      }
    }

    // On affiche les liens que si on a recuperer des choses
    if (!speakers.isEmpty()) {
      // On utilisait auparavant une liste pour afficher ces éléments dans la page mais cette liste
      // empêche d'avoir un ScrollView englobant pour toute la page. Nous utilisons donc un tableau
      linearLayoutRoot =
          (LinearLayout) mInflater.inflate(R.layout.fragment_linear, mRootView, false);

      // On vide les éléments
      linearLayoutRoot.removeAllViews();

      // On ajoute un table layout
      TableLayout.LayoutParams tableParams =
          new TableLayout.LayoutParams(
              TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT);
      TableLayout tableLayout = new TableLayout(getActivity().getBaseContext());
      tableLayout.setLayoutParams(tableParams);

      for (final Membre membre : speakers) {
        RelativeLayout row = (RelativeLayout) mInflater.inflate(R.layout.person_item, null);
        row.setBackgroundResource(R.drawable.row_transparent_background);

        // Dans lequel nous allons ajouter le contenu que nous faisons mappé dans
        userName = (TextView) row.findViewById(R.id.person_user_name);
        descriptif = (TextView) row.findViewById(R.id.person_shortdesciptif);
        level = (TextView) row.findViewById(R.id.person_level);
        profileImage = (ImageView) row.findViewById(R.id.person_user_image);

        userName.setText(membre.getCompleteName());

        if (membre.getShortdesc() != null) {
          descriptif.setText(membre.getShortdesc().trim());
        }

        if (membre.getLevel() != null && !membre.getLevel().isEmpty()) {
          level.setText("[" + membre.getLevel().trim() + "]");
        }

        // Recuperation de l'mage liee au profil
        Bitmap image = FileUtils.getImageProfile(getActivity(), membre);
        if (image == null) {
          profileImage.setImageDrawable(getResources().getDrawable(R.drawable.person_image_empty));
        } else {
          // On regarde dans les images embarquees
          profileImage.setImageBitmap(image);
        }

        row.setOnClickListener(
            new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                Map<String, Object> parameters = new HashMap<String, Object>(2);
                parameters.put(UIUtils.MESSAGE, membre.getId());
                parameters.put(UIUtils.TYPE, TypeFile.speaker);
                UIUtils.startActivity(MembreActivity.class, getActivity(), parameters);
              }
            });

        tableLayout.addView(row);
      }

      linearLayoutRoot.addView(tableLayout);
      mRootView.addView(linearLayoutRoot);
    }
  }