aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/main/java/org/wordpress/android/ui/stats/models/ClicksModel.java
diff options
context:
space:
mode:
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/ui/stats/models/ClicksModel.java')
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/stats/models/ClicksModel.java90
1 files changed, 90 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/models/ClicksModel.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/models/ClicksModel.java
new file mode 100644
index 000000000..ef60320aa
--- /dev/null
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/models/ClicksModel.java
@@ -0,0 +1,90 @@
+package org.wordpress.android.ui.stats.models;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.wordpress.android.util.AppLog;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+
+public class ClicksModel extends BaseStatsModel {
+ private String mPeriod;
+ private String mDate;
+ private String mBlogID;
+ private int mOtherClicks;
+ private int mTotalClicks;
+ private List<ClickGroupModel> mClickGroups;
+
+ public ClicksModel(String blogID, JSONObject response) throws JSONException {
+ this.mBlogID = blogID;
+ this.mPeriod = response.getString("period");
+ this.mDate = response.getString("date");
+
+ JSONObject jDaysObject = response.getJSONObject("days");
+ if (jDaysObject.length() == 0) {
+ throw new JSONException("Invalid document returned from the REST API");
+ }
+
+ JSONArray jClickGroupsArray;
+ // Read the first day
+ Iterator<String> keys = jDaysObject.keys();
+ String key = keys.next();
+ JSONObject firstDayObject = jDaysObject.getJSONObject(key);
+ this.mOtherClicks = firstDayObject.getInt("other_clicks");
+ this.mTotalClicks = firstDayObject.getInt("total_clicks");
+ jClickGroupsArray = firstDayObject.optJSONArray("clicks");
+
+ if (jClickGroupsArray != null) {
+ mClickGroups = new ArrayList<>(jClickGroupsArray.length());
+ for (int i = 0; i < jClickGroupsArray.length(); i++) {
+ try {
+ JSONObject currentGroupJSON = jClickGroupsArray.getJSONObject(i);
+ ClickGroupModel currentGroupModel = new ClickGroupModel(blogID, mDate, currentGroupJSON);
+ mClickGroups.add(currentGroupModel);
+ } catch (JSONException e) {
+ AppLog.e(AppLog.T.STATS, "Unexpected ClickGroupModel object " +
+ "at position " + i + " Response: " + response.toString(), e);
+ }
+ }
+ }
+ }
+
+ public String getBlogID() {
+ return mBlogID;
+ }
+
+ public void setBlogID(String blogID) {
+ this.mBlogID = blogID;
+ }
+
+ public String getDate() {
+ return mDate;
+ }
+
+ public void setDate(String date) {
+ this.mDate = date;
+ }
+
+ public String getPeriod() {
+ return mPeriod;
+ }
+
+ public void setPeriod(String period) {
+ this.mPeriod = period;
+ }
+
+ public List<ClickGroupModel> getClickGroups() {
+ return this.mClickGroups;
+ }
+
+ public int getOtherClicks() {
+ return mOtherClicks;
+ }
+
+ public int getTotalClicks() {
+ return mTotalClicks;
+ }
+}