@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; }
/** @param chargerImage */ private void appelerSynchronizer(boolean chargerImage) { if (progressDialog == null) { progressDialog = new ProgressDialog(this); } progressDialog.setCancelable(true); int nbMax = JsonFile.values().length; if (chargerImage) { nbMax += MembreFacade.getInstance() .getMembres(getBaseContext(), TypeFile.members.name(), null) .size(); if (nbMax < 100) nbMax = 800; } progressDialog.setMax(nbMax); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setMessage(getResources().getString(R.string.sync_message)); progressDialog.show(); SynchronizeMixitAsync synchronizeMixitAsync = new SynchronizeMixitAsync(); synchronizeMixitAsync.execute(Boolean.valueOf(chargerImage)); }