From 019bdf80ce28120719762330245d9c7322cf43c0 Mon Sep 17 00:00:00 2001 From: Caesar2011 Date: Thu, 7 Feb 2019 18:47:57 +0100 Subject: [PATCH] Schedule fragment for old BB modules cleaned up --- .../sebse/fuplanner/fragments/ScheduleFragment.java | 11 +++++++++-- .../sebse/fuplanner/services/kvv/ModulesEvents.java | 10 ++++++++++ .../sebse/fuplanner/services/kvv/types/Modules.java | 4 ++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java index 703c172..82cb195 100644 --- a/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java +++ b/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java @@ -18,8 +18,9 @@ import androidx.fragment.app.Fragment; import de.sebse.fuplanner.R; import de.sebse.fuplanner.services.kvv.types.Event; import de.sebse.fuplanner.services.kvv.types.Modules; -import de.sebse.fuplanner.tools.UtilsDate; +import de.sebse.fuplanner.services.kvv.types.Semester; import de.sebse.fuplanner.tools.MainActivityListener; +import de.sebse.fuplanner.tools.UtilsDate; import de.sebse.fuplanner.tools.logging.Logger; import de.sebse.fuplanner.tools.ui.weekview.MonthLoader; import de.sebse.fuplanner.tools.ui.weekview.WeekView; @@ -66,7 +67,9 @@ public class ScheduleFragment extends Fragment implements mListener.getKVV().modules().list().recv(modules -> { mModules = modules; final int[] i = {0}; - for (Modules.Module module: mModules) { + Iterator iter = mModules.latestSemesterIterator(); + while (iter.hasNext()) { + Modules.Module module = iter.next(); mListener.getKVV().modules().events().recv(module, success1 -> { i[0]++; if (i[0] >= mModules.size()) { @@ -119,7 +122,11 @@ public class ScheduleFragment extends Fragment implements public List onMonthChange(int newYear, int newMonth) { ArrayList events = new ArrayList<>(); if (mModules != null){ + Semester latestSemester = mModules.getLatestSemester(); for (Modules.Module mod: mModules) { + if (mod.getModuleType() == Modules.TYPE_BB && mod.semester != null && !mod.semester.equals(latestSemester)) { + continue; + } if (mod.events != null) { Iterator it_modEvents = mod.events.getEventsOfMonth(newYear, newMonth); while (it_modEvents.hasNext()) { diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java index 0a2ad59..eee559b 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java @@ -14,6 +14,7 @@ import java.util.regex.MatchResult; import de.sebse.fuplanner.services.kvv.types.Event; import de.sebse.fuplanner.services.kvv.types.EventList; import de.sebse.fuplanner.services.kvv.types.Modules; +import de.sebse.fuplanner.services.kvv.types.Semester; import de.sebse.fuplanner.tools.Regex; import de.sebse.fuplanner.tools.UtilsDate; import de.sebse.fuplanner.tools.network.NetworkCallback; @@ -105,6 +106,15 @@ public class ModulesEvents extends PartModules { errorCallback.onError(new NetworkError(101416, 400, "Cannot get events!")); return; } + Semester latestSemester = modules.getLatestSemester(); + if (module.semester != null && !module.semester.equals(latestSemester)) { + if (module.events != null) { + callback.onResponse(module.events); + } else { + callback.onResponse(new EventList()); + } + return; + } if (module.lvNumber.size() == 0) { // Events not available callback.onResponse(new EventList()); diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Modules.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Modules.java index 5c02cbd..78608b7 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Modules.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Modules.java @@ -65,6 +65,10 @@ public class Modules implements Iterable, Serializable { return this.list.filteredIterator(this.list.getLatestSemester()); } + public Semester getLatestSemester() { + return this.list.getLatestSemester(); + } + public int size() { return this.list.size(); }