/** * Handles login queries and saves informations received from the server in the application's * private data * * @return {@link ServerResponse} */ public ServerResponse login() { ServerResponse res; JSONObject jObject = null; /** Server request */ String request = mHost + logQuery + mID + "/"; String signature = md5("login" + mID + mCode); res = get(request + signature + "/"); jObject = (JSONObject) res.getRespone(); if (jObject == null) return res; /** Parse response */ ArrayList<Map<String, String>> courses = new ArrayList<Map<String, String>>(); try { SharedPreferences.Editor editor = mPreferences.edit(); JSONArray jsonCourses = jObject.getJSONArray("courses"); for (int i = 0; i < jsonCourses.length(); i++) { Map<String, String> course = new HashMap<String, String>(); course.put("id", jsonCourses.getJSONObject(i).getString("id")); course.put("name", jsonCourses.getJSONObject(i).getString("abbr")); courses.add(course); } if (!courses.isEmpty()) { editor.putString("course", courses.get(0).get("name")); editor.putString("courseId", courses.get(0).get("id")); } editor.commit(); } catch (JSONException e) { e.printStackTrace(); return new ServerResponse(null, sInvalidResponse); } /** Successful login */ return new ServerResponse(courses, null); }