package de.htwdd.classes;
import android.content.Context;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import de.htwdd.types.Exam;
public class Exams {
public ArrayList<Exam> exams = new ArrayList<Exam>();
private Context context;
public Exams(Context context) {
this.context = context;
}
private int parseExams(String url) {
// Überprüfe Internetverbindung
if (!HTTPDownloader.CheckInternet(context))
return 900;
HTTPDownloader downloader = new HTTPDownloader(url);
String response = downloader.getString();
if (downloader.ResponseCode != 200)
return downloader.ResponseCode;
try {
JSONArray array = new JSONArray(response);
int countExams = array.length();
for (int i = 0; i < countExams; i++) {
Exam exam = new Exam();
JSONObject object = array.getJSONObject(i);
exam.Title = object.getString("Title");
exam.ExamType = object.getString("ExamType");
exam.StudyBranch = object.getString("StudyBranch");
exam.Day = object.getString("Day");
exam.StartTime = object.getString("StartTime");
exam.EndTime = object.getString("EndTime");
exam.Examiner = object.getString("Examiner");
exam.NextChance = object.getString("NextChance");
exam.Rooms = "";
JSONArray arrayRooms = object.getJSONArray("Rooms");
int countRooms = arrayRooms.length();
for (int y = 0; y < countRooms; y++) {
exam.Rooms += arrayRooms.getString(y);
if (y < countRooms - 1)
exam.Rooms += ", ";
}
exams.add(exam);
}
} catch (Exception e) {
return 999;
}
Collections.sort(this.exams, new ComparatorDay());
return downloader.ResponseCode;
}
public int getExamsInside(int StgJhr, String Stg, String AbSc, String Stgri) {
return parseExams("https://www2.htw-dresden.de/~app/API/GetExams.php?StgJhr=20" + String.format("%02d", StgJhr) + "&Stg=" + Stg + "&AbSc=" + AbSc + "&Stgri=" + Stgri);
}
public int getExamsInside(String Prof) {
return parseExams("https://www2.htw-dresden.de/~app/API/GetExams.phpetExams.php?Prof=" + Prof);
}
public class ComparatorDay implements Comparator<Exam> {
public int compare(Exam paramExam1, Exam paramExam2) {
return paramExam1.Day.compareTo(paramExam2.Day);
}
}
}