From a697e7ee516ff7aa9565726ecb3da521f3ccd26d Mon Sep 17 00:00:00 2001 From: Fahim Salam Chowdhury Date: Tue, 13 Jun 2023 13:12:35 +0600 Subject: [PATCH 1/2] 7007-enable_service_isConnected_api issue: https://gitlab.e.foundation/e/backlog/-/issues/7007 To check if the binding service is alive or not, we need to open isConnected in NextcloudAPI, which in the background calls the `pingBinder` of the IBinder. --- lib/build.gradle | 2 +- .../android/sso/api/AidlNetworkRequest.java | 17 +++++++++++++++++ .../android/sso/api/NetworkRequest.java | 4 ++++ .../nextcloud/android/sso/api/NextcloudAPI.java | 4 ++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/lib/build.gradle b/lib/build.gradle index eb0af0b3..9aa9ed7e 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 67b8a9b8..822ee5b3 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, 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 1eac226d..0aa884b7 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 189b5dd3..d074da80 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 { -- GitLab From ab7a3229a80e5f4b39a56fca721b4b0d52fd3abe Mon Sep 17 00:00:00 2001 From: Jonathan Klee Date: Tue, 13 Jun 2023 11:11:47 +0000 Subject: [PATCH 2/2] Apply 1 suggestion(s) to 1 file(s) --- .../java/com/nextcloud/android/sso/api/AidlNetworkRequest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 822ee5b3..1454d1cf 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 @@ -138,7 +138,7 @@ public class AidlNetworkRequest extends NetworkRequest { try { result = mService.asBinder().pingBinder(); } catch (Exception e) { - Log.e(TAG, e); + Log.e(TAG, "Not connected to remote object", e); result = false; } -- GitLab