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 com.android.volley.NetworkResponse;
import org.jetbrains.annotations.NotNull;
import java.util.HashMap;
@@ -56,7 +58,13 @@ public class Modules {
public ModulesList list() {
if (mList == null) {
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));
}
return mList;
@@ -68,7 +76,13 @@ public class Modules {
Part o = mAddons.get(addon);
if (o == null) {
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));
mAddons.put(addon, o);
}

View File

@@ -134,6 +134,11 @@ public class ModulesAnnouncements extends PartModules<ArrayList<Announcement>> {
}
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 de.sebse.fuplanner.services.kvv.types.Announcement;
import de.sebse.fuplanner.services.kvv.types.Grade;
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.NetworkError;
import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
@@ -147,6 +145,11 @@ public class ModulesGradebook extends PartModules<ArrayList<Grade>> {
}
callback.onResponse(result);
}, 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 -> {
if (!subRequest || error.networkResponse.statusCode != 403) {
if (error.networkResponse.statusCode != 403) {
errorCallback.onError(new NetworkError(101613, error.networkResponse.statusCode, "Cannot get resources!"));
} else {
callback.onResponse(new ArrayList<>());