Refesh on error fixed
This commit is contained in:
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -25,5 +25,5 @@
|
|||||||
</value>
|
</value>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8 (2)" project-jdk-type="JavaSDK" />
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
|
||||||
</project>
|
</project>
|
||||||
2
.idea/modules.xml
generated
2
.idea/modules.xml
generated
@@ -2,7 +2,7 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectModuleManager">
|
<component name="ProjectModuleManager">
|
||||||
<modules>
|
<modules>
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/FUPlanner.iml" filepath="$PROJECT_DIR$/.idea/FUPlanner.iml" />
|
<module fileurl="file://$PROJECT_DIR$/FUPlanner.iml" filepath="$PROJECT_DIR$/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
1
.idea/vcs.xml
generated
@@ -2,6 +2,5 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
<mapping directory="" vcs="Git" />
|
<mapping directory="" vcs="Git" />
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -94,8 +94,14 @@ public class ModDetailOverviewFragment extends Fragment {
|
|||||||
adapter.setModule();
|
adapter.setModule();
|
||||||
if (pair.second)
|
if (pair.second)
|
||||||
swipeLayout.setRefreshing(false);
|
swipeLayout.setRefreshing(false);
|
||||||
}, error -> log.e(error));
|
}, error -> {
|
||||||
}, error -> log.e(error), forceRefresh);
|
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);
|
super(context);
|
||||||
this.token = token;
|
this.token = token;
|
||||||
try {
|
try {
|
||||||
this.moduleList = Modules.load(context);
|
Modules modules = Modules.load(context);
|
||||||
|
if (modules.getUsername().equals(token.getUsername()))
|
||||||
|
this.moduleList = modules;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
@@ -56,7 +58,9 @@ public class KVVModuleList extends HTTPService {
|
|||||||
|
|
||||||
|
|
||||||
public void getModuleList(final NetworkCallback<Modules> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
|
public void getModuleList(final NetworkCallback<Modules> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
|
||||||
|
log.d("getModuleList");
|
||||||
queueModuleDetails.add("list", () -> {
|
queueModuleDetails.add("list", () -> {
|
||||||
|
log.d("getModuleList start", forceRefresh);
|
||||||
if (this.moduleList != null && !forceRefresh) {
|
if (this.moduleList != null && !forceRefresh) {
|
||||||
callback.onResponse(this.moduleList);
|
callback.onResponse(this.moduleList);
|
||||||
queueModuleDetails.next("list");
|
queueModuleDetails.next("list");
|
||||||
@@ -66,7 +70,7 @@ public class KVVModuleList extends HTTPService {
|
|||||||
this.moduleList = success;
|
this.moduleList = success;
|
||||||
callback.onResponse(this.moduleList);
|
callback.onResponse(this.moduleList);
|
||||||
queueModuleDetails.next("list");
|
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!"));
|
errorCallback.onError(new NetworkError(101101, 403, "No module list retrieved!"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Modules modules = new Modules();
|
Modules modules = new Modules(token.getUsername());
|
||||||
try {
|
try {
|
||||||
JSONObject json = new JSONObject(body);
|
JSONObject json = new JSONObject(body);
|
||||||
JSONArray sites = json.getJSONArray("site_collection");
|
JSONArray sites = json.getJSONArray("site_collection");
|
||||||
@@ -136,6 +140,7 @@ public class KVVModuleList extends HTTPService {
|
|||||||
AtomicReference<NetworkError> lastError = new AtomicReference<>(null);
|
AtomicReference<NetworkError> lastError = new AtomicReference<>(null);
|
||||||
final int items = 4;
|
final int items = 4;
|
||||||
NetworkCallback<Modules.Module> successCb = success -> {
|
NetworkCallback<Modules.Module> successCb = success -> {
|
||||||
|
log.d("items-d", returns.get());
|
||||||
returns.getAndIncrement();
|
returns.getAndIncrement();
|
||||||
callback.onResponse(Pair.create(module, false));
|
callback.onResponse(Pair.create(module, false));
|
||||||
if (returns.get() == items) {
|
if (returns.get() == items) {
|
||||||
@@ -145,6 +150,7 @@ public class KVVModuleList extends HTTPService {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
NetworkErrorCallback errorCb = error -> {
|
NetworkErrorCallback errorCb = error -> {
|
||||||
|
log.d("items-e", returns.get());
|
||||||
lastError.set(error);
|
lastError.set(error);
|
||||||
returns.getAndIncrement();
|
returns.getAndIncrement();
|
||||||
if (returns.get() == items) {
|
if (returns.get() == items) {
|
||||||
@@ -182,7 +188,7 @@ public class KVVModuleList extends HTTPService {
|
|||||||
module.announcements = success;
|
module.announcements = success;
|
||||||
callback.onResponse(module);
|
callback.onResponse(module);
|
||||||
queueModuleDetails.next(module.getID());
|
queueModuleDetails.next(module.getID());
|
||||||
}, errorCallback);
|
}, queueModuleDetails.check(module.getID(), errorCallback));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -233,7 +239,7 @@ public class KVVModuleList extends HTTPService {
|
|||||||
module.assignments = success;
|
module.assignments = success;
|
||||||
callback.onResponse(module);
|
callback.onResponse(module);
|
||||||
queueModuleDetails.next(module.getID());
|
queueModuleDetails.next(module.getID());
|
||||||
}, errorCallback);
|
}, queueModuleDetails.check(module.getID(), errorCallback));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -297,7 +303,7 @@ public class KVVModuleList extends HTTPService {
|
|||||||
module.events = success;
|
module.events = success;
|
||||||
callback.onResponse(module);
|
callback.onResponse(module);
|
||||||
queueModuleDetails.next(module.getID());
|
queueModuleDetails.next(module.getID());
|
||||||
}, errorCallback);
|
}, queueModuleDetails.check(module.getID(), errorCallback));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -348,7 +354,7 @@ public class KVVModuleList extends HTTPService {
|
|||||||
module.gradebook = success;
|
module.gradebook = success;
|
||||||
callback.onResponse(module);
|
callback.onResponse(module);
|
||||||
queueModuleDetails.next(module.getID());
|
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 {
|
public class Modules implements Iterable<Modules.Module>, Serializable {
|
||||||
private final SortedModuleList list;
|
private final SortedModuleList list;
|
||||||
private String latestSemester = null;
|
private String latestSemester = null;
|
||||||
|
private String username = null;
|
||||||
private transient Logger log = new Logger(this);
|
private transient Logger log = new Logger(this);
|
||||||
private static final String FILE_NAME = "ModuleListSaving";
|
private static final String FILE_NAME = "ModuleListSaving";
|
||||||
|
|
||||||
public Modules() {
|
public Modules(String username) {
|
||||||
|
this.username = username;
|
||||||
this.list = new SortedModuleList();
|
this.list = new SortedModuleList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -174,6 +176,10 @@ public class Modules implements Iterable<Modules.Module>, Serializable {
|
|||||||
context.deleteFile(FILE_NAME);
|
context.deleteFile(FILE_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
public class Module implements Serializable {
|
public class Module implements Serializable {
|
||||||
public final String semester;
|
public final String semester;
|
||||||
public final HashSet<String> lvNumber;
|
public final HashSet<String> lvNumber;
|
||||||
|
|||||||
@@ -3,12 +3,14 @@ package de.sebse.fuplanner.tools;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
|
||||||
|
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.NetworkErrorCallback;
|
import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
|
||||||
|
|
||||||
public class AsyncQueue {
|
public class AsyncQueue {
|
||||||
private HashMap<String, LinkedList<AsyncQueueCallback>> mQueues = new HashMap<>();
|
private HashMap<String, LinkedList<AsyncQueueCallback>> mQueues = new HashMap<>();
|
||||||
private HashMap<String, Boolean> mRunnings = new HashMap<>();
|
private HashMap<String, Boolean> mRunnings = new HashMap<>();
|
||||||
|
private Logger log = new Logger(this);
|
||||||
|
|
||||||
public void add(String hash, AsyncQueueCallback callback) {
|
public void add(String hash, AsyncQueueCallback callback) {
|
||||||
if (isRunning(hash))
|
if (isRunning(hash))
|
||||||
@@ -20,6 +22,7 @@ public class AsyncQueue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void next(String hash) {
|
public void next(String hash) {
|
||||||
|
log.d("next", hash);
|
||||||
AsyncQueueCallback callback = getQueue(hash).pollFirst();
|
AsyncQueueCallback callback = getQueue(hash).pollFirst();
|
||||||
if (callback == null)
|
if (callback == null)
|
||||||
setRunning(hash, false);
|
setRunning(hash, false);
|
||||||
|
|||||||
Reference in New Issue
Block a user