void setWeek(Date d) { Calendar today = Calendar.getInstance(Locale.FRANCE); // Date du jour today.setTime(date); Calendar monday = (Calendar) today.clone(); // Date du lundi monday.add(Calendar.DAY_OF_WEEK, monday.getFirstDayOfWeek() - monday.get(Calendar.DAY_OF_WEEK)); Calendar sunday = (Calendar) monday.clone(); // Date du dimanche sunday.add(Calendar.DAY_OF_YEAR, 6); dd = monday; df = sunday; conf.selectedWeekStart().put(monday.getTimeInMillis()); conf.selectedWeekEnd().put(sunday.getTimeInMillis()); }
/* * On récupère les repas depuis l'api, puis on les place dans un tableau assoc 2D * de manière à pouvoir les afficher simplement par la suite. * Le tableau assoc est formé de la manière suivante: * { jour, { ordre, repasResponse } } * où jour est une clé: un jour de la semaine issu du tableau daysOfWeek * et ordre est une clé "Matin"/"Midi"/"Soir" issue du tableau orderInDay * * On obtient par exemple : * { * "Lundi" , * { "Matin", Repas1 }, * { "Soir", Repas 2 }, * "Mardi, * { "Soir", Repas3 } * } */ @Background public void getRepas() { loadAnim.startLoading(); try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); RepasResponse[] r = api.obtenirRepasPeriode( conf.userId().get(), sdf.format(dd.getTime()), sdf.format(df.getTime())); repas = r; Calendar cal2 = Calendar.getInstance(Locale.FRANCE); repas2.clear(); dynDay.clear(); dynOrder.clear(); for (RepasResponse rr : r) { // Log.v("DEBUG","Repas " + rr.id + " ==> " + rr.date); try { cal2.setTime(sdf.parse(rr.date)); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } String jour = daysOfWeek.get(cal2.get(Calendar.DAY_OF_WEEK)); if (!repas2.containsKey(jour)) { // Log.v("DEBUG","key : "+jour); repas2.put(jour, new ConcurrentHashMap<String, RepasResponse>()); dynDay.add(jour); dynOrder.put(jour, new ArrayList<String>()); } String ordre = orderInDay[rr.ordre]; if (!repas2.get(jour).containsKey(ordre)) { repas2.get(jour).put(ordre, rr); dynOrder.get(jour).add(ordre); } } /////// On balance la sauce adapter = new SimplerExpandableListAdapter(this); } catch (RuntimeException ex) { msg.toast("Une erreur est survenue"); ex.printStackTrace(); // TODO catch Log.v( "DEBUG", "RUNTIMEEXCEPTION " + this.getLocalClassName() + " // " + ex.getMessage()); // TODO } displayRepas(); loadAnim.stopLoading(); }
@Background void genererRepas() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); api.genererRepas(conf.userId().get(), sdf.format(dd.getTime())); getRepas(); }