diff options
author | Danilo Ercoli <ercoli@gmail.com> | 2015-02-24 15:02:29 +0100 |
---|---|---|
committer | Danilo Ercoli <ercoli@gmail.com> | 2015-02-24 15:02:29 +0100 |
commit | 6e14f88188d08eedb3bb359138760f4e1493b485 (patch) | |
tree | a14e4d6be901a1df29a7d28ad9f7d54495d68d95 /WordPress/src/main/java/org/wordpress | |
parent | 827105c107f2f2908cfd7721602d11ad2e96dd34 (diff) | |
parent | d0a5ce408f5c7c6fb3c53adf3559129eead8e3ef (diff) | |
download | gradle-perf-android-medium-6e14f88188d08eedb3bb359138760f4e1493b485.tar.gz |
Merge pull request #2361 from wordpress-mobile/issue/2359-reader-rest-v11
Use rest v1.1 for all Reader calls
Diffstat (limited to 'WordPress/src/main/java/org/wordpress')
7 files changed, 67 insertions, 36 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 2673b1f05..9dcc95788 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/ReaderPost.java +++ b/WordPress/src/main/java/org/wordpress/android/models/ReaderPost.java @@ -85,18 +85,25 @@ public class ReaderPost { post.shortUrl = JSONUtil.getString(json, "short_URL"); post.setBlogUrl(JSONUtil.getString(json, "site_URL")); - post.numReplies = json.optInt("comment_count"); post.numLikes = json.optInt("like_count"); post.isLikedByCurrentUser = JSONUtil.getBool(json, "i_like"); post.isFollowedByCurrentUser = JSONUtil.getBool(json, "is_following"); post.isRebloggedByCurrentUser = JSONUtil.getBool(json, "is_reblogged"); - post.isCommentsOpen = JSONUtil.getBool(json, "comments_open"); post.isExternal = JSONUtil.getBool(json, "is_external"); post.isPrivate = JSONUtil.getBool(json, "site_is_private"); post.isLikesEnabled = JSONUtil.getBool(json, "likes_enabled"); post.isSharingEnabled = JSONUtil.getBool(json, "sharing_enabled"); + JSONObject jsonDiscussion = json.optJSONObject("discussion"); + if (jsonDiscussion != null) { + post.isCommentsOpen = JSONUtil.getBool(jsonDiscussion, "comments_open"); + post.numReplies = jsonDiscussion.optInt("comment_count"); + } else { + post.isCommentsOpen = JSONUtil.getBool(json, "comments_open"); + post.numReplies = json.optInt("comment_count"); + } + // parse the author section assignAuthorFromJson(post, json.optJSONObject("author")); 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 28e32eeb1..38837acbe 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 @@ -54,7 +54,7 @@ public class ReaderBlogActions { } final String actionName = (isAskingToFollow ? "follow" : "unfollow"); - final String path = "/sites/" + blogId + "/follows/" + (isAskingToFollow ? "new" : "mine/delete"); + final String path = "sites/" + blogId + "/follows/" + (isAskingToFollow ? "new" : "mine/delete"); com.wordpress.rest.RestRequest.Listener listener = new RestRequest.Listener() { @Override @@ -82,7 +82,7 @@ public class ReaderBlogActions { } } }; - WordPress.getRestClientUtils().post(path, listener, errorListener); + WordPress.getRestClientUtilsV1_1().post(path, listener, errorListener); return true; } @@ -170,7 +170,7 @@ public class ReaderBlogActions { } final String actionName = (isAskingToFollow ? "follow" : "unfollow"); - final String path = "/read/following/mine/" + final String path = "read/following/mine/" + (isAskingToFollow ? "new" : "delete") + "?url=" + UrlUtils.urlEncode(feedUrl); @@ -200,7 +200,7 @@ public class ReaderBlogActions { } } }; - WordPress.getRestClientUtils().post(path, listener, errorListener); + WordPress.getRestClientUtilsV1_1().post(path, listener, errorListener); return true; } @@ -307,9 +307,9 @@ public class ReaderBlogActions { }; if (hasBlogId) { - WordPress.getRestClientUtilsV1_1().get("/sites/" + blogId, listener, errorListener); + WordPress.getRestClientUtilsV1_1().get("sites/" + blogId, listener, errorListener); } else { - WordPress.getRestClientUtilsV1_1().get("/sites/" + UrlUtils.urlEncode(UrlUtils.getDomainFromUrl(blogUrl)), listener, errorListener); + WordPress.getRestClientUtilsV1_1().get("sites/" + UrlUtils.urlEncode(UrlUtils.getDomainFromUrl(blogUrl)), listener, errorListener); } } public static void updateFeedInfo(long feedId, String feedUrl, final UpdateBlogInfoListener infoListener) { @@ -330,9 +330,9 @@ public class ReaderBlogActions { }; String path; if (feedId != 0) { - path = "/read/feed/" + feedId; + path = "read/feed/" + feedId; } else { - path = "/read/feed/" + UrlUtils.urlEncode(feedUrl); + path = "read/feed/" + UrlUtils.urlEncode(feedUrl); } WordPress.getRestClientUtilsV1_1().get(path, listener, errorListener); } @@ -431,8 +431,8 @@ public class ReaderBlogActions { }; AppLog.i(T.READER, "blocking blog " + blogId); - String path = "/me/block/sites/" + Long.toString(blogId) + "/new"; - WordPress.getRestClientUtils().post(path, listener, errorListener); + String path = "me/block/sites/" + Long.toString(blogId) + "/new"; + WordPress.getRestClientUtilsV1_1().post(path, listener, errorListener); return blockResult; } @@ -466,7 +466,7 @@ public class ReaderBlogActions { }; AppLog.i(T.READER, "unblocking blog " + blockResult.blogId); - String path = "/me/block/sites/" + Long.toString(blockResult.blogId) + "/delete"; - WordPress.getRestClientUtils().post(path, listener, errorListener); + String path = "me/block/sites/" + Long.toString(blockResult.blogId) + "/delete"; + WordPress.getRestClientUtilsV1_1().post(path, listener, errorListener); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderCommentActions.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderCommentActions.java index 56d0fe7e2..2821b4ff2 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderCommentActions.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderCommentActions.java @@ -58,7 +58,7 @@ public class ReaderCommentActions { } }; AppLog.d(T.READER, "updating comments"); - WordPress.getRestClientUtils().get(path, null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().get(path, null, null, listener, errorListener); } private static void handleUpdateCommentsResponse(final JSONObject jsonObject, final long blogId, @@ -212,7 +212,7 @@ public class ReaderCommentActions { }; AppLog.i(T.READER, "submitting comment"); - WordPress.getRestClientUtils().post(path, params, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().post(path, params, null, listener, errorListener); return newComment; } @@ -275,7 +275,7 @@ public class ReaderCommentActions { } }; - WordPress.getRestClientUtils().post(path, listener, errorListener); + WordPress.getRestClientUtilsV1_1().post(path, listener, errorListener); return true; } } 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 a88285b17..7088f863c 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 @@ -27,6 +27,7 @@ import org.wordpress.android.ui.reader.utils.ReaderUtils; import org.wordpress.android.util.AppLog; import org.wordpress.android.util.AppLog.T; import org.wordpress.android.util.JSONUtil; +import org.wordpress.android.util.StringUtils; import org.wordpress.android.util.UrlUtils; import org.wordpress.android.util.VolleyUtils; @@ -86,7 +87,7 @@ public class ReaderPostActions { } }; - WordPress.getRestClientUtils().post(path, listener, errorListener); + WordPress.getRestClientUtilsV1_1().post(path, listener, errorListener); return true; } @@ -134,10 +135,10 @@ public class ReaderPostActions { } }; - String path = "/sites/" + post.blogId + String path = "sites/" + post.blogId + "/posts/" + post.postId + "/reblogs/new"; - WordPress.getRestClientUtils().post(path, params, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().post(path, params, null, listener, errorListener); } /* @@ -164,7 +165,7 @@ public class ReaderPostActions { } }; AppLog.d(T.READER, "updating post"); - WordPress.getRestClientUtils().get(path, null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().get(path, null, null, listener, errorListener); } private static void handleUpdatePostResponse(final ReaderPost originalPost, @@ -284,7 +285,7 @@ public class ReaderPostActions { } }; AppLog.d(T.READER, "requesting post"); - WordPress.getRestClientUtils().get(path, null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().get(path, null, null, listener, errorListener); } /* @@ -338,7 +339,7 @@ public class ReaderPostActions { } }; - WordPress.getRestClientUtils().get(sb.toString(), null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().get(sb.toString(), null, null, listener, errorListener); } /* @@ -372,13 +373,13 @@ public class ReaderPostActions { } }; AppLog.d(T.READER, "updating posts in blog " + blogId); - WordPress.getRestClientUtils().get(path, null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().get(path, null, null, listener, errorListener); } public static void requestPostsForFeed(final long feedId, final RequestDataAction updateAction, final UpdateResultListener resultListener) { - String path = "/read/feed/" + feedId + "/posts/?meta=site,likes"; + String path = "read/feed/" + feedId + "/posts/?meta=site,likes"; if (updateAction == RequestDataAction.LOAD_OLDER) { String dateOldest = ReaderPostTable.getOldestPubDateInFeed(feedId); if (!TextUtils.isEmpty(dateOldest)) { @@ -452,13 +453,13 @@ public class ReaderPostActions { // if passed tag has an assigned endpoint, return it and be done if (!TextUtils.isEmpty(tag.getEndpoint())) { - return tag.getEndpoint(); + return getRelativeEndpoint(tag.getEndpoint()); } // check the db for the endpoint String endpoint = ReaderTagTable.getEndpointForTag(tag); if (!TextUtils.isEmpty(endpoint)) { - return endpoint; + return getRelativeEndpoint(endpoint); } // never hand craft the endpoint for default tags, since these MUST be updated @@ -467,7 +468,30 @@ public class ReaderPostActions { return null; } - return String.format("/read/tags/%s/posts", ReaderUtils.sanitizeWithDashes(tag.getTagName())); + return String.format("read/tags/%s/posts", ReaderUtils.sanitizeWithDashes(tag.getTagName())); + } + + /* + * returns the passed endpoint without the unnecessary path - this is + * needed because as of 20-Feb-2015 the /read/menu/ call returns the + * full path but we don't want to use the full path since it may change + * between API versions (as it did when we moved from v1 to v1.1) + * + * ex: https://public-api.wordpress.com/rest/v1/read/tags/fitness/posts + * becomes just read/tags/fitness/posts + */ + private static String getRelativeEndpoint(final String endpoint) { + if (endpoint != null && endpoint.startsWith("http")) { + int pos = endpoint.indexOf("/read/"); + if (pos > -1) { + return endpoint.substring(pos + 1, endpoint.length()); + } + pos = endpoint.indexOf("/v1/"); + if (pos > -1) { + return endpoint.substring(pos + 4, endpoint.length()); + } + } + return StringUtils.notNullStr(endpoint); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderTagActions.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderTagActions.java index 5a204cd74..22f9c8aad 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderTagActions.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderTagActions.java @@ -112,7 +112,7 @@ public class ReaderTagActions { } } }; - WordPress.getRestClientUtils().post(path, listener, errorListener); + WordPress.getRestClientUtilsV1_1().post(path, listener, errorListener); return true; } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderUserActions.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderUserActions.java index d82c8979d..0f2cce72b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderUserActions.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderUserActions.java @@ -49,7 +49,7 @@ public class ReaderUserActions { } }; - WordPress.getRestClientUtils().get("me", listener, errorListener); + WordPress.getRestClientUtilsV1_1().get("me", listener, errorListener); } /* diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/ReaderUpdateService.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/ReaderUpdateService.java index b6c0f62e2..c7ca3548e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/services/ReaderUpdateService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/services/ReaderUpdateService.java @@ -130,7 +130,7 @@ public class ReaderUpdateService extends Service { } }; AppLog.d(AppLog.T.READER, "reader service > updating tags"); - WordPress.getRestClientUtils().get("read/menu", null, null, listener, errorListener); + WordPress.getRestClientUtilsV1_1().get("read/menu", null, null, listener, errorListener); } private void handleUpdateTagsResponse(final JSONObject jsonObject) { @@ -240,7 +240,7 @@ public class ReaderUpdateService extends Service { AppLog.d(AppLog.T.READER, "reader service > updating followed blogs"); // request using ?meta=site,feed to get extra info - WordPress.getRestClientUtils().get("/read/following/mine?meta=site%2Cfeed", listener, errorListener); + WordPress.getRestClientUtilsV1_1().get("read/following/mine?meta=site%2Cfeed", listener, errorListener); } private void handleFollowedBlogsResponse(final JSONObject jsonObject) { new Thread() { @@ -279,10 +279,10 @@ public class ReaderUpdateService extends Service { }; AppLog.d(AppLog.T.READER, "reader service > updating recommended blogs"); - String path = "/read/recommendations/mine/" - + "?source=mobile" - + "&number=" + Integer.toString(ReaderConstants.READER_MAX_RECOMMENDED_TO_REQUEST); - WordPress.getRestClientUtils().get(path, listener, errorListener); + String path = "read/recommendations/mine/" + + "?source=mobile" + + "&number=" + Integer.toString(ReaderConstants.READER_MAX_RECOMMENDED_TO_REQUEST); + WordPress.getRestClientUtilsV1_1().get(path, listener, errorListener); } private void handleRecommendedBlogsResponse(final JSONObject jsonObject) { new Thread() { |