From ddefb384024d1542553483c041f8aa48e462b5a9 Mon Sep 17 00:00:00 2001 From: Caesar2011 Date: Thu, 5 Jul 2018 12:19:50 +0200 Subject: [PATCH] Refesh on error fixed --- .idea/misc.xml | 2 +- .idea/modules.xml | 2 +- .idea/vcs.xml | 1 - .../moddetails/ModDetailOverviewFragment.java | 10 ++++++++-- .../fuplanner/services/KVV/KVVModuleList.java | 20 ++++++++++++------- .../fuplanner/services/KVV/types/Modules.java | 8 +++++++- .../de/sebse/fuplanner/tools/AsyncQueue.java | 3 +++ 7 files changed, 33 insertions(+), 13 deletions(-) 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);