aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsInsightsAllTimeFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/ui/stats/StatsInsightsAllTimeFragment.java')
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/stats/StatsInsightsAllTimeFragment.java99
1 files changed, 99 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsInsightsAllTimeFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsInsightsAllTimeFragment.java
new file mode 100644
index 000000000..8fa6a17f5
--- /dev/null
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsInsightsAllTimeFragment.java
@@ -0,0 +1,99 @@
+package org.wordpress.android.ui.stats;
+
+import android.os.Bundle;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import org.wordpress.android.R;
+import org.wordpress.android.ui.stats.models.InsightsAllTimeModel;
+import org.wordpress.android.ui.stats.service.StatsService;
+import org.wordpress.android.util.FormatUtils;
+
+
+public class StatsInsightsAllTimeFragment extends StatsAbstractInsightsFragment {
+ public static final String TAG = StatsInsightsAllTimeFragment.class.getSimpleName();
+
+ private InsightsAllTimeModel mInsightsAllTimeModel;
+
+ @Override
+ protected boolean hasDataAvailable() {
+ return mInsightsAllTimeModel != null;
+ }
+ @Override
+ protected void saveStatsData(Bundle outState) {
+ if (hasDataAvailable()) {
+ outState.putSerializable(ARG_REST_RESPONSE, mInsightsAllTimeModel);
+ }
+ }
+ @Override
+ protected void restoreStatsData(Bundle savedInstanceState) {
+ if (savedInstanceState.containsKey(ARG_REST_RESPONSE)) {
+ mInsightsAllTimeModel = (InsightsAllTimeModel) savedInstanceState.getSerializable(ARG_REST_RESPONSE);
+ }
+ }
+
+ @SuppressWarnings("unused")
+ public void onEventMainThread(StatsEvents.InsightsAllTimeUpdated event) {
+ if (!shouldUpdateFragmentOnUpdateEvent(event)) {
+ return;
+ }
+
+ mInsightsAllTimeModel = event.mInsightsAllTimeModel;
+ updateUI();
+ }
+
+ @SuppressWarnings("unused")
+ public void onEventMainThread(StatsEvents.SectionUpdateError event) {
+ if (!shouldUpdateFragmentOnErrorEvent(event)) {
+ return;
+ }
+
+ mInsightsAllTimeModel = null;
+ showErrorUI(event.mError);
+ }
+
+
+ protected void updateUI() {
+ super.updateUI();
+
+ if (!isAdded() || !hasDataAvailable()) {
+ return;
+ }
+
+ LinearLayout ll = (LinearLayout) getActivity().getLayoutInflater()
+ .inflate(R.layout.stats_insights_all_time_item, (ViewGroup) mResultContainer.getRootView(), false);
+
+ TextView postsTextView = (TextView) ll.findViewById(R.id.stats_all_time_posts);
+ TextView viewsTextView = (TextView) ll.findViewById(R.id.stats_all_time_views);
+ TextView visitorsTextView = (TextView) ll.findViewById(R.id.stats_all_time_visitors);
+ TextView besteverTextView = (TextView) ll.findViewById(R.id.stats_all_time_bestever);
+ TextView besteverDateTextView = (TextView) ll.findViewById(R.id.stats_all_time_bestever_date);
+
+
+ postsTextView.setText(FormatUtils.formatDecimal(mInsightsAllTimeModel.getPosts()));
+ viewsTextView.setText(FormatUtils.formatDecimal(mInsightsAllTimeModel.getViews()));
+ visitorsTextView.setText(FormatUtils.formatDecimal(mInsightsAllTimeModel.getVisitors()));
+
+ besteverTextView.setText(FormatUtils.formatDecimal(mInsightsAllTimeModel.getViewsBestDayTotal()));
+ besteverDateTextView.setText(
+ StatsUtils.parseDate(mInsightsAllTimeModel.getViewsBestDay(), StatsConstants.STATS_INPUT_DATE_FORMAT, "MMMM dd, yyyy")
+ );
+
+ mResultContainer.addView(ll);
+ }
+
+
+ @Override
+ protected StatsService.StatsEndpointsEnum[] sectionsToUpdate() {
+ return new StatsService.StatsEndpointsEnum[]{
+ StatsService.StatsEndpointsEnum.INSIGHTS_ALL_TIME
+ };
+ }
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.stats_insights_all_time);
+ }
+
+}