From ccbed76a35138e2d11c6593ba9dba6950a436dac Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:01:24 +0300 Subject: [PATCH 01/13] Refactor: Reformat taxonomy xmlrpc client --- .../xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 49 +++++++++---------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index 3f5d6946d6..2056e482a5 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -39,10 +39,11 @@ @Singleton public class TaxonomyXMLRPCClient extends BaseXMLRPCClient { - @Inject public TaxonomyXMLRPCClient(Dispatcher dispatcher, - @Named("custom-ssl") RequestQueue requestQueue, - UserAgent userAgent, - HTTPAuthManager httpAuthManager) { + @Inject public TaxonomyXMLRPCClient( + Dispatcher dispatcher, + @Named("custom-ssl") RequestQueue requestQueue, + UserAgent userAgent, + HTTPAuthManager httpAuthManager) { super(dispatcher, requestQueue, userAgent, httpAuthManager); } @@ -62,22 +63,22 @@ public void fetchTerm(final TermModel term, final SiteModel site, final Taxonomy new Listener() { @Override public void onResponse(Object response) { - if (response != null && response instanceof Map) { - TermModel termModel = termResponseObjectToTermModel(response, site); - FetchTermResponsePayload payload; - if (termModel != null) { - if (origin == TaxonomyAction.PUSH_TERM) { - termModel.setId(term.getId()); + if (response != null && response instanceof Map) { + TermModel termModel = termResponseObjectToTermModel(response, site); + FetchTermResponsePayload payload; + if (termModel != null) { + if (origin == TaxonomyAction.PUSH_TERM) { + termModel.setId(term.getId()); + } + payload = new FetchTermResponsePayload(termModel, site); + } else { + payload = new FetchTermResponsePayload(term, site); + payload.error = new TaxonomyError(TaxonomyErrorType.INVALID_RESPONSE); } - payload = new FetchTermResponsePayload(termModel, site); - } else { - payload = new FetchTermResponsePayload(term, site); - payload.error = new TaxonomyError(TaxonomyErrorType.INVALID_RESPONSE); - } - payload.origin = origin; + payload.origin = origin; - mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermAction(payload)); - } + mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermAction(payload)); + } } }, new BaseErrorListener() { @@ -101,8 +102,7 @@ public void onErrorResponse(@NonNull BaseNetworkError error) { payload.origin = origin; mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermAction(payload)); } - } - ); + }); add(request); } @@ -148,8 +148,7 @@ public void onErrorResponse(@NonNull BaseNetworkError error) { FetchTermsResponsePayload payload = new FetchTermsResponsePayload(taxonomyError, taxonomyName); mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermsAction(payload)); } - } - ); + }); add(request); } @@ -203,8 +202,7 @@ public void onErrorResponse(@NonNull BaseNetworkError error) { payload.error = taxonomyError; mDispatcher.dispatch(TaxonomyActionBuilder.newPushedTermAction(payload)); } - } - ); + }); request.disableRetries(); add(request); @@ -241,8 +239,7 @@ public void onErrorResponse(@NonNull BaseNetworkError error) { payload.error = taxonomyError; mDispatcher.dispatch(TaxonomyActionBuilder.newDeletedTermAction(payload)); } - } - ); + }); request.disableRetries(); add(request); From 345c8a824cada60ee8c3df6966c1a7f49f39393a Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:16:13 +0300 Subject: [PATCH 02/13] Analysis: Create missing switch cases for taxonomy xmlrpc client errors Error: "'switch' statement on enum type 'org.wordpress.android.fluxc.network.BaseRequest.GenericErrorType' misses cases: 'TIMEOUT', 'NO_CONNECTION', 'NETWORK_ERROR', 'NOT_FOUND', 'CENSORED', 'SERVER_ERROR', 'INVALID_SSL_CERTIFICATE', 'HTTP_AUTH_ERROR', 'INVALID_RESPONSE', 'NOT_AUTHENTICATED', 'PARSE_ERROR' and 'UNKNOWN'" --- .../xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 76 +++++++++---------- 1 file changed, 34 insertions(+), 42 deletions(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index 2056e482a5..41f453e721 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -88,17 +88,7 @@ public void onErrorResponse(@NonNull BaseNetworkError error) { // 403 - "Invalid taxonomy." // 404 - "Invalid term ID." FetchTermResponsePayload payload = new FetchTermResponsePayload(term, site); - // TODO: Check the error message and flag this as INVALID_TAXONOMY or UNKNOWN_TERM - // Convert GenericErrorType to TaxonomyErrorType where applicable - TaxonomyError taxonomyError; - switch (error.type) { - case AUTHORIZATION_REQUIRED: - taxonomyError = new TaxonomyError(TaxonomyErrorType.UNAUTHORIZED, error.message); - break; - default: - taxonomyError = new TaxonomyError(TaxonomyErrorType.GENERIC_ERROR, error.message); - } - payload.error = taxonomyError; + payload.error = getTaxonomyError(error); payload.origin = origin; mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermAction(payload)); } @@ -135,17 +125,10 @@ public void onResponse(Object[] response) { public void onErrorResponse(@NonNull BaseNetworkError error) { // Possible non-generic errors: // 403 - "Invalid taxonomy." - // TODO: Check the error message and flag this as INVALID_TAXONOMY if applicable - // Convert GenericErrorType to TaxonomyErrorType where applicable - TaxonomyError taxonomyError; - switch (error.type) { - case AUTHORIZATION_REQUIRED: - taxonomyError = new TaxonomyError(TaxonomyErrorType.UNAUTHORIZED, error.message); - break; - default: - taxonomyError = new TaxonomyError(TaxonomyErrorType.GENERIC_ERROR, error.message); - } - FetchTermsResponsePayload payload = new FetchTermsResponsePayload(taxonomyError, taxonomyName); + FetchTermsResponsePayload payload = new FetchTermsResponsePayload( + getTaxonomyError(error), + taxonomyName + ); mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermsAction(payload)); } }); @@ -189,17 +172,7 @@ public void onErrorResponse(@NonNull BaseNetworkError error) { // 403 - "The term name cannot be empty." // 500 - "A term with the name provided already exists with this parent." RemoteTermPayload payload = new RemoteTermPayload(term, site); - // TODO: Check the error message and flag this as one of the above specific errors if applicable - // Convert GenericErrorType to PostErrorType where applicable - TaxonomyError taxonomyError; - switch (error.type) { - case AUTHORIZATION_REQUIRED: - taxonomyError = new TaxonomyError(TaxonomyErrorType.UNAUTHORIZED, error.message); - break; - default: - taxonomyError = new TaxonomyError(TaxonomyErrorType.GENERIC_ERROR, error.message); - } - payload.error = taxonomyError; + payload.error = getTaxonomyError(error); mDispatcher.dispatch(TaxonomyActionBuilder.newPushedTermAction(payload)); } }); @@ -228,15 +201,7 @@ public void onResponse(Object response) { @Override public void onErrorResponse(@NonNull BaseNetworkError error) { RemoteTermPayload payload = new RemoteTermPayload(term, site); - TaxonomyError taxonomyError; - switch (error.type) { - case AUTHORIZATION_REQUIRED: - taxonomyError = new TaxonomyError(TaxonomyErrorType.UNAUTHORIZED, error.message); - break; - default: - taxonomyError = new TaxonomyError(TaxonomyErrorType.GENERIC_ERROR, error.message); - } - payload.error = taxonomyError; + payload.error = getTaxonomyError(error); mDispatcher.dispatch(TaxonomyActionBuilder.newDeletedTermAction(payload)); } }); @@ -315,4 +280,31 @@ private static Map termModelToContentStruct(TermModel term) { return contentStruct; } + + // TODO: Check the error message and flag this as a specific error if applicable. + // Convert GenericErrorType to TaxonomyErrorType where applicable + @NonNull + private TaxonomyError getTaxonomyError(@NonNull BaseNetworkError error) { + TaxonomyError taxonomyError; + switch (error.type) { + case AUTHORIZATION_REQUIRED: + taxonomyError = new TaxonomyError(TaxonomyErrorType.UNAUTHORIZED, error.message); + break; + case TIMEOUT: + case NO_CONNECTION: + case NETWORK_ERROR: + case NOT_FOUND: + case CENSORED: + case SERVER_ERROR: + case INVALID_SSL_CERTIFICATE: + case HTTP_AUTH_ERROR: + case INVALID_RESPONSE: + case NOT_AUTHENTICATED: + case PARSE_ERROR: + case UNKNOWN: + default: + taxonomyError = new TaxonomyError(TaxonomyErrorType.GENERIC_ERROR, error.message); + } + return taxonomyError; + } } From fc6f0d6ad6b19bd17e7516ac4e5697ed021232cd Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:17:15 +0300 Subject: [PATCH 03/13] Refactor: Replace anonymous classes with lambda --- .../xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 145 ++++++++---------- 1 file changed, 60 insertions(+), 85 deletions(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index 41f453e721..7bc8c5561e 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -15,7 +15,6 @@ import org.wordpress.android.fluxc.model.SiteModel; import org.wordpress.android.fluxc.model.TermModel; import org.wordpress.android.fluxc.model.TermsModel; -import org.wordpress.android.fluxc.network.BaseRequest.BaseErrorListener; import org.wordpress.android.fluxc.network.BaseRequest.BaseNetworkError; import org.wordpress.android.fluxc.network.HTTPAuthManager; import org.wordpress.android.fluxc.network.UserAgent; @@ -60,38 +59,32 @@ public void fetchTerm(final TermModel term, final SiteModel site, final Taxonomy params.add(term.getRemoteTermId()); final XMLRPCRequest request = new XMLRPCRequest(site.getXmlRpcUrl(), XMLRPC.GET_TERM, params, - new Listener() { - @Override - public void onResponse(Object response) { - if (response != null && response instanceof Map) { - TermModel termModel = termResponseObjectToTermModel(response, site); - FetchTermResponsePayload payload; - if (termModel != null) { - if (origin == TaxonomyAction.PUSH_TERM) { - termModel.setId(term.getId()); - } - payload = new FetchTermResponsePayload(termModel, site); - } else { - payload = new FetchTermResponsePayload(term, site); - payload.error = new TaxonomyError(TaxonomyErrorType.INVALID_RESPONSE); + (Listener) response -> { + if (response != null && response instanceof Map) { + TermModel termModel = termResponseObjectToTermModel(response, site); + FetchTermResponsePayload payload; + if (termModel != null) { + if (origin == TaxonomyAction.PUSH_TERM) { + termModel.setId(term.getId()); } - payload.origin = origin; - - mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermAction(payload)); + payload = new FetchTermResponsePayload(termModel, site); + } else { + payload = new FetchTermResponsePayload(term, site); + payload.error = new TaxonomyError(TaxonomyErrorType.INVALID_RESPONSE); } - } - }, - new BaseErrorListener() { - @Override - public void onErrorResponse(@NonNull BaseNetworkError error) { - // Possible non-generic errors: - // 403 - "Invalid taxonomy." - // 404 - "Invalid term ID." - FetchTermResponsePayload payload = new FetchTermResponsePayload(term, site); - payload.error = getTaxonomyError(error); payload.origin = origin; + mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermAction(payload)); } + }, + error -> { + // Possible non-generic errors: + // 403 - "Invalid taxonomy." + // 404 - "Invalid term ID." + FetchTermResponsePayload payload = new FetchTermResponsePayload(term, site); + payload.error = getTaxonomyError(error); + payload.origin = origin; + mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermAction(payload)); }); add(request); @@ -105,32 +98,26 @@ public void fetchTerms(final SiteModel site, final String taxonomyName) { params.add(taxonomyName); final XMLRPCRequest request = new XMLRPCRequest(site.getXmlRpcUrl(), XMLRPC.GET_TERMS, params, - new Listener() { - @Override - public void onResponse(Object[] response) { - TermsModel terms = termsResponseToTermsModel(response, site); + response -> { + TermsModel terms = termsResponseToTermsModel(response, site); - FetchTermsResponsePayload payload = new FetchTermsResponsePayload(terms, site, taxonomyName); + FetchTermsResponsePayload payload = new FetchTermsResponsePayload(terms, site, taxonomyName); - if (terms != null) { - mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermsAction(payload)); - } else { - payload.error = new TaxonomyError(TaxonomyErrorType.INVALID_RESPONSE); - mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermsAction(payload)); - } - } - }, - new BaseErrorListener() { - @Override - public void onErrorResponse(@NonNull BaseNetworkError error) { - // Possible non-generic errors: - // 403 - "Invalid taxonomy." - FetchTermsResponsePayload payload = new FetchTermsResponsePayload( - getTaxonomyError(error), - taxonomyName - ); + if (terms != null) { + mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermsAction(payload)); + } else { + payload.error = new TaxonomyError(TaxonomyErrorType.INVALID_RESPONSE); mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermsAction(payload)); } + }, + error -> { + // Possible non-generic errors: + // 403 - "Invalid taxonomy." + FetchTermsResponsePayload payload = new FetchTermsResponsePayload( + getTaxonomyError(error), + taxonomyName + ); + mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermsAction(payload)); }); add(request); @@ -151,30 +138,24 @@ public void pushTerm(final TermModel term, final SiteModel site) { XMLRPC method = updatingExistingTerm ? XMLRPC.EDIT_TERM : XMLRPC.NEW_TERM; final XMLRPCRequest request = new XMLRPCRequest(site.getXmlRpcUrl(), method, params, - new Listener() { - @Override - public void onResponse(Object response) { - // `term_id` is only returned for XMLRPC.NEW_TERM - if (!updatingExistingTerm) { - term.setRemoteTermId(Long.valueOf((String) response)); - } - - RemoteTermPayload payload = new RemoteTermPayload(term, site); - mDispatcher.dispatch(TaxonomyActionBuilder.newPushedTermAction(payload)); + (Listener) response -> { + // `term_id` is only returned for XMLRPC.NEW_TERM + if (!updatingExistingTerm) { + term.setRemoteTermId(Long.valueOf((String) response)); } + + RemoteTermPayload payload = new RemoteTermPayload(term, site); + mDispatcher.dispatch(TaxonomyActionBuilder.newPushedTermAction(payload)); }, - new BaseErrorListener() { - @Override - public void onErrorResponse(@NonNull BaseNetworkError error) { - // Possible non-generic errors: - // 403 - "Invalid taxonomy." - // 403 - "Parent term does not exist." - // 403 - "The term name cannot be empty." - // 500 - "A term with the name provided already exists with this parent." - RemoteTermPayload payload = new RemoteTermPayload(term, site); - payload.error = getTaxonomyError(error); - mDispatcher.dispatch(TaxonomyActionBuilder.newPushedTermAction(payload)); - } + error -> { + // Possible non-generic errors: + // 403 - "Invalid taxonomy." + // 403 - "Parent term does not exist." + // 403 - "The term name cannot be empty." + // 500 - "A term with the name provided already exists with this parent." + RemoteTermPayload payload = new RemoteTermPayload(term, site); + payload.error = getTaxonomyError(error); + mDispatcher.dispatch(TaxonomyActionBuilder.newPushedTermAction(payload)); }); request.disableRetries(); @@ -190,20 +171,14 @@ public void deleteTerm(final TermModel term, final SiteModel site) { params.add(term.getRemoteTermId()); final XMLRPCRequest request = new XMLRPCRequest(site.getXmlRpcUrl(), XMLRPC.DELETE_TERM, params, - new Listener() { - @Override - public void onResponse(Object response) { - RemoteTermPayload payload = new RemoteTermPayload(term, site); - mDispatcher.dispatch(TaxonomyActionBuilder.newDeletedTermAction(payload)); - } + (Listener) response -> { + RemoteTermPayload payload = new RemoteTermPayload(term, site); + mDispatcher.dispatch(TaxonomyActionBuilder.newDeletedTermAction(payload)); }, - new BaseErrorListener() { - @Override - public void onErrorResponse(@NonNull BaseNetworkError error) { - RemoteTermPayload payload = new RemoteTermPayload(term, site); - payload.error = getTaxonomyError(error); - mDispatcher.dispatch(TaxonomyActionBuilder.newDeletedTermAction(payload)); - } + error -> { + RemoteTermPayload payload = new RemoteTermPayload(term, site); + payload.error = getTaxonomyError(error); + mDispatcher.dispatch(TaxonomyActionBuilder.newDeletedTermAction(payload)); }); request.disableRetries(); From 411634ac9c7768befff9ab3599020cf40d11964a Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:27:33 +0300 Subject: [PATCH 04/13] Analysis: Remove unnecessary is response null check Warning: "Condition 'response != null' covered by subsequent condition 'response instanceof Map'" --- .../fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index 7bc8c5561e..a36e736d88 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -60,7 +60,7 @@ public void fetchTerm(final TermModel term, final SiteModel site, final Taxonomy final XMLRPCRequest request = new XMLRPCRequest(site.getXmlRpcUrl(), XMLRPC.GET_TERM, params, (Listener) response -> { - if (response != null && response instanceof Map) { + if (response instanceof Map) { TermModel termModel = termResponseObjectToTermModel(response, site); FetchTermResponsePayload payload; if (termModel != null) { From efd5eaa9b94505becce0cfb9dcb06e0cce19ca2e Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:30:00 +0300 Subject: [PATCH 05/13] Analysis: Guard usages of terms response to terms model method --- .../xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index a36e736d88..d73a228fff 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -3,6 +3,7 @@ import android.text.TextUtils; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.android.volley.RequestQueue; import com.android.volley.Response.Listener; @@ -99,16 +100,17 @@ public void fetchTerms(final SiteModel site, final String taxonomyName) { final XMLRPCRequest request = new XMLRPCRequest(site.getXmlRpcUrl(), XMLRPC.GET_TERMS, params, response -> { + FetchTermsResponsePayload payload; TermsModel terms = termsResponseToTermsModel(response, site); - - FetchTermsResponsePayload payload = new FetchTermsResponsePayload(terms, site, taxonomyName); - if (terms != null) { - mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermsAction(payload)); + payload = new FetchTermsResponsePayload(terms, site, taxonomyName); } else { - payload.error = new TaxonomyError(TaxonomyErrorType.INVALID_RESPONSE); - mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermsAction(payload)); + payload = new FetchTermsResponsePayload( + new TaxonomyError(TaxonomyErrorType.INVALID_RESPONSE), + taxonomyName + ); } + mDispatcher.dispatch(TaxonomyActionBuilder.newFetchedTermsAction(payload)); }, error -> { // Possible non-generic errors: @@ -185,6 +187,7 @@ public void deleteTerm(final TermModel term, final SiteModel site) { add(request); } + @Nullable private TermsModel termsResponseToTermsModel(Object[] response, SiteModel site) { List> termsList = new ArrayList<>(); for (Object responseObject : response) { From 173df0e181684b9138e135564b799d2343d7b235 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:32:06 +0300 Subject: [PATCH 06/13] Analysis: Replace value of with long parse long for string reponse Warning: "Redundant boxing, 'Long.parseLong()' call can be used instead" --- .../fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index d73a228fff..a6977aff72 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -143,7 +143,7 @@ public void pushTerm(final TermModel term, final SiteModel site) { (Listener) response -> { // `term_id` is only returned for XMLRPC.NEW_TERM if (!updatingExistingTerm) { - term.setRemoteTermId(Long.valueOf((String) response)); + term.setRemoteTermId(Long.parseLong((String) response)); } RemoteTermPayload payload = new RemoteTermPayload(term, site); From 57d01082bfa5a69edf9e46c7f4dce7f09568144f Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:35:23 +0300 Subject: [PATCH 07/13] Analysis: Add missing n-a to fetch term on taxonomy xmlrpc client FYI: 'n-a' stands for 'nullability annotations'. --- .../network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index a6977aff72..21b61e6729 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -47,11 +47,14 @@ public class TaxonomyXMLRPCClient extends BaseXMLRPCClient { super(dispatcher, requestQueue, userAgent, httpAuthManager); } - public void fetchTerm(final TermModel term, final SiteModel site) { + public void fetchTerm(@NonNull final TermModel term, @NonNull final SiteModel site) { fetchTerm(term, site, TaxonomyAction.FETCH_TERM); } - public void fetchTerm(final TermModel term, final SiteModel site, final TaxonomyAction origin) { + public void fetchTerm( + @NonNull final TermModel term, + @NonNull final SiteModel site, + @NonNull final TaxonomyAction origin) { List params = new ArrayList<>(5); params.add(site.getSelfHostedSiteId()); params.add(site.getUsername()); From 1a74d6eea45254d9d6e2b4941b4c8d469ca011f4 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:36:07 +0300 Subject: [PATCH 08/13] Analysis: Add missing n-a to fetch terms on taxonomy xmlrpc client FYI: 'n-a' stands for 'nullability annotations'. --- .../fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index 21b61e6729..4ece0042d4 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -94,7 +94,7 @@ public void fetchTerm( add(request); } - public void fetchTerms(final SiteModel site, final String taxonomyName) { + public void fetchTerms(@NonNull final SiteModel site, @NonNull final String taxonomyName) { List params = new ArrayList<>(4); params.add(site.getSelfHostedSiteId()); params.add(site.getUsername()); From b71a97538d6c74a5a98839e5e2521f10cfb1b99c Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:36:33 +0300 Subject: [PATCH 09/13] Analysis: Add missing n-a to push term on taxonomy xmlrpc client FYI: 'n-a' stands for 'nullability annotations'. --- .../fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index 4ece0042d4..9f6abac552 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -128,7 +128,7 @@ public void fetchTerms(@NonNull final SiteModel site, @NonNull final String taxo add(request); } - public void pushTerm(final TermModel term, final SiteModel site) { + public void pushTerm(@NonNull final TermModel term, @NonNull final SiteModel site) { Map contentStruct = termModelToContentStruct(term); final boolean updatingExistingTerm = term.getRemoteTermId() > 0; From 59d6eab3e99ba9e7b2c0e717516091cbf07ebe47 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:37:03 +0300 Subject: [PATCH 10/13] Analysis: Add missing n-a to delete term on taxonomy xmlrpc client FYI: 'n-a' stands for 'nullability annotations'. --- .../fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index 9f6abac552..4d6454193a 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -167,7 +167,7 @@ public void pushTerm(@NonNull final TermModel term, @NonNull final SiteModel sit add(request); } - public void deleteTerm(final TermModel term, final SiteModel site) { + public void deleteTerm(@NonNull final TermModel term, @NonNull final SiteModel site) { List params = new ArrayList<>(4); params.add(site.getSelfHostedSiteId()); params.add(site.getUsername()); From 19a3870b02d412d068547d41015cbc1fa211a426 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:41:23 +0300 Subject: [PATCH 11/13] Analysis: Add missing n-a to terms response to terms model method FYI: 'n-a' stands for 'nullability annotations'. --- .../fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index 4d6454193a..d8ca41ce4c 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -191,7 +191,7 @@ public void deleteTerm(@NonNull final TermModel term, @NonNull final SiteModel s } @Nullable - private TermsModel termsResponseToTermsModel(Object[] response, SiteModel site) { + private TermsModel termsResponseToTermsModel(@NonNull Object[] response, @NonNull SiteModel site) { List> termsList = new ArrayList<>(); for (Object responseObject : response) { Map termMap = (Map) responseObject; From c5fc4ff17fa9d69cc1686d3c8e2a1429f333f3e2 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:43:02 +0300 Subject: [PATCH 12/13] Analysis: Add missing n-a to term response object to term model method FYI: 'n-a' stands for 'nullability annotations'. --- .../fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index d8ca41ce4c..28afa7509d 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -215,7 +215,8 @@ private TermsModel termsResponseToTermsModel(@NonNull Object[] response, @NonNul return new TermsModel(termArray); } - private TermModel termResponseObjectToTermModel(Object termObject, SiteModel site) { + @Nullable + private TermModel termResponseObjectToTermModel(@NonNull Object termObject, @NonNull SiteModel site) { // Sanity checks if (!(termObject instanceof Map)) { return null; From e17f6557457b1dd3ebb2007d9a8b3977dc4b3308 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 9 Oct 2023 16:43:57 +0300 Subject: [PATCH 13/13] Analysis: Add missing n-a to term model to content struct method FYI: 'n-a' stands for 'nullability annotations'. --- .../fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java index 28afa7509d..da212a978e 100644 --- a/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java +++ b/fluxc/src/main/java/org/wordpress/android/fluxc/network/xmlrpc/taxonomy/TaxonomyXMLRPCClient.java @@ -242,7 +242,8 @@ private TermModel termResponseObjectToTermModel(@NonNull Object termObject, @Non ); } - private static Map termModelToContentStruct(TermModel term) { + @NonNull + private static Map termModelToContentStruct(@NonNull TermModel term) { Map contentStruct = new HashMap<>(); contentStruct.put("name", term.getName());