From 959733a3c9b616d36e3ae9a327430ae3406080cd Mon Sep 17 00:00:00 2001 From: Joshua <8Joshua@web.de> Date: Thu, 8 Nov 2018 18:31:15 +0100 Subject: [PATCH] bug fix beim laden der Module --- .../fuplanner/services/KVV/KVVModuleList.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java b/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java index 5f5443f..e1cb7f3 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java +++ b/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java @@ -96,11 +96,17 @@ class KVVModuleList extends HTTPService { return; } Modules modules = new Modules(token); + JSONArray sites; try { JSONObject json = new JSONObject(body); - JSONArray sites = json.getJSONArray("site_collection"); - - for (int i = 0; i < sites.length(); i++) { + sites = json.getJSONArray("site_collection"); + } catch (JSONException e) { + e.printStackTrace(); + errorCallback.onError(new NetworkError(101102, 403, "Cannot parse module list!")); + return; + } + for (int i = 0; i < sites.length(); i++) { + try { JSONObject site = sites.getJSONObject(i); String semester = site.getJSONObject("props").getString("term_eid"); HashSet lvNumbers = new HashSet<>(); @@ -114,19 +120,17 @@ class KVVModuleList extends HTTPService { lecturers.add(new Lecturer(lecturer)); } String type = site.getJSONObject("props").getString("kvv_coursetype"); - String description = site.getString("description"); + String description = site.optString("description", ""); description = String.valueOf(fromHtml(description)); String id = site.getString("id"); modules.addModule(semester, lvNumbers, title, lecturers, type, description, id); + } catch (JSONException e) { + log.e("Cannot parse module! ID:", i, sites); + e.printStackTrace(); + } catch (NoSuchFieldException e) { + log.e("Cannot parse module! ID:", i, sites); + e.printStackTrace(); } - } catch (JSONException e) { - e.printStackTrace(); - errorCallback.onError(new NetworkError(101102, 403, "Cannot parse module list!")); - return; - } catch (NoSuchFieldException e) { - e.printStackTrace(); - errorCallback.onError(new NetworkError(101103, 403, "Cannot parse module list!")); - return; } // Empty module *may be* because token is invalid -> check if (modules.size() == 0)