UpgradeModule removed

This commit is contained in:
Caesar2011
2018-05-10 18:45:01 +02:00
parent c9a5f9972d
commit 55f06830b0
13 changed files with 48 additions and 121 deletions

View File

@@ -14,6 +14,7 @@ import android.view.ViewGroup;
import de.sebse.fuplanner.MainActivity;
import de.sebse.fuplanner.R;
import de.sebse.fuplanner.services.KVV.Modules;
import de.sebse.fuplanner.tools.logging.Logger;
import de.sebse.fuplanner.tools.network.NetworkCallback;
import de.sebse.fuplanner.tools.network.NetworkError;
import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
@@ -30,6 +31,7 @@ public class ModulesFragment extends Fragment {
//private static final String ARG_COLUMN_COUNT = "column-count";
// TODO: Customize parameters
private OnModulesFragmentInteractionListener mListener;
private Logger log = new Logger(this);
/**
* Mandatory empty constructor for the fragment manager to instantiate the
@@ -76,6 +78,7 @@ public class ModulesFragment extends Fragment {
((MainActivity) getActivity()).getKVV().getModuleList(new NetworkCallback<Modules>() {
@Override
public void onResponse(@NonNull Modules success) {
log.d(success);
adapter.setModules(success);
}
}, new NetworkErrorCallback() {

View File

@@ -73,7 +73,7 @@ public class ModDetailOverviewFragment extends Fragment {
View view = inflater.inflate(R.layout.fragment_mod_detail_overview, container, false);
if (activity != null) {
KVV kvv = activity.getKVV();
kvv.getModuleDetails(mItemPos, new NetworkCallback<Modules.UpgradeModule>() {
/*kvv.getModuleDetails(mItemPos, new NetworkCallback<Modules.UpgradeModule>() {
@Override
public void onResponse(@NonNull Modules.UpgradeModule success) {
log.d(success);
@@ -84,7 +84,7 @@ public class ModDetailOverviewFragment extends Fragment {
public void onError(NetworkError error) {
log.e(error);
}
});
});*/
}
return view;
}

View File

@@ -94,6 +94,7 @@ public class GoogleAuth {
// This means only a hint is available, but we are handling that
// elsewhere so no need to act here.
} else {
credentialsListener.onCredentials(null);
Log.w(TAG, "Unexpected status code: " + ae.getStatusCode());
}
}

View File

