Refesh on error fixed
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<Modules> 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<NetworkError> lastError = new AtomicReference<>(null);
|
||||
final int items = 4;
|
||||
NetworkCallback<Modules.Module> 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));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -26,10 +26,12 @@ import de.sebse.fuplanner.tools.logging.Logger;
|
||||
public class Modules implements Iterable<Modules.Module>, 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<Modules.Module>, Serializable {
|
||||
context.deleteFile(FILE_NAME);
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public class Module implements Serializable {
|
||||
public final String semester;
|
||||
public final HashSet<String> lvNumber;
|
||||
|
||||
@@ -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<String, LinkedList<AsyncQueueCallback>> mQueues = new HashMap<>();
|
||||
private HashMap<String, Boolean> 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);
|
||||
|
||||
Reference in New Issue
Block a user