diff options
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.java | 99 |
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); + } + +} |