Renamed forceOverride to forceRefresh; refeshing added to public api

This commit is contained in:
Caesar2011
2018-07-04 19:16:37 +02:00
parent c186e85533
commit e334461a1c
3 changed files with 54 additions and 48 deletions

View File

@@ -82,13 +82,13 @@ public class ModDetailOverviewFragment extends Fragment {
// Getting SwipeContainerLayout
swipeLayout = view.findViewById(R.id.swipe_container);
// Adding Listener
swipeLayout.setOnRefreshListener(this::refresh);
refresh();
swipeLayout.setOnRefreshListener(() -> refresh(true));
refresh(false);
return view;
}
private void refresh() {
private void refresh(boolean forceRefresh) {
if (getActivity() != null) {
KVV kvv = ((MainActivity) getActivity()).getKVV();
kvv.getModuleList((Modules success) -> {
@@ -99,7 +99,7 @@ public class ModDetailOverviewFragment extends Fragment {
kvv.getModuleDetails(module, module1 -> {
adapter.setModule();
}, error -> log.e(error));
}, error -> log.e(error));
}, error -> log.e(error), forceRefresh);
}
swipeLayout.setRefreshing(false);
}

View File

@@ -46,68 +46,92 @@ public class KVV {
}
public void getModuleList(final NetworkCallback<Modules> callback, final NetworkErrorCallback error) {
getModuleList(callback, error, false);
}
public void getModuleList(final NetworkCallback<Modules> callback, final NetworkErrorCallback error, boolean forceRefresh) {
this.getLastToken(token -> {
KVVModuleList modules = (KVVModuleList) addons.get("modules");
if (modules == null) {
modules = new KVVModuleList(KVV.this.context, token);
addons.put("modules", modules);
}
modules.getModuleList(callback, error);
modules.getModuleList(callback, error, forceRefresh);
});
}
public void getModuleDetails(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback error) {
getModuleDetails(module, callback, error, false);
}
public void getModuleDetails(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback error, boolean forceRefresh) {
this.getLastToken(token -> {
KVVModuleList modules = (KVVModuleList) addons.get("modules");
if (modules == null) {
modules = new KVVModuleList(KVV.this.context, token);
addons.put("modules", modules);
}
modules.getModuleDetails(module, callback, error);
modules.getModuleDetails(module, callback, error, forceRefresh);
});
}
public void getModuleAnnouncements(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback error) {
getModuleAnnouncements(module, callback, error, false);
}
public void getModuleAnnouncements(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback error, boolean forceRefresh) {
this.getLastToken(token -> {
KVVModuleList modules = (KVVModuleList) addons.get("modules");
if (modules == null) {
modules = new KVVModuleList(KVV.this.context, token);
addons.put("modules", modules);
}
modules.getAnnouncements(module, callback, error);
modules.getAnnouncements(module, callback, error, forceRefresh);
});
}
public void getModuleAssignments(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback error) {
getModuleAssignments(module, callback, error, false);
}
public void getModuleAssignments(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback error, boolean forceRefresh) {
this.getLastToken(token -> {
KVVModuleList modules = (KVVModuleList) addons.get("modules");
if (modules == null) {
modules = new KVVModuleList(KVV.this.context, token);
addons.put("modules", modules);
}
modules.getAssignments(module, callback, error);
modules.getAssignments(module, callback, error, forceRefresh);
});
}
public void getModuleEvents(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback error) {
getModuleEvents(module, callback, error, false);
}
public void getModuleEvents(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback error, boolean forceRefresh) {
this.getLastToken(token -> {
KVVModuleList modules = (KVVModuleList) addons.get("modules");
if (modules == null) {
modules = new KVVModuleList(KVV.this.context, token);
addons.put("modules", modules);
}
modules.getEvents(module, callback, error);
modules.getEvents(module, callback, error, forceRefresh);
});
}
public void getModuleGradebook(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback error) {
getModuleGradebook(module, callback, error, false);
}
public void getModuleGradebook(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback error, boolean forceRefresh) {
this.getLastToken(token -> {
KVVModuleList modules = (KVVModuleList) addons.get("modules");
if (modules == null) {
modules = new KVVModuleList(KVV.this.context, token);
addons.put("modules", modules);
}
modules.getGradebook(module, callback, error);
modules.getGradebook(module, callback, error, forceRefresh);
});
}

