diff --git a/app/src/main/assets/pl-changelog.html b/app/src/main/assets/pl-changelog.html
index 5ef7daa1..88a90ec4 100644
--- a/app/src/main/assets/pl-changelog.html
+++ b/app/src/main/assets/pl-changelog.html
@@ -31,6 +31,14 @@
+Wersja 3.0.3, 2019-09-26
+
+ - Librus: poprawka kilku błędów synchronizacji.
+ - Vulcan: prawidłowe oznaczanie wiadomości jako przeczytana.
+ - Vulcan: poprawiona synchronizacja wiadomości i frekwencji.
+ - Vulcan: poprawka błędów logowania.
+
+
Wersja 3.0.2, 2019-09-24
- Librus: pobieranie Bieżących ocen opisowych.
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/api/Librus.java b/app/src/main/java/pl/szczodrzynski/edziennik/api/Librus.java
index 9ba452e0..540303f7 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/api/Librus.java
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/api/Librus.java
@@ -437,6 +437,10 @@ public class Librus implements EdziennikInterface {
callback.onProgress(PROGRESS_STEP);
index++;
}
+ if (index > targetEndpoints.size()) {
+ finish();
+ return;
+ }
d(TAG, "Called r("+type+", "+endpoint+"). Getting "+targetEndpoints.get(index));
switch (targetEndpoints.get(index)) {
case "Me":
@@ -1673,11 +1677,32 @@ public class Librus implements EdziennikInterface {
continue;
}
+ Time startTime = null;
+ Time endTime = null;
+ try {
+ startTime = Time.fromH_m(lesson.get(substitution && !cancelled ? "OrgHourFrom" : "HourFrom").getAsString());
+ endTime = Time.fromH_m(lesson.get(substitution && !cancelled ? "OrgHourTo" : "HourTo").getAsString());
+ }
+ catch (Exception ignore) {
+ try {
+ JsonElement lessonNo;
+ if (!((lessonNo = lesson.get("LessonNo")) instanceof JsonNull)) {
+ Pair