diff options
author | Chris Warrington <cmw@google.com> | 2016-10-18 12:29:21 +0100 |
---|---|---|
committer | Chris Warrington <cmw@google.com> | 2016-10-18 12:34:18 +0100 |
commit | e3780081075c01aa1dff6d1f373cb43192b33e68 (patch) | |
tree | fb734615933a39f3d009210dc0d1457160479b35 /WordPress/src/main/java/org/wordpress/android/ui/stats/models/InsightsLatestPostModel.java | |
parent | 7e05eb7e57827eddc885570bc00aed8a50320dbf (diff) | |
parent | 025b8b226c8d8edba2b309ca878572f40512eca7 (diff) | |
download | gradle-perf-android-medium-e3780081075c01aa1dff6d1f373cb43192b33e68.tar.gz |
Merge remote-tracking branch 'origin/upstream-master' into masterHEADstudio-3.4.0studio-3.2.1studio-3.1.2studio-3.0studio-2.3gradle_3.4.0gradle_3.1.2gradle_3.0.0gradle_2.3.0studio-master-devmirror-goog-studio-master-devmastermain
Change-Id: I63f5e16d09297c48432192761b840310935eb903
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/ui/stats/models/InsightsLatestPostModel.java')
-rw-r--r-- | WordPress/src/main/java/org/wordpress/android/ui/stats/models/InsightsLatestPostModel.java | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/models/InsightsLatestPostModel.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/models/InsightsLatestPostModel.java new file mode 100644 index 000000000..534348c37 --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/models/InsightsLatestPostModel.java @@ -0,0 +1,87 @@ +package org.wordpress.android.ui.stats.models; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + + +public class InsightsLatestPostModel extends BaseStatsModel { + private String mBlogID; + private String mPostTitle; + private String mPostURL; + private String mPostDate; + private int mPostID; + private int mPostViewsCount = Integer.MIN_VALUE; + private int mPostCommentCount; + private int mPostLikeCount; + private int mPostsFound; // if 0 there are no posts on the blog. + + public InsightsLatestPostModel(String blogID, JSONObject response) throws JSONException { + this.mBlogID = blogID; + + mPostsFound = response.optInt("found", 0); + if (mPostsFound == 0) { + // No latest post found! + return; + } + + JSONArray postsObject = response.getJSONArray("posts"); + if (postsObject.length() == 0) { + throw new JSONException("Invalid document returned from the REST API"); + } + + // Read the first post + JSONObject firstPostObject = postsObject.getJSONObject(0); + + this.mPostID = firstPostObject.getInt("ID"); + this.mPostTitle = firstPostObject.getString("title"); + this.mPostDate = firstPostObject.getString("date"); + this.mPostURL = firstPostObject.getString("URL"); + this.mPostLikeCount = firstPostObject.getInt("like_count"); + + JSONObject discussionObject = firstPostObject.optJSONObject("discussion"); + if (discussionObject != null) { + this.mPostCommentCount = discussionObject.optInt("comment_count", 0); + } + } + + public boolean isLatestPostAvailable() { + return mPostsFound > 0; + } + + public String getBlogID() { + return mBlogID; + } + + public String getPostDate() { + return mPostDate; + } + + public String getPostTitle() { + return mPostTitle; + } + + public String getPostURL() { + return mPostURL; + } + + public int getPostID() { + return mPostID; + } + + public int getPostViewsCount() { + return mPostViewsCount; + } + + public void setPostViewsCount(int postViewsCount) { + this.mPostViewsCount = postViewsCount; + } + + public int getPostCommentCount() { + return mPostCommentCount; + } + + public int getPostLikeCount() { + return mPostLikeCount; + } +} |