View File

@@ -52,13 +52,12 @@ public class KVVModuleList extends HTTPService {
}
}
public void getModuleList(final NetworkCallback<Modules> callback, final NetworkErrorCallback errorCallback) {
getModuleList(callback, errorCallback, false);
}
public void getModuleList(final NetworkCallback<Modules> callback, final NetworkErrorCallback errorCallback, boolean forceOverride) {
public void getModuleList(final NetworkCallback<Modules> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
queueModuleDetails.add("list", () -> {
if (this.moduleList != null && !forceOverride) {
if (this.moduleList != null && !forceRefresh) {
callback.onResponse(this.moduleList);
queueModuleDetails.next("list");
return;
@@ -124,8 +123,8 @@ public class KVVModuleList extends HTTPService {
this.moduleList.save(context);
}
public void getModule(int index, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback) {
this.getModuleList(success -> callback.onResponse(success.get(index)), errorCallback);
public void getModule(int index, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
this.getModuleList(success -> callback.onResponse(success.get(index)), errorCallback, forceRefresh);
}
@@ -133,11 +132,7 @@ public class KVVModuleList extends HTTPService {
public void getModuleDetails(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback) {
this.getModuleDetails(module, callback, errorCallback, false);
}
public void getModuleDetails(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceOverride) {
public void getModuleDetails(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
AtomicInteger returns = new AtomicInteger(0);
AtomicReference<NetworkError> lastError = new AtomicReference<>(null);
final int items = 4;
@@ -158,10 +153,10 @@ public class KVVModuleList extends HTTPService {
}
};
Runnable[] methods = { // UPDATE VARIABLE items ABOVE
() -> this.getAssignments(module, successCb, errorCb, forceOverride),
() -> this.getEvents(module, successCb, errorCb, forceOverride),
() -> this.getAnnouncements(module, successCb, errorCb, forceOverride),
() -> this.getGradebook(module, successCb, errorCb, forceOverride)
() -> this.getAssignments(module, successCb, errorCb, forceRefresh),
() -> this.getEvents(module, successCb, errorCb, forceRefresh),
() -> this.getAnnouncements(module, successCb, errorCb, forceRefresh),
() -> this.getGradebook(module, successCb, errorCb, forceRefresh)
};
//noinspection ConstantConditions
if (methods.length != items) throw new AssertionError();
@@ -173,13 +168,11 @@ public class KVVModuleList extends HTTPService {
public void getAnnouncements(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback) {
getAnnouncements(module, callback, errorCallback, false);
}
public void getAnnouncements(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceOverride) {
public void getAnnouncements(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
queueModuleDetails.add(module.getID(), () -> {
if (module.announcements != null && !forceOverride) {
if (module.announcements != null && !forceRefresh) {
callback.onResponse(module);
queueModuleDetails.next(module.getID());
return;
@@ -227,13 +220,10 @@ public class KVVModuleList extends HTTPService {
public void getAssignments(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback) {
getAssignments(module, callback, errorCallback, false);
}
public void getAssignments(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceOverride) {
public void getAssignments(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
queueModuleDetails.add(module.getID(), () -> {
if (module.assignments != null && !forceOverride) {
if (module.assignments != null && !forceRefresh) {
callback.onResponse(module);
queueModuleDetails.next(module.getID());
return;
@@ -295,13 +285,9 @@ public class KVVModuleList extends HTTPService {
public void getEvents(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback) {
getEvents(module, callback, errorCallback, false);
}
public void getEvents(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceOverride) {
public void getEvents(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
queueModuleDetails.add(module.getID(), () -> {
if (module.events != null && !forceOverride) {
if (module.events != null && !forceRefresh) {
callback.onResponse(module);
queueModuleDetails.next(module.getID());
return;
@@ -350,13 +336,9 @@ public class KVVModuleList extends HTTPService {
public void getGradebook(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback) {
getGradebook(module, callback, errorCallback, false);
}
public void getGradebook(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceOverride) {
public void getGradebook(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
queueModuleDetails.add(module.getID(), () -> {
if (module.gradebook != null && !forceOverride) {
if (module.gradebook != null && !forceRefresh) {
callback.onResponse(module);
queueModuleDetails.next(module.getID());
return;