From 36a4ce776151ce3732af7726eb2eec9655ff74dd Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Wed, 13 Mar 2024 19:42:40 -0300 Subject: [PATCH 01/26] Rename RestClientUtils#get to RestClientUtils#getWithLocale and create RestClientUtils#get without adding Locale parameter automatically --- .../recommend/RecommendApiCallsProvider.kt | 2 +- .../utils/NotificationsUtils.java | 2 +- .../ui/people/InviteLinksApiCallsProvider.kt | 2 +- .../android/ui/people/utils/PeopleUtils.java | 10 ++--- .../ui/publicize/PublicizeActions.java | 2 +- .../services/PublicizeUpdateServicesV2.kt | 4 +- .../ui/reader/actions/ReaderBlogActions.java | 6 +-- .../ui/reader/actions/ReaderPostActions.java | 6 +-- .../comment/ReaderCommentService.java | 2 +- .../services/discover/ReaderDiscoverLogic.kt | 2 +- .../reader/services/post/ReaderPostLogic.java | 6 +-- .../services/search/ReaderSearchLogic.java | 2 +- .../services/update/ReaderUpdateLogic.java | 6 +-- .../utils/PostSubscribersApiCallsProvider.kt | 4 +- .../suggestion/service/SuggestionService.java | 4 +- .../android/networking/RestClientUtils.java | 43 +++++++++++-------- 16 files changed, 56 insertions(+), 47 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/models/recommend/RecommendApiCallsProvider.kt b/WordPress/src/main/java/org/wordpress/android/models/recommend/RecommendApiCallsProvider.kt index d59d2c1f6119..e324f64e5679 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/recommend/RecommendApiCallsProvider.kt +++ b/WordPress/src/main/java/org/wordpress/android/models/recommend/RecommendApiCallsProvider.kt @@ -51,7 +51,7 @@ class RecommendApiCallsProvider @Inject constructor( cont.resume(Failure(errorMessage)) } - restClientProvider.getRestClientUtilsV2().get( + restClientProvider.getRestClientUtilsV2().getWithLocale( endPointPath, listener, errorListener diff --git a/WordPress/src/main/java/org/wordpress/android/ui/notifications/utils/NotificationsUtils.java b/WordPress/src/main/java/org/wordpress/android/ui/notifications/utils/NotificationsUtils.java index 5653112f7af5..5f5634bcba7b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/notifications/utils/NotificationsUtils.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/notifications/utils/NotificationsUtils.java @@ -87,7 +87,7 @@ public static void getPushNotificationSettings(Context context, RestRequest.List if (!TextUtils.isEmpty(deviceID)) { settingsEndpoint += "?device_id=" + deviceID; } - WordPress.getRestClientUtilsV1_1().get(settingsEndpoint, listener, errorListener); + WordPress.getRestClientUtilsV1_1().getWithLocale(settingsEndpoint, listener, errorListener); } public static void registerDeviceForPushNotifications(final Context ctx, String token) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/InviteLinksApiCallsProvider.kt b/WordPress/src/main/java/org/wordpress/android/ui/people/InviteLinksApiCallsProvider.kt index 0d349d3a307f..6ea4dd44eb67 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/InviteLinksApiCallsProvider.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/InviteLinksApiCallsProvider.kt @@ -39,7 +39,7 @@ class InviteLinksApiCallsProvider @Inject constructor( cont.resume(Failure(error)) } - WordPress.getRestClientUtilsV1_1().get( + WordPress.getRestClientUtilsV1_1().getWithLocale( endPointPath, listener, errorListener diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/utils/PeopleUtils.java b/WordPress/src/main/java/org/wordpress/android/ui/people/utils/PeopleUtils.java index 5709f56c62a4..418d586a4077 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/utils/PeopleUtils.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/utils/PeopleUtils.java @@ -62,7 +62,7 @@ public void onErrorResponse(VolleyError volleyError) { params.put("order_by", "display_name"); params.put("order", "ASC"); String path = String.format(Locale.US, "sites/%d/users", site.getSiteId()); - WordPress.getRestClientUtilsV1_1().get(path, params, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().getWithLocale(path, params, null, listener, errorListener); } public static void fetchAuthors(final SiteModel site, final int offset, final FetchUsersCallback callback) { @@ -95,7 +95,7 @@ public static void fetchAuthors(final SiteModel site, final int offset, final Fe params.put("order", "ASC"); params.put("authors_only", "true"); String path = String.format(Locale.US, "sites/%d/users", site.getSiteId()); - WordPress.getRestClientUtilsV1_1().get(path, params, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().getWithLocale(path, params, null, listener, errorListener); } public static void fetchRevisionAuthorsDetails(final SiteModel site, List authors, @@ -144,7 +144,7 @@ public void onErrorResponse(VolleyError volleyError) { site.getSiteId(), authors.get(i))); } - WordPress.getRestClientUtilsV1_1().get("batch/", batchParams, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().getWithLocale("batch/", batchParams, null, listener, errorListener); } public static void fetchFollowers(final SiteModel site, final int page, final FetchFollowersCallback callback) { @@ -195,7 +195,7 @@ public void onErrorResponse(VolleyError volleyError) { params.put("page", Integer.toString(page)); params.put("type", isEmailFollower ? "email" : "wp_com"); String path = String.format(Locale.US, "sites/%d/stats/followers", site.getSiteId()); - WordPress.getRestClientUtilsV1_1().get(path, params, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().getWithLocale(path, params, null, listener, errorListener); } public static void fetchViewers(final SiteModel site, final int offset, final FetchViewersCallback callback) { @@ -233,7 +233,7 @@ public void onErrorResponse(VolleyError volleyError) { params.put("number", Integer.toString(FETCH_LIMIT)); params.put("page", Integer.toString(page)); String path = String.format(Locale.US, "sites/%d/viewers", site.getSiteId()); - WordPress.getRestClientUtilsV1_1().get(path, params, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().getWithLocale(path, params, null, listener, errorListener); } public static void updateRole(final SiteModel site, long personID, String newRole, final int localTableBlogId, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeActions.java b/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeActions.java index 8fad36d11e09..307e118fbd78 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeActions.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeActions.java @@ -153,7 +153,7 @@ public void onErrorResponse(VolleyError volleyError) { }; String path = "/me/keyring-connections"; - WordPress.getRestClientUtilsV1_1().get(path, listener, errorListener); + WordPress.getRestClientUtilsV1_1().getWithLocale(path, listener, errorListener); } /* diff --git a/WordPress/src/main/java/org/wordpress/android/ui/publicize/services/PublicizeUpdateServicesV2.kt b/WordPress/src/main/java/org/wordpress/android/ui/publicize/services/PublicizeUpdateServicesV2.kt index ed549f49e226..ce089cdb7ca7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/publicize/services/PublicizeUpdateServicesV2.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/publicize/services/PublicizeUpdateServicesV2.kt @@ -27,7 +27,7 @@ class PublicizeUpdateServicesV2 @Inject constructor( } val errorListener = RestRequest.ErrorListener { volleyError -> failure(volleyError) } val path = "sites/$siteId/external-services?type=publicize" - restClientProvider.getRestClientUtilsV2().get(path, listener, errorListener) + restClientProvider.getRestClientUtilsV2().getWithLocale(path, listener, errorListener) } /* @@ -45,6 +45,6 @@ class PublicizeUpdateServicesV2 @Inject constructor( } val errorListener = RestRequest.ErrorListener { volleyError -> failure(volleyError) } val path = String.format(Locale.ROOT, "sites/%d/publicize-connections", siteId) - restClientProvider.getRestClientUtilsV1_1().get(path, listener, errorListener) + restClientProvider.getRestClientUtilsV1_1().getWithLocale(path, listener, errorListener) } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderBlogActions.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderBlogActions.java index 2451b933cb18..80e6e75b5ae7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderBlogActions.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderBlogActions.java @@ -398,10 +398,10 @@ public void onErrorResponse(VolleyError volleyError) { }; if (hasBlogId) { - WordPress.getRestClientUtilsV1_1().get("read/sites/" + blogId, listener, errorListener); + WordPress.getRestClientUtilsV1_1().getWithLocale("read/sites/" + blogId, listener, errorListener); } else { WordPress.getRestClientUtilsV1_1() - .get("read/sites/" + UrlUtils.urlEncode(UrlUtils.getHost(blogUrl)), listener, errorListener); + .getWithLocale("read/sites/" + UrlUtils.urlEncode(UrlUtils.getHost(blogUrl)), listener, errorListener); } } @@ -438,7 +438,7 @@ public void onErrorResponse(VolleyError volleyError) { } else { path = "read/feed/" + UrlUtils.urlEncode(feedUrl); } - WordPress.getRestClientUtilsV1_1().get(path, listener, errorListener); + WordPress.getRestClientUtilsV1_1().getWithLocale(path, listener, errorListener); } private static void handleUpdateBlogInfoResponse(JSONObject jsonObject, UpdateBlogInfoListener infoListener) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderPostActions.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderPostActions.java index ee49b07f0a92..7b6e9527bba4 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderPostActions.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderPostActions.java @@ -159,7 +159,7 @@ public void onErrorResponse(VolleyError volleyError) { } }; AppLog.d(T.READER, "updating post"); - WordPress.getRestClientUtilsV1_2().get(path, null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_2().getWithLocale(path, null, null, listener, errorListener); } private static void handleUpdatePostResponse(@NonNull final ReaderPost localPost, @@ -320,7 +320,7 @@ public void onErrorResponse(VolleyError volleyError) { }; AppLog.d(T.READER, "requesting post"); - restClientUtils.get(path, null, null, listener, errorListener); + restClientUtils.getWithLocale(path, null, null, listener, errorListener); } private static String getTrackingPixelForPost(@NonNull ReaderPost post) { @@ -417,7 +417,7 @@ public void onErrorResponse(VolleyError volleyError) { + "?size_local=" + NUM_RELATED_POSTS_TO_REQUEST + "&size_global=" + NUM_RELATED_POSTS_TO_REQUEST + "&fields=" + ReaderSimplePost.SIMPLE_POST_FIELDS; - WordPress.getRestClientUtilsV1_2().get(path, null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_2().getWithLocale(path, null, null, listener, errorListener); } private static void handleRelatedPostsResponse(final ReaderPost sourcePost, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/comment/ReaderCommentService.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/comment/ReaderCommentService.java index 56487cc3f0bc..748577aafb40 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/comment/ReaderCommentService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/comment/ReaderCommentService.java @@ -201,7 +201,7 @@ public void onErrorResponse(VolleyError volleyError) { } }; AppLog.d(AppLog.T.READER, "updating comments"); - WordPress.getRestClientUtilsV1_1().get(path, null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().getWithLocale(path, null, null, listener, errorListener); } private static void handleUpdateCommentsResponse(final JSONObject jsonObject, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt index 8e384e3626a5..7f4559385ca7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt @@ -123,7 +123,7 @@ class ReaderDiscoverLogic @Inject constructor( } else { "read/tags/cards" } - WordPress.getRestClientUtilsV2()[endpoint, params, null, listener, errorListener] + WordPress.getRestClientUtilsV2().getWithLocale(endpoint, params, null, listener, errorListener) } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostLogic.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostLogic.java index ca1619ae3788..649c694a7281 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostLogic.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostLogic.java @@ -144,7 +144,7 @@ public void onErrorResponse(VolleyError volleyError) { } }; - WordPress.getRestClientUtilsV1_2().get(sb.toString(), null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_2().getWithLocale(sb.toString(), null, null, listener, errorListener); } private static void requestPostsForBlog(final long blogId, @@ -174,7 +174,7 @@ public void onErrorResponse(VolleyError volleyError) { } }; AppLog.d(AppLog.T.READER, "updating posts in blog " + blogId); - WordPress.getRestClientUtilsV1_2().get(path, null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_2().getWithLocale(path, null, null, listener, errorListener); } private static void requestPostsForFeed(final long feedId, @@ -203,7 +203,7 @@ public void onErrorResponse(VolleyError volleyError) { }; AppLog.d(AppLog.T.READER, "updating posts in feed " + feedId); - WordPress.getRestClientUtilsV1_2().get(path, null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_2().getWithLocale(path, null, null, listener, errorListener); } /* diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchLogic.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchLogic.java index 0002fe3febce..5fb5478fe033 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchLogic.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchLogic.java @@ -55,7 +55,7 @@ public void onErrorResponse(VolleyError volleyError) { AppLog.d(AppLog.T.READER, "reader search service > starting search for " + query); EventBus.getDefault().post(new ReaderEvents.SearchPostsStarted(query, offset)); - WordPress.getRestClientUtilsV1_2().get(path, null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_2().getWithLocale(path, null, null, listener, errorListener); } private void handleSearchResponse(final String query, final int offset, final JSONObject jsonObject) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java index 151bdebd5101..6edcaaa5c67e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java @@ -120,7 +120,7 @@ public void onErrorResponse(VolleyError volleyError) { HashMap params = new HashMap<>(); params.put("locale", mLanguage); mClientUtilsProvider.getRestClientForTagUpdate() - .get("read/menu", params, null, listener, errorListener); + .getWithLocale("read/menu", params, null, listener, errorListener); } /** @@ -279,7 +279,7 @@ private void fetchInterestTags() { HashMap params = new HashMap<>(); params.put("_locale", mLanguage); mClientUtilsProvider.getRestClientForInterestTags() - .get("read/interests", params, null, listener, errorListener); + .getWithLocale("read/interests", params, null, listener, errorListener); } private void handleInterestTagsResponse(final JSONObject jsonObject) { @@ -316,7 +316,7 @@ public void onErrorResponse(VolleyError volleyError) { AppLog.d(AppLog.T.READER, "reader service > updating followed blogs. Page requested: " + page); // request using ?meta=site,feed to get extra info WordPress.getRestClientUtilsV1_2() - .get("read/following/mine?number=100&page=" + page + "&meta=site%2Cfeed", listener, errorListener); + .getWithLocale("read/following/mine?number=100&page=" + page + "&meta=site%2Cfeed", listener, errorListener); } private void handleFollowedBlogsResponse(final ReaderBlogList serverBlogs, final JSONObject jsonObject) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/utils/PostSubscribersApiCallsProvider.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/utils/PostSubscribersApiCallsProvider.kt index 40f2d8aefe89..a0887da7d86b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/utils/PostSubscribersApiCallsProvider.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/utils/PostSubscribersApiCallsProvider.kt @@ -38,7 +38,7 @@ class PostSubscribersApiCallsProvider @Inject constructor( cont.resume(false) } - WordPress.getRestClientUtilsV1_1().get( + WordPress.getRestClientUtilsV1_1().getWithLocale( endPointPath, listener, errorListener @@ -64,7 +64,7 @@ class PostSubscribersApiCallsProvider @Inject constructor( cont.resume(Failure(error)) } - WordPress.getRestClientUtilsV1_1().get( + WordPress.getRestClientUtilsV1_1().getWithLocale( endPointPath, listener, errorListener diff --git a/WordPress/src/main/java/org/wordpress/android/ui/suggestion/service/SuggestionService.java b/WordPress/src/main/java/org/wordpress/android/ui/suggestion/service/SuggestionService.java index 7853bb5dba14..0c215405c511 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/suggestion/service/SuggestionService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/suggestion/service/SuggestionService.java @@ -91,7 +91,7 @@ private void updateSuggestions(final long siteId) { AppLog.d(AppLog.T.SUGGESTION, "suggestion service > updating suggestions for siteId: " + siteId); String path = "/users/suggest" + "?site_id=" + siteId; - WordPress.getRestClientUtils().get(path, listener, errorListener); + WordPress.getRestClientUtils().getWithLocale(path, listener, errorListener); } private void handleSuggestionsUpdatedResponse(final long siteId, final JSONObject jsonObject) { @@ -136,7 +136,7 @@ private void updateTags(final long siteId) { AppLog.d(AppLog.T.SUGGESTION, "suggestion service > updating tags for siteId: " + siteId); String path = "/sites/" + siteId + "/tags"; - WordPress.getRestClientUtils().get(path, listener, errorListener); + WordPress.getRestClientUtils().getWithLocale(path, listener, errorListener); } private void handleTagsUpdatedResponse(final long siteId, final JSONObject jsonObject) { diff --git a/libs/networking/src/main/java/org/wordpress/android/networking/RestClientUtils.java b/libs/networking/src/main/java/org/wordpress/android/networking/RestClientUtils.java index 2e62fea38810..3446e4b21238 100644 --- a/libs/networking/src/main/java/org/wordpress/android/networking/RestClientUtils.java +++ b/libs/networking/src/main/java/org/wordpress/android/networking/RestClientUtils.java @@ -103,7 +103,7 @@ public RestClient getRestClient() { public void getCategories(long siteId, Listener listener, ErrorListener errorListener) { String path = String.format(Locale.US, "sites/%d/categories", siteId); - get(path, null, null, listener, errorListener); + getWithLocale(path, null, null, listener, errorListener); } /** @@ -112,7 +112,7 @@ public void getCategories(long siteId, Listener listener, ErrorListener errorLis * api/1/get/notifications */ public void getNotifications(Map params, Listener listener, ErrorListener errorListener) { - get("notifications", params, null, listener, errorListener); + getWithLocale("notifications", params, null, listener, errorListener); } /** @@ -123,7 +123,7 @@ public void getNotification(Map params, String noteId, Listener listener, ErrorListener errorListener) { params.put("fields", NOTIFICATION_FIELDS); String path = String.format(Locale.US, "notifications/%s/", noteId); - get(path, params, null, listener, errorListener); + getWithLocale(path, params, null, listener, errorListener); } /** @@ -135,7 +135,7 @@ public void getNotification(String noteId, Listener listener, ErrorListener erro HashMap params = new HashMap<>(); params.put("fields", NOTIFICATION_FIELDS); String path = String.format("notifications/%s", noteId); - get(path, params, null, listener, errorListener); + getWithLocale(path, params, null, listener, errorListener); } /** @@ -166,23 +166,23 @@ public void decrementUnreadCount(String noteId, String decrementAmount, public void getJetpackSettings(long siteId, Listener listener, ErrorListener errorListener) { String path = String.format(Locale.US, "jetpack-blogs/%d/rest-api/?path=/jetpack/v4/settings", siteId); - get(path, listener, errorListener); + getWithLocale(path, listener, errorListener); } public void getGeneralSettings(long siteId, Listener listener, ErrorListener errorListener) { String path = String.format(Locale.US, "sites/%d/settings", siteId); - get(path, listener, errorListener); + getWithLocale(path, listener, errorListener); } public void getJetpackMonitorSettings(long siteId, Listener listener, ErrorListener errorListener) { String path = String.format(Locale.US, "jetpack-blogs/%d", siteId); - get(path, listener, errorListener); + getWithLocale(path, listener, errorListener); } public void getJetpackModuleSettings(long siteId, Listener listener, ErrorListener errorListener) { String path = String.format(Locale.US, "sites/%d/jetpack/modules", siteId); - get(path, listener, errorListener); + getWithLocale(path, listener, errorListener); } public void setGeneralSiteSettings(long siteId, JSONObject params, Listener listener, ErrorListener errorListener) { @@ -228,7 +228,7 @@ public void setJetpackModuleSettings(long siteId, String module, boolean active, public void getSitePurchases(long siteId, Listener listener, ErrorListener errorListener) { String path = String.format(Locale.US, "sites/%d/purchases", siteId); - get(path, listener, errorListener); + getWithLocale(path, listener, errorListener); } public void exportContentAll(long siteId, Listener listener, ErrorListener errorListener) { @@ -238,7 +238,7 @@ public void exportContentAll(long siteId, Listener listener, ErrorListener error public void getSharingButtons(String siteId, Listener listener, ErrorListener errorListener) { String path = String.format("sites/%s/sharing-buttons", siteId); - get(path, listener, errorListener); + getWithLocale(path, listener, errorListener); } public void setSharingButtons(String siteId, JSONObject params, Listener listener, ErrorListener errorListener) { @@ -249,29 +249,38 @@ public void setSharingButtons(String siteId, JSONObject params, Listener listene /** * Make GET request */ - public Request get(String path, Listener listener, ErrorListener errorListener) { - return get(path, null, null, listener, errorListener); + public Request getWithLocale(final String path, final Listener listener, + final ErrorListener errorListener) { + return getWithLocale(path, null, null, listener, errorListener); } /** - * Make GET request with params + * Make GET request with params. Locale param is added automatically. */ - public Request get(String path, Map params, RetryPolicy retryPolicy, Listener listener, - ErrorListener errorListener) { + public Request getWithLocale(final String path, final Map params, + RetryPolicy retryPolicy, final Listener listener, + final ErrorListener errorListener) { // turn params into query string HashMap paramsWithLocale = getRestLocaleParams(mContext); if (params != null) { paramsWithLocale.putAll(params); } + return get(path, paramsWithLocale, retryPolicy, listener, errorListener); + } + /** + * Make GET request with params. + */ + public Request get(final String path, final Map params, RetryPolicy retryPolicy, + final Listener listener, final ErrorListener errorListener) { String realPath = getSanitizedPath(path); if (TextUtils.isEmpty(realPath)) { realPath = path; } - paramsWithLocale.putAll(getSanitizedParameters(path)); + params.putAll(getSanitizedParameters(path)); RestRequest request = mRestClient.makeRequest(Method.GET, mRestClient - .getAbsoluteURL(realPath, paramsWithLocale), null, listener, errorListener); + .getAbsoluteURL(realPath, params), null, listener, errorListener); if (retryPolicy == null) { retryPolicy = new DefaultRetryPolicy(REST_TIMEOUT_MS, REST_MAX_RETRIES_GET, REST_BACKOFF_MULT); From ea0cdf39298513009e4715321001a822803524e4 Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Thu, 14 Mar 2024 17:00:37 -0300 Subject: [PATCH 02/26] Prevent crash when ReaderPost featured_media object is missing --- .../java/org/wordpress/android/models/ReaderPost.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/models/ReaderPost.java b/WordPress/src/main/java/org/wordpress/android/models/ReaderPost.java index cbe82cda4cf3..8f8f10a92f5d 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/ReaderPost.java +++ b/WordPress/src/main/java/org/wordpress/android/models/ReaderPost.java @@ -185,9 +185,11 @@ public static ReaderPost fromJson(JSONObject json) { // if there's no featured image, check if featured media has been set to an image if (!post.hasFeaturedImage() && json.has("featured_media")) { JSONObject jsonMedia = json.optJSONObject("featured_media"); - String type = JSONUtils.getString(jsonMedia, "type"); - if (type.equals("image")) { - post.mFeaturedImage = JSONUtils.getString(jsonMedia, "uri"); + if (jsonMedia != null) { + String type = JSONUtils.getString(jsonMedia, "type"); + if (type.equals("image")) { + post.mFeaturedImage = JSONUtils.getString(jsonMedia, "uri"); + } } } From aaa9b9c649eadaf4ac6221d31c925ed6f31e518c Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Thu, 14 Mar 2024 17:27:09 -0300 Subject: [PATCH 03/26] Add correct language query parameter (_locale) to the read streams discover request --- .../ui/reader/services/discover/ReaderDiscoverLogic.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt index 7f4559385ca7..5da575b0c5e2 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt @@ -46,6 +46,7 @@ import org.wordpress.android.ui.reader.services.discover.ReaderDiscoverLogic.Dis import org.wordpress.android.ui.reader.services.discover.ReaderDiscoverLogic.DiscoverTasks.REQUEST_MORE import org.wordpress.android.util.AppLog import org.wordpress.android.util.AppLog.T.READER +import org.wordpress.android.util.LocaleManagerWrapper import org.wordpress.android.util.config.ReaderDiscoverNewEndpointFeatureConfig import javax.inject.Inject @@ -59,6 +60,7 @@ class ReaderDiscoverLogic @Inject constructor( private val getDiscoverCardsUseCase: GetDiscoverCardsUseCase, private val appPrefsWrapper: AppPrefsWrapper, private val readerDiscoverNewEndpointFeatureConfig: ReaderDiscoverNewEndpointFeatureConfig, + private val localeManagerWrapper: LocaleManagerWrapper, ) { enum class DiscoverTasks { REQUEST_MORE, REQUEST_FIRST_PAGE @@ -118,12 +120,12 @@ class ReaderDiscoverLogic @Inject constructor( AppLog.e(READER, volleyError) resultListener.onUpdateResult(FAILED) } - val endpoint = if (readerDiscoverNewEndpointFeatureConfig.isEnabled()) { - "read/streams/discover" + if (readerDiscoverNewEndpointFeatureConfig.isEnabled()) { + params["_locale"] = localeManagerWrapper.getLanguage() + WordPress.getRestClientUtilsV2().get("read/streams/discover", params, null, listener, errorListener) } else { - "read/tags/cards" + WordPress.getRestClientUtilsV2().getWithLocale("read/tags/cards", params, null, listener, errorListener) } - WordPress.getRestClientUtilsV2().getWithLocale(endpoint, params, null, listener, errorListener) } } From 75af0f864dc340752a6f33caabe77c95fc7dd9c9 Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Thu, 14 Mar 2024 20:45:27 -0300 Subject: [PATCH 04/26] Add correct language query parameter (lang) to the read search request --- .../search/ReaderSearchJobService.java | 9 ++++++- .../services/search/ReaderSearchLogic.java | 27 ++++++++++--------- .../services/search/ReaderSearchService.java | 9 ++++++- .../android/networking/RestClientUtils.java | 10 +++++-- 4 files changed, 39 insertions(+), 16 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchJobService.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchJobService.java index e4f9db580dbb..8ccd14307000 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchJobService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchJobService.java @@ -1,10 +1,14 @@ package org.wordpress.android.ui.reader.services.search; +import dagger.hilt.android.AndroidEntryPoint; import android.app.job.JobParameters; import android.app.job.JobService; import org.wordpress.android.ui.reader.services.ServiceCompletionListener; import org.wordpress.android.util.AppLog; +import org.wordpress.android.util.LocaleManagerWrapper; + +import javax.inject.Inject; import static org.wordpress.android.ui.reader.services.search.ReaderSearchServiceStarter.ARG_OFFSET; import static org.wordpress.android.ui.reader.services.search.ReaderSearchServiceStarter.ARG_QUERY; @@ -13,9 +17,12 @@ * service which searches for reader posts on wordpress.com */ +@AndroidEntryPoint public class ReaderSearchJobService extends JobService implements ServiceCompletionListener { private ReaderSearchLogic mReaderSearchLogic; + @Inject LocaleManagerWrapper mLocaleManagerWrapper; + @Override public boolean onStartJob(JobParameters params) { if (params.getExtras() != null && params.getExtras().getString(ARG_QUERY) != null) { String query = params.getExtras().getString(ARG_QUERY); @@ -34,7 +41,7 @@ public class ReaderSearchJobService extends JobService implements ServiceComplet @Override public void onCreate() { super.onCreate(); - mReaderSearchLogic = new ReaderSearchLogic(this); + mReaderSearchLogic = new ReaderSearchLogic(this, mLocaleManagerWrapper); AppLog.i(AppLog.T.READER, "reader search job service > created"); } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchLogic.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchLogic.java index 5fb5478fe033..b865a00e28ec 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchLogic.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchLogic.java @@ -14,16 +14,21 @@ import org.wordpress.android.ui.reader.ReaderEvents; import org.wordpress.android.ui.reader.services.ServiceCompletionListener; import org.wordpress.android.util.AppLog; +import org.wordpress.android.util.LocaleManagerWrapper; import org.wordpress.android.util.UrlUtils; import static org.wordpress.android.ui.reader.utils.ReaderUtils.getTagForSearchQuery; public class ReaderSearchLogic { - private ServiceCompletionListener mCompletionListener; + private final ServiceCompletionListener mCompletionListener; + + private final LocaleManagerWrapper mLocaleManagerWrapper; private Object mListenerCompanion; - public ReaderSearchLogic(ServiceCompletionListener listener) { + public ReaderSearchLogic(@NonNull final ServiceCompletionListener listener, + final @NonNull LocaleManagerWrapper localeManagerWrapper) { mCompletionListener = listener; + mLocaleManagerWrapper = localeManagerWrapper; } public void startSearch(@NonNull final String query, final int offset, Object companion) { @@ -32,16 +37,14 @@ public void startSearch(@NonNull final String query, final int offset, Object co + UrlUtils.urlEncode(query) + "&number=" + ReaderConstants.READER_MAX_SEARCH_RESULTS_TO_REQUEST + "&offset=" + offset - + "&meta=site,likes"; + + "&meta=site,likes" + + "&lang=" + mLocaleManagerWrapper.getLanguage(); - RestRequest.Listener listener = new RestRequest.Listener() { - @Override - public void onResponse(JSONObject jsonObject) { - if (jsonObject != null) { - handleSearchResponse(query, offset, jsonObject); - } else { - EventBus.getDefault().post(new ReaderEvents.SearchPostsEnded(query, offset, false)); - } + RestRequest.Listener listener = jsonObject -> { + if (jsonObject != null) { + handleSearchResponse(query, offset, jsonObject); + } else { + EventBus.getDefault().post(new ReaderEvents.SearchPostsEnded(query, offset, false)); } }; RestRequest.ErrorListener errorListener = new RestRequest.ErrorListener() { @@ -55,7 +58,7 @@ public void onErrorResponse(VolleyError volleyError) { AppLog.d(AppLog.T.READER, "reader search service > starting search for " + query); EventBus.getDefault().post(new ReaderEvents.SearchPostsStarted(query, offset)); - WordPress.getRestClientUtilsV1_2().getWithLocale(path, null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_2().get(path, null, null, listener, errorListener); } private void handleSearchResponse(final String query, final int offset, final JSONObject jsonObject) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchService.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchService.java index ddbf822e4100..5f4f7d7e5d34 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchService.java @@ -1,23 +1,30 @@ package org.wordpress.android.ui.reader.services.search; +import dagger.hilt.android.AndroidEntryPoint; import android.app.Service; import android.content.Intent; import android.os.IBinder; import org.wordpress.android.ui.reader.services.ServiceCompletionListener; import org.wordpress.android.util.AppLog; +import org.wordpress.android.util.LocaleManagerWrapper; import org.wordpress.android.util.StringUtils; +import javax.inject.Inject; + /** * service which searches for reader posts on wordpress.com */ +@AndroidEntryPoint public class ReaderSearchService extends Service implements ServiceCompletionListener { private static final String ARG_QUERY = "query"; private static final String ARG_OFFSET = "offset"; private ReaderSearchLogic mReaderSearchLogic; + @Inject LocaleManagerWrapper mLocaleManagerWrapper; + @Override public IBinder onBind(Intent intent) { return null; @@ -26,7 +33,7 @@ public IBinder onBind(Intent intent) { @Override public void onCreate() { super.onCreate(); - mReaderSearchLogic = new ReaderSearchLogic(this); + mReaderSearchLogic = new ReaderSearchLogic(this, mLocaleManagerWrapper); AppLog.i(AppLog.T.READER, "reader search service > created"); } diff --git a/libs/networking/src/main/java/org/wordpress/android/networking/RestClientUtils.java b/libs/networking/src/main/java/org/wordpress/android/networking/RestClientUtils.java index 3446e4b21238..148a2674e399 100644 --- a/libs/networking/src/main/java/org/wordpress/android/networking/RestClientUtils.java +++ b/libs/networking/src/main/java/org/wordpress/android/networking/RestClientUtils.java @@ -273,14 +273,20 @@ public Request getWithLocale(final String path, final Map get(final String path, final Map params, RetryPolicy retryPolicy, final Listener listener, final ErrorListener errorListener) { + final Map paramsWithPath = new HashMap<>(); + if (params != null) { + paramsWithPath.putAll(params); + } String realPath = getSanitizedPath(path); if (TextUtils.isEmpty(realPath)) { realPath = path; } - params.putAll(getSanitizedParameters(path)); + if (path != null) { + paramsWithPath.putAll(getSanitizedParameters(path)); + } RestRequest request = mRestClient.makeRequest(Method.GET, mRestClient - .getAbsoluteURL(realPath, params), null, listener, errorListener); + .getAbsoluteURL(realPath, paramsWithPath), null, listener, errorListener); if (retryPolicy == null) { retryPolicy = new DefaultRetryPolicy(REST_TIMEOUT_MS, REST_MAX_RETRIES_GET, REST_BACKOFF_MULT); From fc4621703a3e6aafb772f48ab18979b7dc26168d Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Thu, 14 Mar 2024 21:22:29 -0300 Subject: [PATCH 05/26] Add correct language query parameter (lang) to the read tags posts endpoint --- .../services/post/ReaderPostJobService.java | 9 ++++- .../reader/services/post/ReaderPostLogic.java | 34 +++++++++---------- .../services/post/ReaderPostService.java | 9 ++++- 3 files changed, 33 insertions(+), 19 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostJobService.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostJobService.java index 3eb45bc78936..7fc9c09c268f 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostJobService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostJobService.java @@ -1,5 +1,6 @@ package org.wordpress.android.ui.reader.services.post; +import dagger.hilt.android.AndroidEntryPoint; import android.app.job.JobParameters; import android.app.job.JobService; import android.os.PersistableBundle; @@ -10,6 +11,9 @@ import org.wordpress.android.ui.reader.ReaderEvents; import org.wordpress.android.ui.reader.services.ServiceCompletionListener; import org.wordpress.android.util.AppLog; +import org.wordpress.android.util.LocaleManagerWrapper; + +import javax.inject.Inject; import static org.wordpress.android.ui.reader.services.post.ReaderPostServiceStarter.ARG_ACTION; import static org.wordpress.android.ui.reader.services.post.ReaderPostServiceStarter.ARG_BLOG_ID; @@ -26,9 +30,12 @@ * EventBus to alert of update status */ +@AndroidEntryPoint public class ReaderPostJobService extends JobService implements ServiceCompletionListener { private ReaderPostLogic mReaderPostLogic; + @Inject LocaleManagerWrapper mLocaleManagerWrapper; + @Override public boolean onStartJob(JobParameters params) { AppLog.i(AppLog.T.READER, "reader post job service > started"); UpdateAction action; @@ -66,7 +73,7 @@ public class ReaderPostJobService extends JobService implements ServiceCompletio @Override public void onCreate() { super.onCreate(); - mReaderPostLogic = new ReaderPostLogic(this); + mReaderPostLogic = new ReaderPostLogic(this, mLocaleManagerWrapper); AppLog.i(AppLog.T.READER, "reader post job service > created"); } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostLogic.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostLogic.java index 649c694a7281..212d32230fab 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostLogic.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostLogic.java @@ -25,15 +25,19 @@ import org.wordpress.android.ui.reader.services.post.ReaderPostServiceStarter.UpdateAction; import org.wordpress.android.ui.reader.utils.ReaderUtils; import org.wordpress.android.util.AppLog; +import org.wordpress.android.util.LocaleManagerWrapper; import org.wordpress.android.util.StringUtils; import org.wordpress.android.util.UrlUtils; public class ReaderPostLogic { private ServiceCompletionListener mCompletionListener; + private final LocaleManagerWrapper mLocaleManagerWrapper; private Object mListenerCompanion; - public ReaderPostLogic(ServiceCompletionListener listener) { + public ReaderPostLogic(@NonNull final ServiceCompletionListener listener, + @NonNull final LocaleManagerWrapper localeManagerWrapper) { mCompletionListener = listener; + mLocaleManagerWrapper = localeManagerWrapper; } public void performTask(Object companion, UpdateAction action, @@ -87,7 +91,7 @@ public void onUpdateResult(ReaderActions.UpdateResult result) { requestPostsForFeed(feedId, action, listener); } - private static void requestPostsWithTag(final ReaderTag tag, + private void requestPostsWithTag(final ReaderTag tag, final UpdateAction updateAction, final ReaderActions.UpdateResultListener resultListener) { String path = getRelativeEndpointForTag(tag); @@ -126,25 +130,21 @@ private static void requestPostsWithTag(final ReaderTag tag, sb.append("&meta=site,likes"); - com.wordpress.rest.RestRequest.Listener listener = new RestRequest.Listener() { - @Override - public void onResponse(JSONObject jsonObject) { - // remember when this tag was updated if newer posts were requested - if (updateAction == UpdateAction.REQUEST_NEWER || updateAction == UpdateAction.REQUEST_REFRESH) { - ReaderTagTable.setTagLastUpdated(tag); - } - handleUpdatePostsResponse(tag, jsonObject, updateAction, resultListener); + sb.append("&lang=").append(mLocaleManagerWrapper.getLanguage()); + + com.wordpress.rest.RestRequest.Listener listener = jsonObject -> { + // remember when this tag was updated if newer posts were requested + if (updateAction == UpdateAction.REQUEST_NEWER || updateAction == UpdateAction.REQUEST_REFRESH) { + ReaderTagTable.setTagLastUpdated(tag); } + handleUpdatePostsResponse(tag, jsonObject, updateAction, resultListener); }; - RestRequest.ErrorListener errorListener = new RestRequest.ErrorListener() { - @Override - public void onErrorResponse(VolleyError volleyError) { - AppLog.e(AppLog.T.READER, volleyError); - resultListener.onUpdateResult(ReaderActions.UpdateResult.FAILED); - } + RestRequest.ErrorListener errorListener = volleyError -> { + AppLog.e(AppLog.T.READER, volleyError); + resultListener.onUpdateResult(ReaderActions.UpdateResult.FAILED); }; - WordPress.getRestClientUtilsV1_2().getWithLocale(sb.toString(), null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_2().get(sb.toString(), null, null, listener, errorListener); } private static void requestPostsForBlog(final long blogId, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostService.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostService.java index f00bcf4f3445..422c071264d7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostService.java @@ -1,5 +1,6 @@ package org.wordpress.android.ui.reader.services.post; +import dagger.hilt.android.AndroidEntryPoint; import android.app.Service; import android.content.Intent; import android.os.IBinder; @@ -9,6 +10,9 @@ import org.wordpress.android.ui.reader.ReaderEvents; import org.wordpress.android.ui.reader.services.ServiceCompletionListener; import org.wordpress.android.util.AppLog; +import org.wordpress.android.util.LocaleManagerWrapper; + +import javax.inject.Inject; import static org.wordpress.android.ui.reader.services.post.ReaderPostServiceStarter.ARG_ACTION; import static org.wordpress.android.ui.reader.services.post.ReaderPostServiceStarter.ARG_BLOG_ID; @@ -21,9 +25,12 @@ * EventBus to alert of update status */ +@AndroidEntryPoint public class ReaderPostService extends Service implements ServiceCompletionListener { private ReaderPostLogic mReaderPostLogic; + @Inject LocaleManagerWrapper mLocaleManagerWrapper; + @Override public IBinder onBind(Intent intent) { return null; @@ -32,7 +39,7 @@ public IBinder onBind(Intent intent) { @Override public void onCreate() { super.onCreate(); - mReaderPostLogic = new ReaderPostLogic(this); + mReaderPostLogic = new ReaderPostLogic(this, mLocaleManagerWrapper); AppLog.i(AppLog.T.READER, "reader post service > created"); } From 2c0ee5dabbc2d6d2405e0c88c4682d8f0ed37131 Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Thu, 14 Mar 2024 21:49:41 -0300 Subject: [PATCH 06/26] Add correct language query parameter (_locale) to the read tags cards request --- .../ui/reader/services/discover/ReaderDiscoverLogic.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt index 5da575b0c5e2..fb15df4bf710 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt @@ -120,12 +120,13 @@ class ReaderDiscoverLogic @Inject constructor( AppLog.e(READER, volleyError) resultListener.onUpdateResult(FAILED) } - if (readerDiscoverNewEndpointFeatureConfig.isEnabled()) { - params["_locale"] = localeManagerWrapper.getLanguage() - WordPress.getRestClientUtilsV2().get("read/streams/discover", params, null, listener, errorListener) + params["_locale"] = localeManagerWrapper.getLanguage() + val endpoint = if (readerDiscoverNewEndpointFeatureConfig.isEnabled()) { + "read/streams/discover" } else { - WordPress.getRestClientUtilsV2().getWithLocale("read/tags/cards", params, null, listener, errorListener) + "read/tags/cards" } + WordPress.getRestClientUtilsV2().get(endpoint, params, null, listener, errorListener) } } From e97ad3127b16019e4930b139f5bb481883a33265 Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Fri, 15 Mar 2024 12:15:51 -0300 Subject: [PATCH 07/26] Fix checkstyle --- .../wordpress/android/ui/reader/actions/ReaderBlogActions.java | 3 ++- .../android/ui/reader/services/post/ReaderPostJobService.java | 3 ++- .../android/ui/reader/services/post/ReaderPostService.java | 3 ++- .../ui/reader/services/search/ReaderSearchJobService.java | 3 ++- .../android/ui/reader/services/search/ReaderSearchService.java | 3 ++- .../android/ui/reader/services/update/ReaderUpdateLogic.java | 3 ++- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderBlogActions.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderBlogActions.java index 80e6e75b5ae7..21f2a01c547f 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderBlogActions.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderBlogActions.java @@ -401,7 +401,8 @@ public void onErrorResponse(VolleyError volleyError) { WordPress.getRestClientUtilsV1_1().getWithLocale("read/sites/" + blogId, listener, errorListener); } else { WordPress.getRestClientUtilsV1_1() - .getWithLocale("read/sites/" + UrlUtils.urlEncode(UrlUtils.getHost(blogUrl)), listener, errorListener); + .getWithLocale("read/sites/" + UrlUtils.urlEncode(UrlUtils.getHost(blogUrl)), listener, + errorListener); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostJobService.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostJobService.java index 7fc9c09c268f..70a2ed80efb8 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostJobService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostJobService.java @@ -1,6 +1,5 @@ package org.wordpress.android.ui.reader.services.post; -import dagger.hilt.android.AndroidEntryPoint; import android.app.job.JobParameters; import android.app.job.JobService; import android.os.PersistableBundle; @@ -15,6 +14,8 @@ import javax.inject.Inject; +import dagger.hilt.android.AndroidEntryPoint; + import static org.wordpress.android.ui.reader.services.post.ReaderPostServiceStarter.ARG_ACTION; import static org.wordpress.android.ui.reader.services.post.ReaderPostServiceStarter.ARG_BLOG_ID; import static org.wordpress.android.ui.reader.services.post.ReaderPostServiceStarter.ARG_FEED_ID; diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostService.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostService.java index 422c071264d7..5753d9ce4cb7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/post/ReaderPostService.java @@ -1,6 +1,5 @@ package org.wordpress.android.ui.reader.services.post; -import dagger.hilt.android.AndroidEntryPoint; import android.app.Service; import android.content.Intent; import android.os.IBinder; @@ -14,6 +13,8 @@ import javax.inject.Inject; +import dagger.hilt.android.AndroidEntryPoint; + import static org.wordpress.android.ui.reader.services.post.ReaderPostServiceStarter.ARG_ACTION; import static org.wordpress.android.ui.reader.services.post.ReaderPostServiceStarter.ARG_BLOG_ID; import static org.wordpress.android.ui.reader.services.post.ReaderPostServiceStarter.ARG_FEED_ID; diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchJobService.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchJobService.java index 8ccd14307000..f5fd3f46892d 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchJobService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchJobService.java @@ -1,6 +1,5 @@ package org.wordpress.android.ui.reader.services.search; -import dagger.hilt.android.AndroidEntryPoint; import android.app.job.JobParameters; import android.app.job.JobService; @@ -10,6 +9,8 @@ import javax.inject.Inject; +import dagger.hilt.android.AndroidEntryPoint; + import static org.wordpress.android.ui.reader.services.search.ReaderSearchServiceStarter.ARG_OFFSET; import static org.wordpress.android.ui.reader.services.search.ReaderSearchServiceStarter.ARG_QUERY; diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchService.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchService.java index 5f4f7d7e5d34..200bd615e43c 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/search/ReaderSearchService.java @@ -1,6 +1,5 @@ package org.wordpress.android.ui.reader.services.search; -import dagger.hilt.android.AndroidEntryPoint; import android.app.Service; import android.content.Intent; import android.os.IBinder; @@ -12,6 +11,8 @@ import javax.inject.Inject; +import dagger.hilt.android.AndroidEntryPoint; + /** * service which searches for reader posts on wordpress.com */ diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java index 6edcaaa5c67e..a7f9c6099e8b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java @@ -316,7 +316,8 @@ public void onErrorResponse(VolleyError volleyError) { AppLog.d(AppLog.T.READER, "reader service > updating followed blogs. Page requested: " + page); // request using ?meta=site,feed to get extra info WordPress.getRestClientUtilsV1_2() - .getWithLocale("read/following/mine?number=100&page=" + page + "&meta=site%2Cfeed", listener, errorListener); + .getWithLocale("read/following/mine?number=100&page=" + page + "&meta=site%2Cfeed", listener, + errorListener); } private void handleFollowedBlogsResponse(final ReaderBlogList serverBlogs, final JSONObject jsonObject) { From 7e3ac5dd83f81fe45b0f9256f600b857520701f2 Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Fri, 15 Mar 2024 13:28:37 -0300 Subject: [PATCH 08/26] Fix unit tests in RecommendApiCallsProviderTest --- .../models/recommend/RecommendApiCallsProviderTest.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/WordPress/src/test/java/org/wordpress/android/models/recommend/RecommendApiCallsProviderTest.kt b/WordPress/src/test/java/org/wordpress/android/models/recommend/RecommendApiCallsProviderTest.kt index 9132c83d0598..bfed290f7162 100644 --- a/WordPress/src/test/java/org/wordpress/android/models/recommend/RecommendApiCallsProviderTest.kt +++ b/WordPress/src/test/java/org/wordpress/android/models/recommend/RecommendApiCallsProviderTest.kt @@ -109,7 +109,7 @@ class RecommendApiCallsProviderTest : BaseUnitTest() { val error = "Invalid response received" whenever(jsonObject.toString()).thenReturn("{name:\"wordpress\",message=[]}") whenever(context.getString(R.string.recommend_app_bad_format_response)).thenReturn(error) - whenever(restClientUtils.get(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { + whenever(restClientUtils.getWithLocale(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { listenerCaptor.lastValue.onResponse(jsonObject) null } @@ -127,7 +127,7 @@ class RecommendApiCallsProviderTest : BaseUnitTest() { val error = "Invalid response received" whenever(jsonObject.optString("name")).thenReturn("jetpack") whenever(context.getString(R.string.recommend_app_bad_format_response)).thenReturn(error) - whenever(restClientUtils.get(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { + whenever(restClientUtils.getWithLocale(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { listenerCaptor.lastValue.onResponse(jsonObject) null } @@ -144,7 +144,7 @@ class RecommendApiCallsProviderTest : BaseUnitTest() { fun `error is tracked on null net response`() = test { val error = "No response received" whenever(context.getString(R.string.recommend_app_null_response)).thenReturn(error) - whenever(restClientUtils.get(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { + whenever(restClientUtils.getWithLocale(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { listenerCaptor.lastValue.onResponse(null) null } @@ -161,7 +161,7 @@ class RecommendApiCallsProviderTest : BaseUnitTest() { fun `error is tracked on volley error`() = test { val error = "Unknown error fetching recommend app template" whenever(context.getString(R.string.recommend_app_generic_get_template_error)).thenReturn(error) - whenever(restClientUtils.get(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { + whenever(restClientUtils.getWithLocale(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { errorListenerCaptor.lastValue.onErrorResponse(mock()) null } From c414730829e361da7deec66513d5ed83cc99b88b Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Fri, 15 Mar 2024 13:51:48 -0300 Subject: [PATCH 09/26] Fix detekt --- .../RecommendApiCallsProviderTest.kt | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/WordPress/src/test/java/org/wordpress/android/models/recommend/RecommendApiCallsProviderTest.kt b/WordPress/src/test/java/org/wordpress/android/models/recommend/RecommendApiCallsProviderTest.kt index bfed290f7162..ddf347895251 100644 --- a/WordPress/src/test/java/org/wordpress/android/models/recommend/RecommendApiCallsProviderTest.kt +++ b/WordPress/src/test/java/org/wordpress/android/models/recommend/RecommendApiCallsProviderTest.kt @@ -109,7 +109,13 @@ class RecommendApiCallsProviderTest : BaseUnitTest() { val error = "Invalid response received" whenever(jsonObject.toString()).thenReturn("{name:\"wordpress\",message=[]}") whenever(context.getString(R.string.recommend_app_bad_format_response)).thenReturn(error) - whenever(restClientUtils.getWithLocale(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { + whenever( + restClientUtils.getWithLocale( + anyString(), + listenerCaptor.capture(), + errorListenerCaptor.capture() + ) + ).doAnswer { listenerCaptor.lastValue.onResponse(jsonObject) null } @@ -127,7 +133,13 @@ class RecommendApiCallsProviderTest : BaseUnitTest() { val error = "Invalid response received" whenever(jsonObject.optString("name")).thenReturn("jetpack") whenever(context.getString(R.string.recommend_app_bad_format_response)).thenReturn(error) - whenever(restClientUtils.getWithLocale(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { + whenever( + restClientUtils.getWithLocale( + anyString(), + listenerCaptor.capture(), + errorListenerCaptor.capture() + ) + ).doAnswer { listenerCaptor.lastValue.onResponse(jsonObject) null } @@ -144,7 +156,13 @@ class RecommendApiCallsProviderTest : BaseUnitTest() { fun `error is tracked on null net response`() = test { val error = "No response received" whenever(context.getString(R.string.recommend_app_null_response)).thenReturn(error) - whenever(restClientUtils.getWithLocale(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { + whenever( + restClientUtils.getWithLocale( + anyString(), + listenerCaptor.capture(), + errorListenerCaptor.capture() + ) + ).doAnswer { listenerCaptor.lastValue.onResponse(null) null } @@ -161,7 +179,13 @@ class RecommendApiCallsProviderTest : BaseUnitTest() { fun `error is tracked on volley error`() = test { val error = "Unknown error fetching recommend app template" whenever(context.getString(R.string.recommend_app_generic_get_template_error)).thenReturn(error) - whenever(restClientUtils.getWithLocale(anyString(), listenerCaptor.capture(), errorListenerCaptor.capture())).doAnswer { + whenever( + restClientUtils.getWithLocale( + anyString(), + listenerCaptor.capture(), + errorListenerCaptor.capture() + ) + ).doAnswer { errorListenerCaptor.lastValue.onErrorResponse(mock()) null } From 237858c5ece53645f893f1432f9c54cec9e53e4f Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Fri, 15 Mar 2024 15:26:21 -0300 Subject: [PATCH 10/26] Remove useless language query parameter (locale) from read interests request. We were adding both locale and _locale, but only _locale is required. --- .../android/ui/reader/services/update/ReaderUpdateLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java index a7f9c6099e8b..9af7b113c7db 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/update/ReaderUpdateLogic.java @@ -279,7 +279,7 @@ private void fetchInterestTags() { HashMap params = new HashMap<>(); params.put("_locale", mLanguage); mClientUtilsProvider.getRestClientForInterestTags() - .getWithLocale("read/interests", params, null, listener, errorListener); + .get("read/interests", params, null, listener, errorListener); } private void handleInterestTagsResponse(final JSONObject jsonObject) { From fa4c773d4fab223144d935387ab079cdb6ca1e75 Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Fri, 15 Mar 2024 15:34:46 -0300 Subject: [PATCH 11/26] Fix ReaderDiscoverLogic crash: verify if simplifiedJsonList has at least 2 items before adding the first recommendation card to position 2, otherwise add to the last position of the list --- .../ui/reader/services/discover/ReaderDiscoverLogic.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt index fb15df4bf710..bdc07efcf4c1 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt @@ -241,7 +241,11 @@ class ReaderDiscoverLogic @Inject constructor( // If we've received a recommended tags or blogs card as the first element, // it should be displayed as the third card. if (firstRecommendationCard != null) { - simplifiedJsonList.add(2, firstRecommendationCard) + if (simplifiedJsonList.size >=2) { + simplifiedJsonList.add(2, firstRecommendationCard) + } else { + simplifiedJsonList.add(firstRecommendationCard) + } } return JSONArray(simplifiedJsonList) From 315f71de3fd795297bfac0640a2a7d284c8daa63 Mon Sep 17 00:00:00 2001 From: Renan Lukas <14964993+RenanLukas@users.noreply.github.com> Date: Fri, 15 Mar 2024 15:45:33 -0300 Subject: [PATCH 12/26] Prevent NPE when trying to parse next_page_handle object in ReaderDiscoverLogic --- .../repository/usecases/ParseDiscoverCardsJsonUseCase.kt | 2 +- .../ui/reader/services/discover/ReaderDiscoverLogic.kt | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/repository/usecases/ParseDiscoverCardsJsonUseCase.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/repository/usecases/ParseDiscoverCardsJsonUseCase.kt index 9197e5e635c2..1e5806799c47 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/repository/usecases/ParseDiscoverCardsJsonUseCase.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/repository/usecases/ParseDiscoverCardsJsonUseCase.kt @@ -78,7 +78,7 @@ class ParseDiscoverCardsJsonUseCase @Inject constructor( } fun parseNextPageHandle(jsonObject: JSONObject): String = - jsonObject.getString(ReaderConstants.JSON_NEXT_PAGE_HANDLE) + jsonObject.optString(ReaderConstants.JSON_NEXT_PAGE_HANDLE) fun convertListOfJsonArraysIntoSingleJsonArray(jsons: List): JSONArray { val arrays = jsons.map { JSONArray(it) } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt index bdc07efcf4c1..8678093db272 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/discover/ReaderDiscoverLogic.kt @@ -153,7 +153,9 @@ class ReaderDiscoverLogic @Inject constructor( insertCardsJsonIntoDb(simplifiedCardsJson) val nextPageHandle = parseDiscoverCardsJsonUseCase.parseNextPageHandle(json) - appPrefsWrapper.readerCardsPageHandle = nextPageHandle + if (nextPageHandle.isNotEmpty()) { + appPrefsWrapper.readerCardsPageHandle = nextPageHandle + } if (cards.isEmpty()) { readerTagTableWrapper.clearTagLastUpdated(ReaderTag.createDiscoverPostCardsTag()) From 889564d9300e007a93743c8c970fdfb28a7d2cd3 Mon Sep 17 00:00:00 2001 From: Automattic Release Bot Date: Mon, 18 Mar 2024 16:16:11 +0000 Subject: [PATCH 13/26] Bump version number --- version.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/version.properties b/version.properties index ea1f6fa20b9a..72b14604191b 100644 --- a/version.properties +++ b/version.properties @@ -1,2 +1,2 @@ -versionName=24.4 -versionCode=1416 \ No newline at end of file +versionName=24.5-rc-1 +versionCode=1417 \ No newline at end of file From fb4d64737861b9d88d4b5cbe76362c8ccc3bc3bb Mon Sep 17 00:00:00 2001 From: Automattic Release Bot Date: Mon, 18 Mar 2024 16:16:11 +0000 Subject: [PATCH 14/26] Update draft release notes for 24.5. --- WordPress/metadata/release_notes.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/WordPress/metadata/release_notes.txt b/WordPress/metadata/release_notes.txt index a2522385fd21..b16879e8b529 100644 --- a/WordPress/metadata/release_notes.txt +++ b/WordPress/metadata/release_notes.txt @@ -1,5 +1,4 @@ -We made a few changes to the block editor. +* [*] [internal] Block editor: Remove code associated to Story block [https://github.com/wordpress-mobile/WordPress-Android/pull/20400] +* [*] [Jetpack-only] Fixes broken links on some notifications [https://github.com/wordpress-mobile/WordPress-Android/pull/20417] +* [**] [internal] Block editor: Upgrade React Native to version 0.73.3 [#20167] -- The app won’t crash anymore when the editor auto-scrolls down to a block. -- You’ll now see an error message when a video fails to upload to media and text blocks. -- Images no longer appear partly transparent while they’re being uploaded. From 68a93b84943cd2dd51751886e2cad7435b0015c2 Mon Sep 17 00:00:00 2001 From: Automattic Release Bot Date: Mon, 18 Mar 2024 16:16:11 +0000 Subject: [PATCH 15/26] Update draft release notes for Jetpack 24.5. --- WordPress/jetpack_metadata/release_notes.txt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/WordPress/jetpack_metadata/release_notes.txt b/WordPress/jetpack_metadata/release_notes.txt index 24855a2e2753..b16879e8b529 100644 --- a/WordPress/jetpack_metadata/release_notes.txt +++ b/WordPress/jetpack_metadata/release_notes.txt @@ -1,6 +1,4 @@ -- Added a new Traffic tab on the Stats screen -- Upgraded the Notifications design -- Introduced video block support for VideoPress v5 -- Fixed a crash caused by block editor auto-scrolling -- Provided an error message for video upload failure -- Removed image transparency during upload +* [*] [internal] Block editor: Remove code associated to Story block [https://github.com/wordpress-mobile/WordPress-Android/pull/20400] +* [*] [Jetpack-only] Fixes broken links on some notifications [https://github.com/wordpress-mobile/WordPress-Android/pull/20417] +* [**] [internal] Block editor: Upgrade React Native to version 0.73.3 [#20167] + From fc1a6e70a9254abf4a5cf0f04d76254adb295f71 Mon Sep 17 00:00:00 2001 From: Automattic Release Bot Date: Mon, 18 Mar 2024 16:16:11 +0000 Subject: [PATCH 16/26] Release Notes: add new section for next version (24.6) --- RELEASE-NOTES.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 5a2791307788..d1172d3caa0a 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,5 +1,9 @@ *** PLEASE FOLLOW THIS FORMAT: [] [] +24.6 +----- + + 24.5 ----- * [*] [internal] Block editor: Remove code associated to Story block [https://github.com/wordpress-mobile/WordPress-Android/pull/20400] From b596c0a72e3fce7aa81a92e7dbd9be31b69d99d5 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Mon, 18 Mar 2024 12:24:14 -0400 Subject: [PATCH 17/26] Update FluxC version to 2.72.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index a9696d28acaf..fca80f2f1b84 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ ext { automatticTracksVersion = '3.5.0' gutenbergMobileVersion = 'v1.115.0' wordPressAztecVersion = 'v2.0' - wordPressFluxCVersion = 'trunk-b9ecc708dde74d6cc95aeab42e56fb8067640039' + wordPressFluxCVersion = '2.72.0' wordPressLoginVersion = '1.14.1' wordPressPersistentEditTextVersion = '1.0.2' wordPressUtilsVersion = 'trunk-4d6cb9a20bfda0dfe2310cf8275cbdcfb0d42ba7' From 9c47fb44a7582d3952ef46b9d550d018306cdb50 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Mon, 18 Mar 2024 12:26:17 -0400 Subject: [PATCH 18/26] Update wordPressUtilsVersion to 3.14.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index fca80f2f1b84..5dbdd2f08470 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ ext { wordPressFluxCVersion = '2.72.0' wordPressLoginVersion = '1.14.1' wordPressPersistentEditTextVersion = '1.0.2' - wordPressUtilsVersion = 'trunk-4d6cb9a20bfda0dfe2310cf8275cbdcfb0d42ba7' + wordPressUtilsVersion = '3.14.0' indexosMediaForMobileVersion = '43a9026f0973a2f0a74fa813132f6a16f7499c3a' // debug From ee2bed952e94462301f91cda5e0c48765243e824 Mon Sep 17 00:00:00 2001 From: Oguz Kocer Date: Mon, 18 Mar 2024 12:27:54 -0400 Subject: [PATCH 19/26] Remove Jetpack only release notes from WordPress 24.5 release notes --- WordPress/metadata/release_notes.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/WordPress/metadata/release_notes.txt b/WordPress/metadata/release_notes.txt index b16879e8b529..e8785f47b116 100644 --- a/WordPress/metadata/release_notes.txt +++ b/WordPress/metadata/release_notes.txt @@ -1,4 +1,3 @@ * [*] [internal] Block editor: Remove code associated to Story block [https://github.com/wordpress-mobile/WordPress-Android/pull/20400] -* [*] [Jetpack-only] Fixes broken links on some notifications [https://github.com/wordpress-mobile/WordPress-Android/pull/20417] * [**] [internal] Block editor: Upgrade React Native to version 0.73.3 [#20167] From 990b68e4a4c917739504ea916899fbfe4e8540f4 Mon Sep 17 00:00:00 2001 From: Automattic Release Bot Date: Mon, 18 Mar 2024 16:42:08 +0000 Subject: [PATCH 20/26] Merge strings from libraries for translation --- WordPress/src/main/res/values/strings.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml index ef4354f0bdd0..36c4a2bb7004 100644 --- a/WordPress/src/main/res/values/strings.xml +++ b/WordPress/src/main/res/values/strings.xml @@ -4796,4 +4796,12 @@ translators: %s: Select control option value e.g: "Auto, 25%". --> Edit video Video caption. Empty Video caption. %s + Button to copy error details + Button to copy post text + Copy error details + Copy post text + Tap here to copy error details + Tap here to copy post text + The editor has encountered an unexpected error + You can copy your post text in case your content is impacted. Copy error details to debug and share with support. From ef85b57eb6fdc11467df8ae48c633a163560b93f Mon Sep 17 00:00:00 2001 From: Automattic Release Bot Date: Mon, 18 Mar 2024 16:42:09 +0000 Subject: [PATCH 21/26] Freeze strings for translation --- fastlane/resources/values/strings.xml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/fastlane/resources/values/strings.xml b/fastlane/resources/values/strings.xml index 82adbf31dd1d..36c4a2bb7004 100644 --- a/fastlane/resources/values/strings.xml +++ b/fastlane/resources/values/strings.xml @@ -1629,14 +1629,6 @@ 1 Like %d Likes Error loading like data. %s. - - <a href="">You</a> like this. - <a href="">You and 1 blogger</a> like this. - <a href="">You and %1$s bloggers</a> like this. - <a href="">1 blogger</a> likes this. - <a href="">%1$s bloggers</a> like this. Reader @@ -1720,6 +1712,8 @@ Your draft is uploading Post converted back to draft Failed to insert media.\nPlease tap to retry. + Updating post content + Failed to update post content Post settings @@ -4802,4 +4796,12 @@ translators: %s: Select control option value e.g: "Auto, 25%". --> Edit video Video caption. Empty Video caption. %s + Button to copy error details + Button to copy post text + Copy error details + Copy post text + Tap here to copy error details + Tap here to copy post text + The editor has encountered an unexpected error + You can copy your post text in case your content is impacted. Copy error details to debug and share with support. From 2f20fb63e8937fac5bf13c03bcd3eeca4d3c4fe1 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Mon, 18 Mar 2024 18:28:00 +0100 Subject: [PATCH 22/26] fix: when copying React Native bundle source map, rely on input/output of copy task It worked previously, as Sentry Gradle plugin was making the mergeAssets run every time (breaking up to date state) --- WordPress/build.gradle | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/WordPress/build.gradle b/WordPress/build.gradle index 019b399b0663..419c1ae4ebbb 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -718,18 +718,14 @@ if (project.hasProperty("debugStoreFile")) { // service during the build process. android { applicationVariants.all { variant -> - variant.mergeAssetsProvider.configure { - doLast { - // Copy bundle and source map files - copy { - from(outputDir) - into("${buildDir}/react-native-bundle-source-map") - include("*.bundle", "*.bundle.map") - } + tasks.register("copy${variant.name.capitalize()}ReactNativeBundleSourceMap", Copy) { + from("${buildDir}/intermediates/assets/${variant.name}") + into("${buildDir}/react-native-bundle-source-map") + include("*.bundle", "*.bundle.map") + } - // Delete source maps - delete(fileTree(dir: outputDir, includes: ['**/*.bundle.map'])) - } + variant.mergeAssetsProvider.configure { + finalizedBy("copy${variant.name.capitalize()}ReactNativeBundleSourceMap") } } } From 5671a2df548e1a73bb54d9068b6fee5577f78b6a Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Tue, 19 Mar 2024 09:46:23 +0100 Subject: [PATCH 23/26] fix: bring back deleting `*.bundle.map` files for assets --- WordPress/build.gradle | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/WordPress/build.gradle b/WordPress/build.gradle index 419c1ae4ebbb..e7a43bc9e931 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -718,10 +718,17 @@ if (project.hasProperty("debugStoreFile")) { // service during the build process. android { applicationVariants.all { variant -> + def variantAssets = "${buildDir}/intermediates/assets/${variant.name}" + + tasks.register("delete${variant.name.capitalize()}ReactNativeBundleSourceMap", Delete) { + delete(fileTree(dir: variantAssets, includes: ['**/*.bundle.map'])) + } + tasks.register("copy${variant.name.capitalize()}ReactNativeBundleSourceMap", Copy) { from("${buildDir}/intermediates/assets/${variant.name}") into("${buildDir}/react-native-bundle-source-map") include("*.bundle", "*.bundle.map") + finalizedBy("delete${variant.name.capitalize()}ReactNativeBundleSourceMap") } variant.mergeAssetsProvider.configure { From edf18af1f515c04f1e5e42bc92908f59f107c760 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Tue, 19 Mar 2024 09:52:46 +0100 Subject: [PATCH 24/26] build: configure react native bundle source map tasks lazily --- WordPress/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/build.gradle b/WordPress/build.gradle index e7a43bc9e931..d24e6a187d74 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -717,7 +717,7 @@ if (project.hasProperty("debugStoreFile")) { // Copy React Native JavaScript bundle and source map so they can be upload it to the Crash logging // service during the build process. android { - applicationVariants.all { variant -> + applicationVariants.configureEach { variant -> def variantAssets = "${buildDir}/intermediates/assets/${variant.name}" tasks.register("delete${variant.name.capitalize()}ReactNativeBundleSourceMap", Delete) { From 6ea143cef4e471a198fb8a192367e22e69e8962f Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Tue, 19 Mar 2024 11:11:51 +0100 Subject: [PATCH 25/26] refactor: use assets path from `mergeAssetsProvider` instead of hardcoded one --- WordPress/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/build.gradle b/WordPress/build.gradle index d24e6a187d74..85dcee987880 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -718,7 +718,7 @@ if (project.hasProperty("debugStoreFile")) { // service during the build process. android { applicationVariants.configureEach { variant -> - def variantAssets = "${buildDir}/intermediates/assets/${variant.name}" + def variantAssets = variant.mergeAssetsProvider.get().outputDir.get() tasks.register("delete${variant.name.capitalize()}ReactNativeBundleSourceMap", Delete) { delete(fileTree(dir: variantAssets, includes: ['**/*.bundle.map'])) From 60b25713d6c50109cbb2d4ac9b6b4c923aa8b564 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Tue, 19 Mar 2024 11:13:39 +0100 Subject: [PATCH 26/26] fix: use `variantAssets` var instead of hardcode path --- WordPress/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/build.gradle b/WordPress/build.gradle index 85dcee987880..8dc5d49ac99c 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -725,7 +725,7 @@ android { } tasks.register("copy${variant.name.capitalize()}ReactNativeBundleSourceMap", Copy) { - from("${buildDir}/intermediates/assets/${variant.name}") + from(variantAssets) into("${buildDir}/react-native-bundle-source-map") include("*.bundle", "*.bundle.map") finalizedBy("delete${variant.name.capitalize()}ReactNativeBundleSourceMap")