Esempio n. 1
0
  /**
   * 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);
  }