diff --git a/ncsmsgo/ncsmsgo.aar b/ncsmsgo/ncsmsgo.aar index f74d3d5..7084674 100644 Binary files a/ncsmsgo/ncsmsgo.aar and b/ncsmsgo/ncsmsgo.aar differ diff --git a/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncSMSSync.java b/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncSMSSync.java index 507ec8c..77ca15a 100644 --- a/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncSMSSync.java +++ b/src/main/java/fr/unix_experience/owncloud_sms/engine/ASyncSMSSync.java @@ -111,6 +111,8 @@ public interface ASyncSMSSync { for (Account element : myAccountList) { try { OCSMSOwnCloudClient _client = new OCSMSOwnCloudClient(_context, element); + // Fetch API version first to do some early verifications + Log.i(ASyncSMSSync.TAG, "Server API version: " + _client.getServerAPIVersion()); _client.doPushRequest(smsBuffer); OCSMSNotificationUI.cancel(_context); } catch (IllegalStateException e) { // Fail to read account data diff --git a/src/main/java/fr/unix_experience/owncloud_sms/engine/OCHttpClient.java b/src/main/java/fr/unix_experience/owncloud_sms/engine/OCHttpClient.java index 3095d12..acc2990 100644 --- a/src/main/java/fr/unix_experience/owncloud_sms/engine/OCHttpClient.java +++ b/src/main/java/fr/unix_experience/owncloud_sms/engine/OCHttpClient.java @@ -47,6 +47,7 @@ import fr.unix_experience.owncloud_sms.exceptions.OCSyncException; import fr.unix_experience.owncloud_sms.providers.AndroidVersionProvider; import ncsmsgo.SmsBuffer; import ncsmsgo.SmsHTTPClient; +import ncsmsgo.SmsIDListResponse; import ncsmsgo.SmsPhoneListResponse; import ncsmsgo.SmsPushResponse; @@ -118,8 +119,11 @@ public class OCHttpClient { } } - Pair getAllSmsIds() throws OCSyncException { - return get(_smsHttpClient.getAllSmsIdsCall(), false); + Pair getAllSmsIds() throws OCSyncException { + SmsIDListResponse silr = _smsHttpClient.doGetSmsIDList(); + int httpStatus = (int) _smsHttpClient.getLastHTTPStatus(); + handleEarlyHTTPStatus(httpStatus); + return new Pair<>(httpStatus, silr); } // Perform the GoLang doVersionCall and handle return diff --git a/src/main/java/fr/unix_experience/owncloud_sms/engine/OCSMSOwnCloudClient.java b/src/main/java/fr/unix_experience/owncloud_sms/engine/OCSMSOwnCloudClient.java index 640e6d0..d69459e 100644 --- a/src/main/java/fr/unix_experience/owncloud_sms/engine/OCSMSOwnCloudClient.java +++ b/src/main/java/fr/unix_experience/owncloud_sms/engine/OCSMSOwnCloudClient.java @@ -33,6 +33,7 @@ import fr.unix_experience.owncloud_sms.enums.OCSyncErrorType; import fr.unix_experience.owncloud_sms.exceptions.OCSyncException; import fr.unix_experience.owncloud_sms.prefs.OCSMSSharedPrefs; import ncsmsgo.SmsBuffer; +import ncsmsgo.SmsIDListResponse; import ncsmsgo.SmsPhoneListResponse; import ncsmsgo.SmsPushResponse; @@ -94,7 +95,7 @@ public class OCSMSOwnCloudClient { private void doPushRequestV1(SmsBuffer smsBuffer) throws OCSyncException { if (smsBuffer == null) { - Pair response = _http.getAllSmsIds(); + Pair response = _http.getAllSmsIds(); if (response.second == null) { return; }