diff --git a/.idea/misc.xml b/.idea/misc.xml
index 4e024a8..a8cce1b 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -25,5 +25,5 @@
-
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index bee9e70..62306f1 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 8306744..35eb1dd 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -2,6 +2,5 @@
-
\ No newline at end of file
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailOverviewFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailOverviewFragment.java
index 01cf213..a03c5b4 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailOverviewFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailOverviewFragment.java
@@ -94,8 +94,14 @@ public class ModDetailOverviewFragment extends Fragment {
adapter.setModule();
if (pair.second)
swipeLayout.setRefreshing(false);
- }, error -> log.e(error));
- }, error -> log.e(error), forceRefresh);
+ }, error -> {
+ swipeLayout.setRefreshing(false);
+ log.e(error);
+ });
+ }, error -> {
+ swipeLayout.setRefreshing(false);
+ log.e(error);
+ }, forceRefresh);
}
}
diff --git a/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java b/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java
index aa3a10d..7a3a377 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/KVV/KVVModuleList.java
@@ -44,7 +44,9 @@ public class KVVModuleList extends HTTPService {
super(context);
this.token = token;
try {
- this.moduleList = Modules.load(context);
+ Modules modules = Modules.load(context);
+ if (modules.getUsername().equals(token.getUsername()))
+ this.moduleList = modules;
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
@@ -56,7 +58,9 @@ public class KVVModuleList extends HTTPService {
public void getModuleList(final NetworkCallback callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
+ log.d("getModuleList");
queueModuleDetails.add("list", () -> {
+ log.d("getModuleList start", forceRefresh);
if (this.moduleList != null && !forceRefresh) {
callback.onResponse(this.moduleList);
queueModuleDetails.next("list");
@@ -66,7 +70,7 @@ public class KVVModuleList extends HTTPService {
this.moduleList = success;
callback.onResponse(this.moduleList);
queueModuleDetails.next("list");
- }, errorCallback);
+ }, queueModuleDetails.check("list", errorCallback));
});
}
@@ -77,7 +81,7 @@ public class KVVModuleList extends HTTPService {
errorCallback.onError(new NetworkError(101101, 403, "No module list retrieved!"));
return;
}
- Modules modules = new Modules();
+ Modules modules = new Modules(token.getUsername());
try {
JSONObject json = new JSONObject(body);
JSONArray sites = json.getJSONArray("site_collection");
@@ -136,6 +140,7 @@ public class KVVModuleList extends HTTPService {
AtomicReference lastError = new AtomicReference<>(null);
final int items = 4;
NetworkCallback successCb = success -> {
+ log.d("items-d", returns.get());
returns.getAndIncrement();
callback.onResponse(Pair.create(module, false));
if (returns.get() == items) {
@@ -145,6 +150,7 @@ public class KVVModuleList extends HTTPService {
}
};
NetworkErrorCallback errorCb = error -> {
+ log.d("items-e", returns.get());
lastError.set(error);
returns.getAndIncrement();
if (returns.get() == items) {
@@ -182,7 +188,7 @@ public class KVVModuleList extends HTTPService {
module.announcements = success;
callback.onResponse(module);
queueModuleDetails.next(module.getID());
- }, errorCallback);
+ }, queueModuleDetails.check(module.getID(), errorCallback));
});
}
@@ -233,7 +239,7 @@ public class KVVModuleList extends HTTPService {
module.assignments = success;
callback.onResponse(module);
queueModuleDetails.next(module.getID());
- }, errorCallback);
+ }, queueModuleDetails.check(module.getID(), errorCallback));
});
}
@@ -297,7 +303,7 @@ public class KVVModuleList extends HTTPService {
module.events = success;
callback.onResponse(module);
queueModuleDetails.next(module.getID());
- }, errorCallback);
+ }, queueModuleDetails.check(module.getID(), errorCallback));
});
}
@@ -348,7 +354,7 @@ public class KVVModuleList extends HTTPService {
module.gradebook = success;
callback.onResponse(module);
queueModuleDetails.next(module.getID());
- }, errorCallback);
+ }, queueModuleDetails.check(module.getID(), errorCallback));
});
}
diff --git a/app/src/main/java/de/sebse/fuplanner/services/KVV/types/Modules.java b/app/src/main/java/de/sebse/fuplanner/services/KVV/types/Modules.java
index 42b8e51..ee6ec2c 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/KVV/types/Modules.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/KVV/types/Modules.java
@@ -26,10 +26,12 @@ import de.sebse.fuplanner.tools.logging.Logger;
public class Modules implements Iterable, Serializable {
private final SortedModuleList list;
private String latestSemester = null;
+ private String username = null;
private transient Logger log = new Logger(this);
private static final String FILE_NAME = "ModuleListSaving";
- public Modules() {
+ public Modules(String username) {
+ this.username = username;
this.list = new SortedModuleList();
}
@@ -174,6 +176,10 @@ public class Modules implements Iterable, Serializable {
context.deleteFile(FILE_NAME);
}
+ public String getUsername() {
+ return username;
+ }
+
public class Module implements Serializable {
public final String semester;
public final HashSet lvNumber;
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/AsyncQueue.java b/app/src/main/java/de/sebse/fuplanner/tools/AsyncQueue.java
index 2bc56c6..dc3d4d0 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/AsyncQueue.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/AsyncQueue.java
@@ -3,12 +3,14 @@ package de.sebse.fuplanner.tools;
import java.util.HashMap;
import java.util.LinkedList;
+import de.sebse.fuplanner.tools.logging.Logger;
import de.sebse.fuplanner.tools.network.NetworkCallback;
import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
public class AsyncQueue {
private HashMap> mQueues = new HashMap<>();
private HashMap mRunnings = new HashMap<>();
+ private Logger log = new Logger(this);
public void add(String hash, AsyncQueueCallback callback) {
if (isRunning(hash))
@@ -20,6 +22,7 @@ public class AsyncQueue {
}
public void next(String hash) {
+ log.d("next", hash);
AsyncQueueCallback callback = getQueue(hash).pollFirst();
if (callback == null)
setRunning(hash, false);