Blackboard "Refresh failed" Fix

This commit is contained in:
Caesar2011
2019-02-07 21:53:40 +01:00
parent b8be51d6fb
commit a6b5469058
4 changed files with 29 additions and 7 deletions

View File

@@ -2,6 +2,8 @@ package de.sebse.fuplanner.services.kvv;
import android.content.Context; import android.content.Context;
import com.android.volley.NetworkResponse;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.HashMap; import java.util.HashMap;
@@ -56,7 +58,13 @@ public class Modules {
public ModulesList list() { public ModulesList list() {
if (mList == null) { if (mList == null) {
mList = new ModulesList(mLogin, mListener, context); mList = new ModulesList(mLogin, mListener, context);
mList.addErrorListener("Modules", error -> mListener.onKVVNetworkResponse(error.networkResponse)); mList.addErrorListener("Modules", error -> {
NetworkResponse networkResponse = error.networkResponse;
if ((networkResponse.statusCode == 400 || networkResponse.statusCode == 403) && networkResponse.headers.containsKey("X-Blackboard-product"))
mListener.onKVVNetworkResponse(null);
else
mListener.onKVVNetworkResponse(networkResponse);
});
mList.addSuccessListener("Modules", success -> mListener.onKVVNetworkResponse(null)); mList.addSuccessListener("Modules", success -> mListener.onKVVNetworkResponse(null));
} }
return mList; return mList;
@@ -68,7 +76,13 @@ public class Modules {
Part o = mAddons.get(addon); Part o = mAddons.get(addon);
if (o == null) { if (o == null) {
o = creatorInterface.create(); o = creatorInterface.create();
o.addErrorListener("Modules", error -> mListener.onKVVNetworkResponse(error.networkResponse)); o.addErrorListener("Modules", error -> {
NetworkResponse networkResponse = error.networkResponse;
if ((networkResponse.statusCode == 400 || networkResponse.statusCode == 403) && networkResponse.headers.containsKey("X-Blackboard-product"))
mListener.onKVVNetworkResponse(null);
else
mListener.onKVVNetworkResponse(networkResponse);
});
o.addSuccessListener("Modules", success -> mListener.onKVVNetworkResponse(null)); o.addSuccessListener("Modules", success -> mListener.onKVVNetworkResponse(null));
mAddons.put(addon, o); mAddons.put(addon, o);
} }

View File

@@ -134,6 +134,11 @@ public class ModulesAnnouncements extends PartModules<ArrayList<Announcement>> {
} }
callback.onResponse(announcements); callback.onResponse(announcements);
}, error -> errorCallback.onError(new NetworkError(101213, error.networkResponse.statusCode, "Cannot get announcements!"))); }, error -> {
if (error.networkResponse.statusCode == 400)
callback.onResponse(new ArrayList<>());
else
errorCallback.onError(new NetworkError(101213, error.networkResponse.statusCode, "Cannot get announcements!"));
});
} }
} }

View File

@@ -8,10 +8,8 @@ import org.json.JSONObject;
import java.util.ArrayList; import java.util.ArrayList;
import de.sebse.fuplanner.services.kvv.types.Announcement;
import de.sebse.fuplanner.services.kvv.types.Grade; import de.sebse.fuplanner.services.kvv.types.Grade;
import de.sebse.fuplanner.services.kvv.types.Modules; import de.sebse.fuplanner.services.kvv.types.Modules;
import de.sebse.fuplanner.tools.UtilsDate;
import de.sebse.fuplanner.tools.network.NetworkCallback; import de.sebse.fuplanner.tools.network.NetworkCallback;
import de.sebse.fuplanner.tools.network.NetworkError; import de.sebse.fuplanner.tools.network.NetworkError;
import de.sebse.fuplanner.tools.network.NetworkErrorCallback; import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
@@ -147,6 +145,11 @@ public class ModulesGradebook extends PartModules<ArrayList<Grade>> {
} }
callback.onResponse(result); callback.onResponse(result);
}, error -> errorCallback.onError(new NetworkError(101516, error.networkResponse.statusCode, "Cannot get gradebook columns!"))); }, error -> errorCallback.onError(new NetworkError(101516, error.networkResponse.statusCode, "Cannot get gradebook columns!")));
}, error -> errorCallback.onError(new NetworkError(101517, error.networkResponse.statusCode, "Cannot get gradebook entries!"))); }, error -> {
if (error.networkResponse.statusCode == 403)
callback.onResponse(new ArrayList<>());
else
errorCallback.onError(new NetworkError(101517, error.networkResponse.statusCode, "Cannot get gradebook entries!"));
});
} }
} }

View File

@@ -225,7 +225,7 @@ public class ModulesResources extends PartModules<ArrayList<Resource>> {
} }
} }
}, error -> { }, error -> {
if (!subRequest || error.networkResponse.statusCode != 403) { if (error.networkResponse.statusCode != 403) {
errorCallback.onError(new NetworkError(101613, error.networkResponse.statusCode, "Cannot get resources!")); errorCallback.onError(new NetworkError(101613, error.networkResponse.statusCode, "Cannot get resources!"));
} else { } else {
callback.onResponse(new ArrayList<>()); callback.onResponse(new ArrayList<>());