@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); } }