diff --git a/lib/build.gradle b/lib/build.gradle index eb0af0b3c8314340ae6d9a6d417cca6205812868..9aa9ed7e1b300ddb1007649c1192436c4520f968 100644 --- a/lib/build.gradle +++ b/lib/build.gradle @@ -18,7 +18,7 @@ group = 'foundation.e.lib' def versionMajor = 1 def versionMinor = 0 -def versionPatch = 4 +def versionPatch = 5 def releasePatch = "alpha" def libName = "Android-SingleSignOn" diff --git a/lib/src/main/java/com/nextcloud/android/sso/api/AidlNetworkRequest.java b/lib/src/main/java/com/nextcloud/android/sso/api/AidlNetworkRequest.java index 67b8a9b87f9fa9d53394811000f433bf0b972adc..1454d1cf1d89ec5932f8f934e172f69a8f02191e 100644 --- a/lib/src/main/java/com/nextcloud/android/sso/api/AidlNetworkRequest.java +++ b/lib/src/main/java/com/nextcloud/android/sso/api/AidlNetworkRequest.java @@ -128,6 +128,23 @@ public class AidlNetworkRequest extends NetworkRequest { connectApiWithBackoff(); } + @Override + protected boolean isConnected() { + boolean result = super.isConnected() && mService != null; + if (!result) { + return false; + } + + try { + result = mService.asBinder().pingBinder(); + } catch (Exception e) { + Log.e(TAG, "Not connected to remote object", e); + result = false; + } + + return result; + } + public void stop() { super.stop(); diff --git a/lib/src/main/java/com/nextcloud/android/sso/api/NetworkRequest.java b/lib/src/main/java/com/nextcloud/android/sso/api/NetworkRequest.java index 1eac226dbf516b7fbd5279cee3b27b96fa4d1dc2..0aa884b76d555dede5df94718cb9bdc69f138623 100644 --- a/lib/src/main/java/com/nextcloud/android/sso/api/NetworkRequest.java +++ b/lib/src/main/java/com/nextcloud/android/sso/api/NetworkRequest.java @@ -34,6 +34,10 @@ public abstract class NetworkRequest { } } + protected boolean isConnected() { + return !mDestroyed; + } + protected abstract Response performNetworkRequestV2(NextcloudRequest request, InputStream requestBodyInputStream) throws Exception; protected void connectApiWithBackoff() { diff --git a/lib/src/main/java/com/nextcloud/android/sso/api/NextcloudAPI.java b/lib/src/main/java/com/nextcloud/android/sso/api/NextcloudAPI.java index 189b5dd3fe41000770d1c721245b85b349fb8d36..d074da802bedad7b4e89710d9f44d6a0d99d2f49 100644 --- a/lib/src/main/java/com/nextcloud/android/sso/api/NextcloudAPI.java +++ b/lib/src/main/java/com/nextcloud/android/sso/api/NextcloudAPI.java @@ -107,6 +107,10 @@ public class NextcloudAPI { networkRequest.stop(); } + public boolean isConnected() { + return networkRequest.isConnected(); + } + public Observable> performRequestObservableV2(final Type type, final NextcloudRequest request) { return Observable.fromPublisher( s -> { try {