Lecturer Load Fix

This commit is contained in:
Caesar2011
2019-02-05 23:59:09 +01:00
parent 1e6ef4d6fc
commit e305605583

View File

@@ -67,7 +67,6 @@ class ModulesListLecturer extends HTTPService {
errorCallback.onError(new NetworkError(102101, 403, "No lecturers retrieved!")); errorCallback.onError(new NetworkError(102101, 403, "No lecturers retrieved!"));
return; return;
} }
LinkedHashSet<Lecturer> lecturers = new LinkedHashSet<>();
JSONArray sites; JSONArray sites;
try { try {
JSONObject json = new JSONObject(body); JSONObject json = new JSONObject(body);
@@ -78,8 +77,18 @@ class ModulesListLecturer extends HTTPService {
return; return;
} }
LinkedHashSet<Lecturer> lecturers = new LinkedHashSet<>();
final int[] latch = {sites.length()}; final int[] latch = {sites.length()};
ArrayList<String> lecturerString2 = new ArrayList<>(); ArrayList<String> lecturerString2 = new ArrayList<>();
NetworkCallback<LinkedHashSet<Lecturer>> successCallback = l -> {
mStorage.setLecturersPerCourse(moduleID, lecturerString2);
try {
mStorage.save(getContext());
} catch (IOException e) {
e.printStackTrace();
}
callback.onResponse(lecturers);
};
for (int i = 0; i < sites.length(); i++) { for (int i = 0; i < sites.length(); i++) {
try { try {
JSONObject lecturerJson = sites.getJSONObject(i); JSONObject lecturerJson = sites.getJSONObject(i);
@@ -89,28 +98,21 @@ class ModulesListLecturer extends HTTPService {
lecturerString2.add(userId); lecturerString2.add(userId);
getBBLecturer(userId, success -> { getBBLecturer(userId, success -> {
lecturers.add(success); lecturers.add(success);
if (--latch[0] == 0) callback.onResponse(lecturers); if (--latch[0] == 0) successCallback.onResponse(lecturers);
}, error -> { }, error -> {
log.e(error); log.e(error);
if (--latch[0] == 0) callback.onResponse(lecturers); if (--latch[0] == 0) successCallback.onResponse(lecturers);
}); });
} else { } else {
if (--latch[0] == 0) callback.onResponse(lecturers); if (--latch[0] == 0) successCallback.onResponse(lecturers);
} }
} catch (JSONException e) { } catch (JSONException e) {
log.e(new NetworkError(102103, 403, "Cannot parse lecturers!")); log.e(new NetworkError(102103, 403, "Cannot parse lecturers!"));
log.e("ID:", i, "JSON:", sites); log.e("ID:", i, "JSON:", sites);
e.printStackTrace(); e.printStackTrace();
if (--latch[0] == 0) callback.onResponse(lecturers); if (--latch[0] == 0) successCallback.onResponse(lecturers);
} }
} }
mStorage.setLecturersPerCourse(moduleID, lecturerString2);
try {
mStorage.save(getContext());
} catch (IOException e) {
e.printStackTrace();
}
callback.onResponse(lecturers);
}, error -> errorCallback.onError(new NetworkError(102104, error.networkResponse.statusCode, "Error retrieving lecturers!"))); }, error -> errorCallback.onError(new NetworkError(102104, error.networkResponse.statusCode, "Error retrieving lecturers!")));
} }