X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2Fcoursenames%2FCourseNameManager.java;fp=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2Fcoursenames%2FCourseNameManager.java;h=546238b4b461e9ed2991b7b472919b23462282cf;hb=17d3a2ce93fd3ba1ec692dea601f246ef8e068b2;hp=0000000000000000000000000000000000000000;hpb=48e758721a39298a85c69ecc7267f3daf6993e78;p=DHBWCampusApp.git diff --git a/app/src/main/java/de/dhbwloe/campusapp/coursenames/CourseNameManager.java b/app/src/main/java/de/dhbwloe/campusapp/coursenames/CourseNameManager.java new file mode 100644 index 0000000..546238b --- /dev/null +++ b/app/src/main/java/de/dhbwloe/campusapp/coursenames/CourseNameManager.java @@ -0,0 +1,98 @@ +package de.dhbwloe.campusapp.coursenames; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.net.URLEncoder; +import java.util.ArrayList; + +import de.dhbwloe.campusapp.CampusAppContext; +import de.dhbwloe.campusapp.network.JsonRequestHelper; + +/** + * Created by pk910 on 09.03.2016. + */ +public class CourseNameManager extends JsonRequestHelper { + private static final String COURSENAMES_API_HOST = "http://dev.pk910.de/DHBWCampusCourses"; + + private ArrayList aCallbackInterfaces = new ArrayList(); + private boolean bSyncRequestRunning; + + public void synchronizeCourseNames(CourseNameManagerInterface callback) { + aCallbackInterfaces.add(callback); + if(bSyncRequestRunning) + return; + + bSyncRequestRunning = true; + + String courseNamesSyncUrl = COURSENAMES_API_HOST + "?action=sync"; + CourseName lastName = CampusAppContext.getInstance().getDatabaseManager().getLatestCourseName(); + if(lastName != null) + courseNamesSyncUrl += "&time="+Long.toString(lastName.getLastUpdate()); + requestJsonFromWeb(courseNamesSyncUrl); + } + + public void addCourseName(String courseName) { + String courseNamesAddUrl = "?action=add&course="+ URLEncoder.encode(courseName); + JsonRequestHelper addCourseReqHelper = new JsonRequestHelper() { + @Override + protected void onJsonReceived(JSONObject json) { + /* unused - no JSON Response from action=add */ + } + + @Override + protected void onJsonReceived(JSONArray json) { + /* unused - no JSON Response from action=add */ + } + + @Override + protected void onTextReceived(String response) { + + } + + @Override + protected void onJsonRequestFail(int statusCode, String errorMessage) { + + } + }; + } + + + @Override + protected void onJsonReceived(JSONObject json) { + /* unused - we'll receive text (error) or a JSON array of results. */ + } + + @Override + protected void onJsonReceived(JSONArray json) { + for(int i = 0; i < json.length(); i++) { + try { + JSONObject courseNameEntry = json.getJSONObject(i); + + String courseName = courseNameEntry.getString("name"); + String courseStatus = courseNameEntry.getString("status"); + long courseUpdate = courseNameEntry.getLong("lastupdate"); + + CourseName course = new CourseName(courseName, courseStatus, courseUpdate); + CampusAppContext.getInstance().getDatabaseManager().addCourseName(course); + } catch (JSONException e) { + e.printStackTrace(); + } + } + for(CourseNameManagerInterface callback : aCallbackInterfaces) + callback.onCourseNamesSynchronized(); + } + + @Override + protected void onTextReceived(String response) { + for(CourseNameManagerInterface callback : aCallbackInterfaces) + callback.onCourseNamesFailed(response); + } + + @Override + protected void onJsonRequestFail(int statusCode, String errorMessage) { + for(CourseNameManagerInterface callback : aCallbackInterfaces) + callback.onCourseNamesFailed(errorMessage); + } +}