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 592131ad..ffc50b04 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/api/Librus.java +++ b/app/src/main/java/pl/szczodrzynski/edziennik/api/Librus.java @@ -199,6 +199,7 @@ public class Librus implements EdziennikInterface { private boolean enableDescriptiveGrades = false; private boolean enableTextGrades = false; private boolean enableBehaviourGrades = true; + private long unitId = -1; private int startPointsSemester1 = 0; private int startPointsSemester2 = 0; @@ -346,6 +347,7 @@ public class Librus implements EdziennikInterface { targetEndpoints.add("Events"); targetEndpoints.add("CustomTypes"); targetEndpoints.add("PtMeetings"); + targetEndpoints.add("SchoolFreeDays"); break; case FEATURE_GRADES: targetEndpoints.add("SavedGradeCategories"); @@ -534,6 +536,9 @@ public class Librus implements EdziennikInterface { case "TeacherFreeDays": getTeacherFreeDays(); break; + case "SchoolFreeDays": + getSchoolFreeDays(); + break; case "MessagesLogin": getMessagesLogin(); break; @@ -1403,7 +1408,8 @@ public class Librus implements EdziennikInterface { } JsonElement unit = myClass.get("Unit"); if (unit != null && !(unit instanceof JsonNull)) { - profile.putStudentData("unitId", unit.getAsJsonObject().get("Id").getAsLong()); + unitId = unit.getAsJsonObject().get("Id").getAsLong(); + profile.putStudentData("unitId", unitId); } r("finish", "Classes"); } @@ -3071,6 +3077,26 @@ public class Librus implements EdziennikInterface { }); } + private void getSchoolFreeDays() { + callback.onActionStarted(R.string.sync_action_syncing_school_free_days); + apiRequest("SchoolFreeDays" + (unitId != -1 ? "?unit=" + unitId : ""), data -> { + if (data == null) { + r("finish", "SchoolFreeDays"); + return; + } + try { + JsonArray jFreeDays = data.get("SchoolFreeDays").getAsJsonArray(); + + for (JsonElement freeDayEl: jFreeDays) { + continue; + } + r("finish", "SchoolFreeDays"); + } catch (Exception e) { + finishWithError(new AppError(TAG, 3069, CODE_OTHER, e, data)); + } + }); + } + private void getMessagesLogin() { if (synergiaPassword == null) { // skip messages @@ -3668,4 +3694,4 @@ public class Librus implements EdziennikInterface { public MessagesComposeInfo getComposeInfo(@NonNull ProfileFull profile) { return new MessagesComposeInfo(0, 0, 150, 20000); } -} \ No newline at end of file +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0dd0cdc8..e0f6a927 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -908,4 +908,5 @@ Serwer Discord Dołącz do naszego serwera Discord! Debugowanie + Pobieranie dni wolnych szkoły