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

Binary file not shown.

22
.idea/compiler.xml generated
View File

@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.form" />
<entry name="!?*.class" />
<entry name="!?*.groovy" />
<entry name="!?*.scala" />
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
<entry name="!?*.aj" />
</wildcardResourcePatterns>
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
</component>
</project>

View File

@@ -1,3 +0,0 @@
<component name="CopyrightManager">
<settings default="" />
</component>

30
.idea/misc.xml generated
View File

@@ -5,11 +5,12 @@
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> <option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
<option name="myNullables"> <option name="myNullables">
<value> <value>
<list size="4"> <list size="5">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" /> <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" /> <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" /> <item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" /> <item index="3" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
<item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
</list> </list>
</value> </value>
</option> </option>
@@ -24,26 +25,5 @@
</value> </value>
</option> </option>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8 (2)" project-jdk-type="JavaSDK" />
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
<component name="masterDetails">
<states>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project> </project>

2
.idea/modules.xml generated
View File

@@ -2,7 +2,7 @@
<project version="4"> <project version="4">
<component name="ProjectModuleManager"> <component name="ProjectModuleManager">
<modules> <modules>
<module fileurl="file://$PROJECT_DIR$/FUPlanner.iml" filepath="$PROJECT_DIR$/FUPlanner.iml" /> <module fileurl="file://$PROJECT_DIR$/.idea/FUPlanner.iml" filepath="$PROJECT_DIR$/.idea/FUPlanner.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
</modules> </modules>
</component> </component>

1
.idea/vcs.xml generated
View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="VcsDirectoryMappings"> <component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$" vcs="Git" /> <mapping directory="$PROJECT_DIR$" vcs="Git" />
</component> </component>
</project> </project>

View File

@@ -14,6 +14,7 @@ import android.view.ViewGroup;
import de.sebse.fuplanner.MainActivity; import de.sebse.fuplanner.MainActivity;
import de.sebse.fuplanner.R; import de.sebse.fuplanner.R;
import de.sebse.fuplanner.services.KVV.Modules; 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.NetworkCallback;
import de.sebse.fuplanner.tools.network.NetworkError; import de.sebse.fuplanner.tools.network.NetworkError;
import de.sebse.fuplanner.tools.network.NetworkErrorCallback; 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"; //private static final String ARG_COLUMN_COUNT = "column-count";
// TODO: Customize parameters // TODO: Customize parameters
private OnModulesFragmentInteractionListener mListener; private OnModulesFragmentInteractionListener mListener;
private Logger log = new Logger(this);
/** /**
* Mandatory empty constructor for the fragment manager to instantiate the * 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>() { ((MainActivity) getActivity()).getKVV().getModuleList(new NetworkCallback<Modules>() {
@Override @Override
public void onResponse(@NonNull Modules success) { public void onResponse(@NonNull Modules success) {
log.d(success);
adapter.setModules(success); adapter.setModules(success);
} }
}, new NetworkErrorCallback() { }, 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); View view = inflater.inflate(R.layout.fragment_mod_detail_overview, container, false);
if (activity != null) { if (activity != null) {
KVV kvv = activity.getKVV(); KVV kvv = activity.getKVV();
kvv.getModuleDetails(mItemPos, new NetworkCallback<Modules.UpgradeModule>() { /*kvv.getModuleDetails(mItemPos, new NetworkCallback<Modules.UpgradeModule>() {
@Override @Override
public void onResponse(@NonNull Modules.UpgradeModule success) { public void onResponse(@NonNull Modules.UpgradeModule success) {
log.d(success); log.d(success);
@@ -84,7 +84,7 @@ public class ModDetailOverviewFragment extends Fragment {
public void onError(NetworkError error) { public void onError(NetworkError error) {
log.e(error); log.e(error);
} }
}); });*/
} }
return view; return view;
} }

View File

@@ -94,6 +94,7 @@ public class GoogleAuth {
// This means only a hint is available, but we are handling that // This means only a hint is available, but we are handling that
// elsewhere so no need to act here. // elsewhere so no need to act here.
} else { } else {
credentialsListener.onCredentials(null);
Log.w(TAG, "Unexpected status code: " + ae.getStatusCode()); 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() { this.getLastToken(new LastTokenCallback() {
@Override @Override
public void onReceived(LoginToken token) { public void onReceived(LoginToken token) {
@@ -68,7 +68,7 @@ public class KVV {
modules.getModuleDetails(index, callback, error); modules.getModuleDetails(index, callback, error);
} }
}); });
} }*/
private void getLastToken(LastTokenCallback lastTokenCallback) { private void getLastToken(LastTokenCallback lastTokenCallback) {
if (this.isUpdating) { 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>() { get("https://kvv.imp.fu-berlin.de/direct/site.json", token.getCookies(), new Response.Listener<Result>() {
@Override @Override
public void onResponse(Result response) { public void onResponse(Result response) {
@@ -155,24 +155,27 @@ public class KVVModuleList extends HTTPService {
errorCallback.onError(new NetworkError(101101, 403, "No module list retreived!")); errorCallback.onError(new NetworkError(101101, 403, "No module list retreived!"));
return; return;
} }
Modules modules = new Modules();
try { try {
JSONObject json = new JSONObject(body); JSONObject json = new JSONObject(body);
JSONArray sites = json.getJSONArray("site_collection"); JSONArray sites = json.getJSONArray("site_collection");
for (int i = 0; i < sites.length(); i++) { for (int i = 0; i < sites.length(); i++) {
JSONObject site = sites.getJSONObject(i); JSONObject site = sites.getJSONObject(i);
moduleList = new Modules();
String semester = site.getJSONObject("props").getString("term_eid"); String semester = site.getJSONObject("props").getString("term_eid");
HashSet<String> lvNumbers = new HashSet<>(); 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()); lvNumbers.add(matchResult.group());
} }
String title = site.getJSONObject("props").getString("entityTitle"); String title = site.getString("entityTitle");
HashSet<Lecturer> lecturers = new HashSet<>(); HashSet<Lecturer> lecturers = new HashSet<>();
for (String lecturer : site.getJSONObject("props").getString("kvv_lecturers").split("#")) { for (String lecturer : site.getJSONObject("props").getString("kvv_lecturers").split("#")) {
if (lecturer.length() > 2)
lecturers.add(new Lecturer(lecturer)); 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) { } catch (JSONException e) {
errorCallback.onError(new NetworkError(101102, 403, "Cannot parse module list!")); 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!")); errorCallback.onError(new NetworkError(101103, 403, "Cannot parse module list!"));
return; return;
} }
moduleList = modules;
callback.onResponse(moduleList);
} }
}, new Response.ErrorListener() { }, new Response.ErrorListener() {
@Override @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() { queueModuleDetails.add(new AsyncQueue.AsyncQueueCallback() {
@Override @Override
public void run() { 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) { private void upgradeModule(Modules.SimpleModule module, final NetworkCallback<String> callback, final NetworkErrorCallback errorCallback) {
callback.onResponse("cool ID"); callback.onResponse("cool ID");
} }*/

View File

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