@@ -196,7 +196,7 @@ private void updateAllData(MediatorLiveData<AllData> data) {
196196
197197 private void prepareListUEDTO (AllData allData , Integer hidden ) {
198198
199- if (allData == null ) {
199+ if (allData == null || allData . ues == null || allData . ues . isEmpty () ) {
200200 listUEDTO .postValue (Collections .emptyList ());
201201 return ;
202202 }
@@ -205,11 +205,6 @@ private void prepareListUEDTO(AllData allData, Integer hidden) {
205205 List <Matiere > matieres = allData .matieres ();
206206 List <Seance > seances = allData .seances ();
207207
208- if (ues == null || matieres == null || seances == null ) {
209- listUEDTO .postValue (Collections .emptyList ());
210- return ;
211- }
212-
213208 Map <Integer , Integer > vhTotalParUE = calculVhTotalParUE (matieres );
214209 Map <Integer , Integer > vhDispenseParUE = calculVhDispenseParUE (matieres , seances );
215210
@@ -228,11 +223,11 @@ private void prepareListMatiereDTO() {
228223
229224 if (listMatieres .getValue () == null
230225 || listMatieres .getValue ().isEmpty ()) {
231- listMatiereDTO .setValue (Collections .emptyList ());
226+ listMatiereDTO .postValue (Collections .emptyList ());
232227 return ;
233228 }
234229
235- listMatiereDTO .setValue (Collections .emptyList ());
230+ listMatiereDTO .postValue (Collections .emptyList ());
236231
237232 List <Matiere > allMatieres = listMatieres .getValue ();
238233 Map <Integer , Integer > vhDispenseParMatiere = calculVhDispenseParMatiere (listSeances .getValue ());
@@ -248,21 +243,21 @@ private void prepareListMatiereDTO() {
248243 }
249244
250245 private void prepareListMatiereDTOForSelectedUE (Integer ueId , Integer hidden ) {
251-
246+ List < MatiereListAdapter . MatiereDTO > matiereDTOS = listMatiereDTO . getValue ();
252247 if (ueId == null || ueId == 0
253- || listMatieres .getValue () == null
254- || listMatieres .getValue ().isEmpty ()) {
255- listMatiereDTOForCurrentUE .setValue (Collections .emptyList ());
248+ || matiereDTOS == null
249+ || matiereDTOS .isEmpty ()) {
250+ listMatiereDTOForCurrentUE .postValue (Collections .emptyList ());
251+ Log .d ("MYAPP::MyAppViewModel" , "ListMatiereDTOForSelectedUE:ueId=" + ueId );
252+ Log .d ("MYAPP::MyAppViewModel" , "ListMatiereDTOForSelectedUE:matiereDTOS=" + matiereDTOS );
256253 return ;
257254 }
258255
256+ listMatiereDTOForCurrentUE .postValue (Collections .emptyList ());
259257 List <MatiereListAdapter .MatiereDTO > result = new ArrayList <>();
260-
261- List <MatiereListAdapter .MatiereDTO > matiereDTOS = listMatiereDTO .getValue ();
262- if (matiereDTOS == null ) return ;
263- listMatiereDTOForCurrentUE .setValue (Collections .emptyList ());
264258 for (MatiereListAdapter .MatiereDTO matiereDTO : matiereDTOS ) {
265259 if (matiereDTO .matiere ().getUeId () == ueId ){
260+ Log .d ("MYAPP::MyAppViewModel" , "ListMatiereDTOForSelectedUE:matiereDTO=" + matiereDTO .matiere ().getId ());
266261 if (hidden != null && matiereDTO .matiere ().getId () == hidden ) continue ;
267262 result .add (matiereDTO );
268263 }
@@ -274,7 +269,7 @@ private void prepareListMatiereDTOForSelectedUE(Integer ueId, Integer hidden) {
274269 private void prepareCurrentMatiereDTO () {
275270 Integer matiereId = currentMatiereId .getValue ();
276271 if (matiereId == null || matiereId == 0 ) {
277- currentMatiereDTO .setValue (null );
272+ currentMatiereDTO .postValue (null );
278273 return ;
279274 }
280275 List <MatiereListAdapter .MatiereDTO > matiereDTOS = listMatiereDTO .getValue ();
@@ -288,10 +283,10 @@ private void prepareCurrentMatiereDTO() {
288283 }
289284 }
290285 if (matiereDTO == null ) {
291- currentMatiereDTO .setValue (null );
286+ currentMatiereDTO .postValue (null );
292287 return ;
293288 }
294- currentMatiereDTO .setValue (matiereDTO );
289+ currentMatiereDTO .postValue (matiereDTO );
295290 }
296291
297292 private Map <Integer , Integer > calculVhDispenseParMatiere (List <Seance > seances ) {
@@ -307,12 +302,12 @@ private Map<Integer, Integer> calculVhDispenseParMatiere(List<Seance> seances) {
307302 }
308303
309304 private Map <Integer , Integer > calculVhDispenseParUE (List <Matiere > matieres , List <Seance > seances ) {
305+ Map <Integer , Integer > vhDispenseParUE = new HashMap <>();
306+ if (seances == null ) return vhDispenseParUE ;
310307 Map <Integer , Integer > matiereToUe = new HashMap <>();
311308 for (Matiere m : matieres ) {
312309 matiereToUe .put (m .getId (), m .getUeId ());
313310 }
314- Map <Integer , Integer > vhDispenseParUE = new HashMap <>();
315- if (seances == null ) return vhDispenseParUE ;
316311 for (Seance s : seances ) {
317312 Integer ueId = matiereToUe .get (s .getMatiereId ());
318313 if (ueId != null ) {
@@ -326,6 +321,7 @@ private Map<Integer, Integer> calculVhDispenseParUE(List<Matiere> matieres, List
326321
327322 private Map <Integer , Integer > calculVhTotalParUE (List <Matiere > matieres ) {
328323 Map <Integer , Integer > vhTotalParUE = new HashMap <>();
324+ if (matieres == null ) return vhTotalParUE ;
329325 for (Matiere m : matieres ) {
330326 int ueId = m .getUeId ();
331327 Integer vh = vhTotalParUE .get (ueId );
0 commit comments