aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/main/java/org/wordpress
diff options
context:
space:
mode:
authorDanilo Ercoli <ercoli@gmail.com>2015-02-24 15:02:29 +0100
committerDanilo Ercoli <ercoli@gmail.com>2015-02-24 15:02:29 +0100
commit6e14f88188d08eedb3bb359138760f4e1493b485 (patch)
treea14e4d6be901a1df29a7d28ad9f7d54495d68d95 /WordPress/src/main/java/org/wordpress
parent827105c107f2f2908cfd7721602d11ad2e96dd34 (diff)
parentd0a5ce408f5c7c6fb3c53adf3559129eead8e3ef (diff)
downloadgradle-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')
-rw-r--r--WordPress/src/main/java/org/wordpress/android/models/ReaderPost.java11
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderBlogActions.java24
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderCommentActions.java6
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderPostActions.java46
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderTagActions.java2
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/reader/actions/ReaderUserActions.java2
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/reader/services/ReaderUpdateService.java12
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() {