@@ -56,7 +56,7 @@ public class KVV {
});
}
public void getModuleDetails(final int index, final NetworkCallback<Modules.UpgradeModule> callback, final NetworkErrorCallback error) {
/*public void getModuleDetails(final int index, final NetworkCallback<Modules.UpgradeModule> callback, final NetworkErrorCallback error) {
this.getLastToken(new LastTokenCallback() {
@Override
public void onReceived(LoginToken token) {
@@ -68,7 +68,7 @@ public class KVV {
modules.getModuleDetails(index, callback, error);
}
});
}
}*/
private void getLastToken(LastTokenCallback lastTokenCallback) {
if (this.isUpdating) {

View File

@@ -146,7 +146,7 @@ public class KVVModuleList extends HTTPService {
});
}
*/
public void getModuleList(NetworkCallback<Modules> callback, final NetworkErrorCallback errorCallback) {
public void getModuleList(final NetworkCallback<Modules> callback, final NetworkErrorCallback errorCallback) {
get("https://kvv.imp.fu-berlin.de/direct/site.json", token.getCookies(), new Response.Listener<Result>() {
@Override
public void onResponse(Result response) {
@@ -155,24 +155,27 @@ public class KVVModuleList extends HTTPService {
errorCallback.onError(new NetworkError(101101, 403, "No module list retreived!"));
return;
}
Modules modules = new Modules();
try {
JSONObject json = new JSONObject(body);
JSONArray sites = json.getJSONArray("site_collection");
for (int i = 0; i < sites.length(); i++) {
JSONObject site = sites.getJSONObject(i);
moduleList = new Modules();
String semester = site.getJSONObject("props").getString("term_eid");
HashSet<String> lvNumbers = new HashSet<>();
for (MatchResult matchResult: allMatches("[0-9]*", site.getJSONObject("props").getString("kvv_lvnumbers"))) {
for (MatchResult matchResult : allMatches(Pattern.compile("[0-9]+"), site.getJSONObject("props").getString("kvv_lvnumbers"))) {
lvNumbers.add(matchResult.group());
}
String title = site.getJSONObject("props").getString("entityTitle");
String title = site.getString("entityTitle");
HashSet<Lecturer> lecturers = new HashSet<>();
for (String lecturer : site.getJSONObject("props").getString("kvv_lecturers").split("#")) {
lecturers.add(new Lecturer(lecturer));
if (lecturer.length() > 2)
lecturers.add(new Lecturer(lecturer));
}
moduleList.addModule(semester, lvNumbers, title, lecturers, "", "");
String type = site.getJSONObject("props").getString("kvv_coursetype");
String id = site.getString("id");
modules.addModule(semester, lvNumbers, title, lecturers, type, id);
}
} catch (JSONException e) {
errorCallback.onError(new NetworkError(101102, 403, "Cannot parse module list!"));
@@ -181,6 +184,8 @@ public class KVVModuleList extends HTTPService {
errorCallback.onError(new NetworkError(101103, 403, "Cannot parse module list!"));
return;
}
moduleList = modules;
callback.onResponse(moduleList);
}
}, new Response.ErrorListener() {
@Override
@@ -192,7 +197,7 @@ public class KVVModuleList extends HTTPService {
public void getModuleDetails(final int index, final NetworkCallback<Modules.UpgradeModule> callback, final NetworkErrorCallback errorCallback) {
/*public void getModuleDetails(final int index, final NetworkCallback<Modules.UpgradeModule> callback, final NetworkErrorCallback errorCallback) {
queueModuleDetails.add(new AsyncQueue.AsyncQueueCallback() {
@Override
public void run() {
@@ -225,7 +230,7 @@ public class KVVModuleList extends HTTPService {
private void upgradeModule(Modules.SimpleModule module, final NetworkCallback<String> callback, final NetworkErrorCallback errorCallback) {
callback.onResponse("cool ID");
}
}*/

View File

@@ -30,4 +30,11 @@ class Lecturer {
public String getMail() {
return mail;
}
@Override
public String toString() {
return "First name: "+getFirstname()+
"\nSurname: "+getSurname()+
"\nMail: "+getMail();
}
}

View File

@@ -1,7 +1,6 @@
package de.sebse.fuplanner.services.KVV;
import android.support.annotation.NonNull;
import android.util.Pair;
import java.util.ArrayList;
import java.util.HashSet;
@@ -14,37 +13,22 @@ import de.sebse.fuplanner.tools.Triplet;
* Created by sebastian on 29.10.17.
*/
public class Modules extends EventEmitter<Triplet<Integer, Modules.UpgradeModule, ArrayList<String>>> implements Iterable<Modules.Module> {
public class Modules /*extends EventEmitter<Triplet<Integer, Modules.UpgradeModule, ArrayList<String>>>*/ implements Iterable<Modules.Module> {
private final ArrayList<Module> list;
Modules() {
this.list = new ArrayList<>();
}
Module addModule(String semester, HashSet<String> lvNumber, String title, HashSet<String> lecturer, String type, String upgradeURI) {
Module m = new SimpleModule(semester, lvNumber, title, lecturer, type, upgradeURI);
Module addModule(String semester, HashSet<String> lvNumber, String title, HashSet<Lecturer> lecturer, String type, String ID) {
Module m = new Module(semester, lvNumber, title, lecturer, type, ID);
this.list.add(m);
return m;
}
UpgradeModule upgradeItem(int index, String moduleID) {
Module sm = list.get(index);
if (sm instanceof SimpleModule) {
UpgradeModule um = new UpgradeModule((SimpleModule) sm, moduleID);
list.set(index, um);
return um;
} else {
return (UpgradeModule) sm;
}
}
public void setDescription(int index, String description) {
Module entry = this.list.get(index);
if (!(entry instanceof UpgradeModule)) {
return;
}
((UpgradeModule) entry).description = description;
emit(new Triplet<>(index, ((UpgradeModule) entry), new ArrayList<String>()));
@Override
public String toString() {
return this.list.toString();
}
@NonNull
@@ -77,19 +61,20 @@ public class Modules extends EventEmitter<Triplet<Integer, Modules.UpgradeModule
return this.list.get(index);
}
abstract public class Module {
public class Module {
public final String semester;
public final HashSet<String> lvNumber;
public final String title;
public final HashSet<String> lecturer;
public final HashSet<Lecturer> lecturer;
public final String type;
private final String ID;
/*private Module() {
this(null, null, null, null, null);
throw new AssertionError("Do not use this constructor!");
}*/
private Module(String semester, HashSet<String> lvNumber, String title, HashSet<String> lecturer, String type) {
private Module(String semester, HashSet<String> lvNumber, String title, HashSet<Lecturer> lecturer, String type, String ID) {
semester = semester.replace("Sommersemester", "SS").replace("Wintersemester", "WS");
semester = semester.replaceAll("[0-9]{2}([0-9]{2})", "$1");
@@ -98,6 +83,7 @@ public class Modules extends EventEmitter<Triplet<Integer, Modules.UpgradeModule
this.title = title;
this.lecturer = lecturer;
this.type = type;
this.ID = ID;
}
@Override
@@ -106,39 +92,8 @@ public class Modules extends EventEmitter<Triplet<Integer, Modules.UpgradeModule
"\nlvNumber: "+lvNumber.toString()+
"\ntitle: "+title+
"\nlecturer: "+lecturer.toString()+
"\ntype: "+type;
}
}
public class SimpleModule extends Module {
final String upgradeURI;
private SimpleModule(String semester, HashSet<String> lvNumber, String title, HashSet<String> lecturer, String type, String upgradeURI) {
super(semester, lvNumber, title, lecturer, type);
this.upgradeURI = upgradeURI;
}
@Override
public String toString() {
return super.toString()+
"\nupgradeURI: "+upgradeURI;
}
}
public class UpgradeModule extends Module {
final String moduleID;
public String description = null;
private UpgradeModule(SimpleModule module, String moduleID) {
super(module.semester, module.lvNumber, module.title, module.lecturer, module.type);
this.moduleID = moduleID;
}
@Override
public String toString() {
return super.toString()+
"\nmoduleID: "+moduleID+
"\ndescription: "+description;
"\ntype: "+type+
"\nID: "+ID;
}
}
}