diff options
author | Danilo Ercoli <ercoli@gmail.com> | 2014-12-16 15:18:17 +0100 |
---|---|---|
committer | Danilo Ercoli <ercoli@gmail.com> | 2014-12-16 15:18:17 +0100 |
commit | 9303a8c6b8e19e92ac9b324690306ecfaff38687 (patch) | |
tree | 1683be1a32ad64b82f61e957b262e7292c517662 | |
parent | 566b781073659b79569d3c8b152ff29b37334cc7 (diff) | |
download | gradle-perf-android-medium-9303a8c6b8e19e92ac9b324690306ecfaff38687.tar.gz |
Show empty UI in modules when loading data.
17 files changed, 165 insertions, 103 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsAbstractListFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsAbstractListFragment.java index f7bbf4120..aed214cab 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsAbstractListFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsAbstractListFragment.java @@ -39,6 +39,8 @@ public abstract class StatsAbstractListFragment extends StatsAbstractFragment { protected static final int NO_STRING_ID = -1; + protected TextView mModuleTitleTextView; + protected TextView mModuleTitleTextPlaceholderTextView; protected TextView mEmptyLabel; protected TextView mTotalsLabel; protected LinearLayout mListContainer; @@ -95,8 +97,11 @@ public abstract class StatsAbstractListFragment extends StatsAbstractFragment { view = inflater.inflate(R.layout.stats_list_fragment, container, false); } - TextView titleTextView = (TextView) view.findViewById(R.id.stats_module_title); - titleTextView.setText(getTitle().toUpperCase(Locale.getDefault())); + mModuleTitleTextView = (TextView) view.findViewById(R.id.stats_module_title); + mModuleTitleTextView.setText(getTitle().toUpperCase(Locale.getDefault())); + + mModuleTitleTextPlaceholderTextView = (TextView) view.findViewById(R.id.stats_module_title_placeholder); + mModuleTitleTextPlaceholderTextView.setText(" "); TextView entryLabel = (TextView) view.findViewById(R.id.stats_list_entry_label); entryLabel.setText(getEntryLabelResId()); @@ -113,6 +118,19 @@ public abstract class StatsAbstractListFragment extends StatsAbstractFragment { mPaginationGoBackButton = (Button) view.findViewById(R.id.stats_pagination_go_back); mPaginationGoForwardButton = (Button) view.findViewById(R.id.stats_pagination_go_forward); mPaginationText = (TextView) view.findViewById(R.id.stats_pagination_text); + + // Change module title text color for all time fragments + switch (getViewType()) { + case COMMENTS: + case TAGS_AND_CATEGORIES: + case PUBLICIZE: + case FOLLOWERS: + mModuleTitleTextView.setTextColor(getResources().getColor(R.color.stats_text_color)); + break; + default: + break; + } + return view; } @@ -159,13 +177,29 @@ public abstract class StatsAbstractListFragment extends StatsAbstractFragment { if (mDatamodels != null) { updateUI(); } else { - showEmptyUI(true); + //showHideNoResultsUI(true); + showEmptyUI(); mMoreDataListener.onRefreshRequested(getSectionToUpdate()); } } - protected void showEmptyUI(boolean show) { - if (show) { + protected void showEmptyUI() { + mModuleTitleTextPlaceholderTextView.setVisibility(View.VISIBLE); + mTopPagerRadioGroup.setVisibility(View.GONE); + mModuleTitleTextView.setVisibility(View.GONE); + mEmptyLabel.setVisibility(View.GONE); + mListContainer.setVisibility(View.GONE); + mList.setVisibility(View.GONE); + mViewAll.setVisibility(View.GONE); + mPaginationContainer.setVisibility(View.GONE); + return; + } + + protected void showHideNoResultsUI(boolean showNoResultsUI) { + mModuleTitleTextPlaceholderTextView.setVisibility(View.GONE); + mModuleTitleTextView.setVisibility(View.VISIBLE); + + if (showNoResultsUI) { mGroupIdToExpandedMap.clear(); String label; if (getEmptyLabelDescResId() == NO_STRING_ID) { @@ -198,6 +232,9 @@ public abstract class StatsAbstractListFragment extends StatsAbstractFragment { protected void showErrorUI(Serializable error) { mGroupIdToExpandedMap.clear(); + mModuleTitleTextPlaceholderTextView.setVisibility(View.GONE); + mModuleTitleTextView.setVisibility(View.VISIBLE); + String label = "<b>" + getString(R.string.error_refresh_stats) + "</b>"; if (error instanceof NoConnectionError) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsActivity.java index 494f93ad8..d6ce80d8a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsActivity.java @@ -140,6 +140,7 @@ public class StatsActivity extends WPDrawerActivity implements ScrollViewExt.Scr AppLog.w(T.STATS, "stats are already updating, refresh cancelled"); return; } + loadStatsFragments(true, true, true); refreshStats(mCurrentTimeframe, StatsUtils.getCurrentDateTZ(mLocalBlogID), true); } }); @@ -172,7 +173,7 @@ public class StatsActivity extends WPDrawerActivity implements ScrollViewExt.Scr return; } - loadStatsFragments(false, true); + loadStatsFragments(false, true, true); ScrollViewExt scrollView = (ScrollViewExt) findViewById(R.id.scroll_view_stats); if (scrollView != null) { @@ -206,9 +207,9 @@ public class StatsActivity extends WPDrawerActivity implements ScrollViewExt.Scr mCurrentTimeframe = selectedTimeframe; if (NetworkUtils.isNetworkAvailable(StatsActivity.this)) { String date = StatsUtils.getCurrentDateTZ(mLocalBlogID); - refreshStats(selectedTimeframe, date, true); mSwipeToRefreshHelper.setRefreshing(true); - loadStatsFragments(true, true); + refreshStats(selectedTimeframe, date, true); + loadStatsFragments(true, true, false); } } @Override @@ -257,13 +258,13 @@ public class StatsActivity extends WPDrawerActivity implements ScrollViewExt.Scr super.onSaveInstanceState(outState); } - private void loadStatsFragments(boolean forceRecreationOfFragments, boolean includeBarGraphFragment) { + private void loadStatsFragments(boolean forceRecreationOfFragments, boolean loadGraphFragment, boolean loadAlltimeFragmets) { FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); StatsAbstractFragment fragment; - if (includeBarGraphFragment) { + if (loadGraphFragment) { if (fm.findFragmentByTag(StatsVisitorsAndViewsFragment.TAG) == null || forceRecreationOfFragments) { fragment = StatsAbstractFragment.newInstance(StatsViewType.GRAPH_AND_SUMMARY, mLocalBlogID, mCurrentTimeframe, mRequestedDate); ft.replace(R.id.stats_visitors_and_views_container, fragment, StatsVisitorsAndViewsFragment.TAG); @@ -300,24 +301,26 @@ public class StatsActivity extends WPDrawerActivity implements ScrollViewExt.Scr ft.replace(R.id.stats_video_container, fragment, StatsVideoplaysFragment.TAG); } - if (fm.findFragmentByTag(StatsCommentsFragment.TAG) == null || forceRecreationOfFragments) { - fragment = StatsAbstractFragment.newInstance(StatsViewType.COMMENTS, mLocalBlogID, mCurrentTimeframe, mRequestedDate); - ft.replace(R.id.stats_comments_container, fragment, StatsCommentsFragment.TAG); - } + if (loadAlltimeFragmets) { + if (fm.findFragmentByTag(StatsCommentsFragment.TAG) == null || forceRecreationOfFragments) { + fragment = StatsAbstractFragment.newInstance(StatsViewType.COMMENTS, mLocalBlogID, mCurrentTimeframe, mRequestedDate); + ft.replace(R.id.stats_comments_container, fragment, StatsCommentsFragment.TAG); + } - if (fm.findFragmentByTag(StatsTagsAndCategoriesFragment.TAG) == null || forceRecreationOfFragments) { - fragment = StatsAbstractFragment.newInstance(StatsViewType.TAGS_AND_CATEGORIES, mLocalBlogID, mCurrentTimeframe, mRequestedDate); - ft.replace(R.id.stats_tags_and_categories_container, fragment, StatsTagsAndCategoriesFragment.TAG); - } + if (fm.findFragmentByTag(StatsTagsAndCategoriesFragment.TAG) == null || forceRecreationOfFragments) { + fragment = StatsAbstractFragment.newInstance(StatsViewType.TAGS_AND_CATEGORIES, mLocalBlogID, mCurrentTimeframe, mRequestedDate); + ft.replace(R.id.stats_tags_and_categories_container, fragment, StatsTagsAndCategoriesFragment.TAG); + } - if (fm.findFragmentByTag(StatsPublicizeFragment.TAG) == null || forceRecreationOfFragments) { - fragment = StatsAbstractFragment.newInstance(StatsViewType.PUBLICIZE, mLocalBlogID, mCurrentTimeframe, mRequestedDate); - ft.replace(R.id.stats_publicize_container, fragment, StatsPublicizeFragment.TAG); - } + if (fm.findFragmentByTag(StatsPublicizeFragment.TAG) == null || forceRecreationOfFragments) { + fragment = StatsAbstractFragment.newInstance(StatsViewType.PUBLICIZE, mLocalBlogID, mCurrentTimeframe, mRequestedDate); + ft.replace(R.id.stats_publicize_container, fragment, StatsPublicizeFragment.TAG); + } - if (fm.findFragmentByTag(StatsFollowersFragment.TAG) == null || forceRecreationOfFragments) { - fragment = StatsAbstractFragment.newInstance(StatsViewType.FOLLOWERS, mLocalBlogID, mCurrentTimeframe, mRequestedDate); - ft.replace(R.id.stats_followers_container, fragment, StatsFollowersFragment.TAG); + if (fm.findFragmentByTag(StatsFollowersFragment.TAG) == null || forceRecreationOfFragments) { + fragment = StatsAbstractFragment.newInstance(StatsViewType.FOLLOWERS, mLocalBlogID, mCurrentTimeframe, mRequestedDate); + ft.replace(R.id.stats_followers_container, fragment, StatsFollowersFragment.TAG); + } } ft.commit(); @@ -539,19 +542,18 @@ public class StatsActivity extends WPDrawerActivity implements ScrollViewExt.Scr scrollToTop(); mSwipeToRefreshHelper.setRefreshing(true); refreshStats(mCurrentTimeframe, mRequestedDate, true); - loadStatsFragments(true, true); + loadStatsFragments(true, true, true); } // StatsVisitorsAndViewsFragment calls this when the user taps on a bar in the graph @Override - public void onDateChanged(String blogID, StatsTimeframe timeframe, String date, boolean updateGraph) { + public void onDateChanged(String blogID, StatsTimeframe timeframe, String date) { mRequestedDate = date; - refreshStats(timeframe, date, updateGraph); - // Reload all fragments except the bar graph one - loadStatsFragments(true, false); + refreshStats(timeframe, date, false); + loadStatsFragments(true, false, false); } - private void refreshStats(StatsTimeframe timeframe, String date, boolean updateGraph) { + private void refreshStats(StatsTimeframe timeframe, String date, boolean updateAlltimeStats) { final Blog currentBlog = WordPress.getBlog(mLocalBlogID); if (currentBlog == null) { @@ -619,7 +621,7 @@ public class StatsActivity extends WPDrawerActivity implements ScrollViewExt.Scr intent.putExtra(StatsService.ARG_BLOG_ID, blogId); intent.putExtra(StatsService.ARG_PERIOD, timeframe); intent.putExtra(StatsService.ARG_DATE, date); - intent.putExtra(StatsService.ARG_UPDATE_GRAPH, updateGraph); + intent.putExtra(StatsService.ARG_UPDATE_ALLTIME_STATS, updateAlltimeStats); startService(intent); } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsAuthorsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsAuthorsFragment.java index c12297e4a..3e6d5a7d9 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsAuthorsFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsAuthorsFragment.java @@ -45,7 +45,7 @@ public class StatsAuthorsFragment extends StatsAbstractListFragment { } if (mDatamodels == null || mDatamodels[0] == null) { - showEmptyUI(true); + showHideNoResultsUI(true); mListener.onAuthorsVisibilityChange(true); // Hide the authors section if completely empty return; } @@ -53,14 +53,14 @@ public class StatsAuthorsFragment extends StatsAbstractListFragment { List<AuthorModel> authors = ((AuthorsModel) mDatamodels[0]).getAuthors(); // Do not show the authors section if there is one author only if (authors == null || authors.size() <= 1) { - showEmptyUI(true); + showHideNoResultsUI(true); mListener.onAuthorsVisibilityChange(true); return; } BaseExpandableListAdapter adapter = new MyExpandableListAdapter(getActivity(), authors); StatsUIHelper.reloadGroupViews(getActivity(), adapter, mGroupIdToExpandedMap, mList, getMaxNumberOfItemsToShowInList()); - showEmptyUI(false); + showHideNoResultsUI(false); mListener.onAuthorsVisibilityChange(false); } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsClicksFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsClicksFragment.java index 8a1b8f7ec..faeda69ad 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsClicksFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsClicksFragment.java @@ -31,9 +31,9 @@ public class StatsClicksFragment extends StatsAbstractListFragment { && ((ClicksModel) mDatamodels[0]).getClickGroups().size() > 0) { BaseExpandableListAdapter adapter = new MyExpandableListAdapter(getActivity(), ((ClicksModel) mDatamodels[0]).getClickGroups()); StatsUIHelper.reloadGroupViews(getActivity(), adapter, mGroupIdToExpandedMap, mList, getMaxNumberOfItemsToShowInList()); - showEmptyUI(false); + showHideNoResultsUI(false); } else { - showEmptyUI(true); + showHideNoResultsUI(true); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsCommentsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsCommentsFragment.java index 3cca8376e..884ab424c 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsCommentsFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsCommentsFragment.java @@ -120,7 +120,7 @@ public class StatsCommentsFragment extends StatsAbstractListFragment implements mTopPagerRadioGroup.setVisibility(View.VISIBLE); if (mDatamodels == null) { - showEmptyUI(true); + showHideNoResultsUI(true); mTotalsLabel.setVisibility(View.GONE); return; } @@ -147,9 +147,9 @@ public class StatsCommentsFragment extends StatsAbstractListFragment implements if (adapter != null) { StatsUIHelper.reloadLinearLayout(getActivity(), adapter, mList, getMaxNumberOfItemsToShowInList()); - showEmptyUI(false); + showHideNoResultsUI(false); } else { - showEmptyUI(true); + showHideNoResultsUI(true); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsFollowersFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsFollowersFragment.java index 77847a2d8..b92c64fe9 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsFollowersFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsFollowersFragment.java @@ -120,7 +120,7 @@ public class StatsFollowersFragment extends StatsAbstractListFragment implements mTotalsLabel.setVisibility(View.VISIBLE); if (mDatamodels == null) { - showEmptyUI(true); + showHideNoResultsUI(true); mTotalsLabel.setText(getTotalFollowersLabel(0)); return; } @@ -135,7 +135,7 @@ public class StatsFollowersFragment extends StatsAbstractListFragment implements followersModel.getFollowers().size() > 0) { ArrayAdapter adapter = new DotComFollowerAdapter(getActivity(), followersModel.getFollowers()); StatsUIHelper.reloadLinearLayout(getActivity(), adapter, mList, getMaxNumberOfItemsToShowInList()); - showEmptyUI(false); + showHideNoResultsUI(false); if (isSingleView()) { if (followersModel.getPages() > 1) { mPaginationContainer.setVisibility(View.VISIBLE); @@ -193,7 +193,7 @@ public class StatsFollowersFragment extends StatsAbstractListFragment implements mTotalsLabel.setText(getTotalFollowersLabel(followersModel.getTotalEmail())); } } else { - showEmptyUI(true); + showHideNoResultsUI(true); mPaginationContainer.setVisibility(View.GONE); mTotalsLabel.setText(getTotalFollowersLabel(0)); } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsGeoviewsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsGeoviewsFragment.java index d9be1e15d..4bd64f8c9 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsGeoviewsFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsGeoviewsFragment.java @@ -31,9 +31,9 @@ public class StatsGeoviewsFragment extends StatsAbstractListFragment { if (hasCountries()) { ArrayAdapter adapter = new GeoviewsAdapter(getActivity(), getCountries()); StatsUIHelper.reloadLinearLayout(getActivity(), adapter, mList, getMaxNumberOfItemsToShowInList()); - showEmptyUI(false); + showHideNoResultsUI(false); } else { - showEmptyUI(true); + showHideNoResultsUI(true); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsPublicizeFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsPublicizeFragment.java index e7ac5cca2..45c3567f2 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsPublicizeFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsPublicizeFragment.java @@ -31,9 +31,9 @@ public class StatsPublicizeFragment extends StatsAbstractListFragment { if (hasPublicize()) { ArrayAdapter adapter = new PublicizeAdapter(getActivity(), getPublicize()); StatsUIHelper.reloadLinearLayout(getActivity(), adapter, mList, getMaxNumberOfItemsToShowInList()); - showEmptyUI(false); + showHideNoResultsUI(false); } else { - showEmptyUI(true); + showHideNoResultsUI(true); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsReferrersFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsReferrersFragment.java index 0193aec8d..95e21c01d 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsReferrersFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsReferrersFragment.java @@ -34,9 +34,9 @@ public class StatsReferrersFragment extends StatsAbstractListFragment { if (hasReferrers()) { BaseExpandableListAdapter adapter = new MyExpandableListAdapter(getActivity(), getReferrersGroups()); StatsUIHelper.reloadGroupViews(getActivity(), adapter, mGroupIdToExpandedMap, mList, getMaxNumberOfItemsToShowInList()); - showEmptyUI(false); + showHideNoResultsUI(false); } else { - showEmptyUI(true); + showHideNoResultsUI(true); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsTagsAndCategoriesFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsTagsAndCategoriesFragment.java index 05060a1bb..ce606c5ee 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsTagsAndCategoriesFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsTagsAndCategoriesFragment.java @@ -28,9 +28,9 @@ public class StatsTagsAndCategoriesFragment extends StatsAbstractListFragment { if (hasTags()) { BaseExpandableListAdapter adapter = new MyExpandableListAdapter(getActivity(), getTags()); StatsUIHelper.reloadGroupViews(getActivity(), adapter, mGroupIdToExpandedMap, mList, getMaxNumberOfItemsToShowInList()); - showEmptyUI(false); + showHideNoResultsUI(false); } else { - showEmptyUI(true); + showHideNoResultsUI(true); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsTopPostsAndPagesFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsTopPostsAndPagesFragment.java index 9037dacee..735a0f3bf 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsTopPostsAndPagesFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsTopPostsAndPagesFragment.java @@ -25,9 +25,9 @@ public class StatsTopPostsAndPagesFragment extends StatsAbstractListFragment { List<SingleItemModel> postViews = ((TopPostsAndPagesModel) mDatamodels[0]).getTopPostsAndPages(); ArrayAdapter adapter = new PostsAndPagesAdapter(getActivity(), getLocalTableBlogID(), postViews); StatsUIHelper.reloadLinearLayout(getActivity(), adapter, mList, getMaxNumberOfItemsToShowInList()); - showEmptyUI(false); + showHideNoResultsUI(false); } else { - showEmptyUI(true); + showHideNoResultsUI(true); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsVideoplaysFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsVideoplaysFragment.java index 2c5d39c18..d6b6e5e42 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsVideoplaysFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsVideoplaysFragment.java @@ -27,9 +27,9 @@ public class StatsVideoplaysFragment extends StatsAbstractListFragment { if (hasVideoplays()) { ArrayAdapter adapter = new TopPostsAndPagesAdapter(getActivity(), getVideoplays()); StatsUIHelper.reloadLinearLayout(getActivity(), adapter, mList, getMaxNumberOfItemsToShowInList()); - showEmptyUI(false); + showHideNoResultsUI(false); } else { - showEmptyUI(true); + showHideNoResultsUI(true); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsViewAllActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsViewAllActivity.java index 27aa85984..88522a6ee 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsViewAllActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsViewAllActivity.java @@ -499,7 +499,7 @@ public class StatsViewAllActivity extends ActionBarActivity } resetModelVariables(); - mFragment.showEmptyUI(true); + mFragment.showHideNoResultsUI(true); ToastUtils.showToast(mActivityRef.get(), mActivityRef.get().getString(R.string.error_refresh_stats), diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsVisitorsAndViewsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsVisitorsAndViewsFragment.java index 4fea104e2..cc82be99b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsVisitorsAndViewsFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsVisitorsAndViewsFragment.java @@ -67,7 +67,7 @@ public class StatsVisitorsAndViewsFragment extends StatsAbstractFragment // Container Activity must implement this interface public interface OnDateChangeListener { - public void onDateChanged(String blogID, StatsTimeframe timeframe, String newDate, boolean updateGraph); + public void onDateChanged(String blogID, StatsTimeframe timeframe, String newDate); } @Override @@ -109,7 +109,7 @@ public class StatsVisitorsAndViewsFragment extends StatsAbstractFragment if (mVisitsData != null) { updateUI(); } else { - setupEmptyUI(false); + setupNoResultsUI(true); } mRadioGroup.setOnCheckedChangeListener(this); @@ -188,18 +188,18 @@ public class StatsVisitorsAndViewsFragment extends StatsAbstractFragment private void updateUI() { if (mVisitsData == null) { - setupEmptyUI(false); + setupNoResultsUI(false); return; } if( mVisitsData instanceof VolleyError) { - setupEmptyUI(false); + setupNoResultsUI(false); return; } final VisitModel[] dataToShowOnGraph = getDataToShowOnGraph((VisitsModel)mVisitsData); if (dataToShowOnGraph == null || dataToShowOnGraph.length == 0) { - setupEmptyUI(false); + setupNoResultsUI(false); return; } @@ -371,19 +371,19 @@ public class StatsVisitorsAndViewsFragment extends StatsAbstractFragment } } - private void setupEmptyUI(boolean isLoading) { + private void setupNoResultsUI(boolean isLoading) { mSelectedBarGraphBarIndex = -1; Context context = mGraphContainer.getContext(); if (context != null) { LayoutInflater inflater = LayoutInflater.from(context); View emptyBarGraphView = inflater.inflate(R.layout.stats_bar_graph_empty, mGraphContainer, false); - /* - We could show loading indicator here + + // We could show loading indicator here if (isLoading) { final TextView emptyLabel = (TextView) emptyBarGraphView.findViewById(R.id.stats_bar_graph_empty_label); - emptyLabel.setText("Loading..."); + emptyLabel.setText(""); } - */ + if (emptyBarGraphView != null) { mGraphContainer.removeAllViews(); mGraphContainer.addView(emptyBarGraphView); @@ -538,7 +538,7 @@ public class StatsVisitorsAndViewsFragment extends StatsAbstractFragment if (mListener!= null) { // Should never be null final String blogId = StatsUtils.getBlogId(getLocalTableBlogID()); - mListener.onDateChanged(blogId, getTimeframe(), calculatedDate, false); + mListener.onDateChanged(blogId, getTimeframe(), calculatedDate); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/service/StatsService.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/service/StatsService.java index 82ee195ac..caf8ab86a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/service/StatsService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/service/StatsService.java @@ -35,7 +35,7 @@ public class StatsService extends Service { public static final String ARG_BLOG_ID = "blog_id"; public static final String ARG_PERIOD = "stats_period"; public static final String ARG_DATE = "stats_date"; - public static final String ARG_UPDATE_GRAPH = "stats_update_graph"; + public static final String ARG_UPDATE_ALLTIME_STATS = "ARG_UPDATE_ALLTIME_STATS"; public static enum StatsEndpointsEnum {VISITS, TOP_POSTS, REFERRERS, CLICKS, GEO_VIEWS, AUTHORS, VIDEO_PLAYS, COMMENTS, FOLLOWERS_WPCOM, FOLLOWERS_EMAIL, COMMENT_FOLLOWERS, TAGS_AND_CATEGORIES, PUBLICIZE} @@ -106,10 +106,10 @@ public class StatsService extends Service { } // True when the network call to update the graph is needed - boolean updateGraph = intent.getBooleanExtra(ARG_UPDATE_GRAPH, true); + boolean updateAlltimeStats = intent.getBooleanExtra(ARG_UPDATE_ALLTIME_STATS, true); if (mServiceBlogId == null) { - startTasks(blogId, period, requestedDate, updateGraph, startId); + startTasks(blogId, period, requestedDate, updateAlltimeStats, startId); } else if (blogId.equals(mServiceBlogId) && mServiceRequestedTimeframe == period && requestedDate.equals(mServiceRequestedDate)) { // already running on the same blogID, same period @@ -119,7 +119,7 @@ public class StatsService extends Service { } else { // stats is running on a different blogID stopRefresh(); - startTasks(blogId, period, requestedDate, updateGraph, startId); + startTasks(blogId, period, requestedDate, updateAlltimeStats, startId); } // Always update the startId. Always. this.mServiceStartId = startId; @@ -143,7 +143,7 @@ public class StatsService extends Service { } private void startTasks(final String blogId, final StatsTimeframe timeframe, final String date, - final boolean updateGraph, final int startId) { + final boolean updateAlltimeStats, final int startId) { this.mServiceBlogId = blogId; this.mServiceRequestedTimeframe = timeframe; this.mServiceRequestedDate = date; @@ -166,7 +166,7 @@ public class StatsService extends Service { final String summaryPath = String.format("/sites/%s/stats/summary?period=%s&date=%s", mServiceBlogId, period, mServiceRequestedDate); statsNetworkRequests.add(restClientUtils.get(summaryPath, sListener, sListener)); */ - if (updateGraph) { + if (updateAlltimeStats) { // Visits call: The Graph and the section just below the graph RestListener vListener = new RestListener(StatsEndpointsEnum.VISITS, mServiceBlogId, mServiceRequestedTimeframe); final String visitsPath = String.format("/sites/%s/stats/visits?unit=%s&quantity=10&date=%s", mServiceBlogId, period, mServiceRequestedDate); @@ -203,36 +203,37 @@ public class StatsService extends Service { final String videoPlaysPath = String.format("/sites/%s/stats/video-plays?period=%s&date=%s&max=%s", mServiceBlogId, period, mServiceRequestedDate, 12); statsNetworkRequests.add(restClientUtils.get(videoPlaysPath, videoPlaysListener, videoPlaysListener)); - // Comments - RestListener commentsListener = new RestListener(StatsEndpointsEnum.COMMENTS, mServiceBlogId, mServiceRequestedTimeframe); - final String commentsPath = String.format("/sites/%s/stats/comments", mServiceBlogId); // No max parameter available - statsNetworkRequests.add(restClientUtils.get(commentsPath, commentsListener, commentsListener)); - - // Comments Followers - RestListener commentFollowersListener = new RestListener(StatsEndpointsEnum.COMMENT_FOLLOWERS, mServiceBlogId, mServiceRequestedTimeframe); - final String commentFollowersPath = String.format("/sites/%s/stats/comment-followers?max=%s", mServiceBlogId, 12); - statsNetworkRequests.add(restClientUtils.get(commentFollowersPath, commentFollowersListener, commentFollowersListener)); - - // Followers WPCOM - RestListener followersListener = new RestListener(StatsEndpointsEnum.FOLLOWERS_WPCOM, mServiceBlogId, mServiceRequestedTimeframe); - final String followersPath = String.format("/sites/%s/stats/followers?type=wpcom&max=%s", mServiceBlogId, 12); - statsNetworkRequests.add(restClientUtils.get(followersPath, followersListener, followersListener)); - - // Followers EMAIL - RestListener followersEmailListener = new RestListener(StatsEndpointsEnum.FOLLOWERS_EMAIL, mServiceBlogId, mServiceRequestedTimeframe); - final String followersEmailPath = String.format("/sites/%s/stats/followers?type=email&max=%s", mServiceBlogId, 12); - statsNetworkRequests.add(restClientUtils.get(followersEmailPath, followersEmailListener, followersEmailListener)); - - // Tags and Categories - RestListener tagsListener = new RestListener(StatsEndpointsEnum.TAGS_AND_CATEGORIES, mServiceBlogId, mServiceRequestedTimeframe); - final String tagsPath = String.format("/sites/%s/stats/tags?max=%s", mServiceBlogId, 12); - statsNetworkRequests.add(restClientUtils.get(tagsPath, tagsListener, tagsListener)); - - // Publicize - RestListener publicizeListener = new RestListener(StatsEndpointsEnum.PUBLICIZE, mServiceBlogId, mServiceRequestedTimeframe); - final String publicizePath = String.format("/sites/%s/stats/publicize?max=%s", mServiceBlogId, 12); - statsNetworkRequests.add(restClientUtils.get(publicizePath, publicizeListener, publicizeListener)); - + if (updateAlltimeStats) { + // Comments + RestListener commentsListener = new RestListener(StatsEndpointsEnum.COMMENTS, mServiceBlogId, mServiceRequestedTimeframe); + final String commentsPath = String.format("/sites/%s/stats/comments", mServiceBlogId); // No max parameter available + statsNetworkRequests.add(restClientUtils.get(commentsPath, commentsListener, commentsListener)); + + // Comments Followers + RestListener commentFollowersListener = new RestListener(StatsEndpointsEnum.COMMENT_FOLLOWERS, mServiceBlogId, mServiceRequestedTimeframe); + final String commentFollowersPath = String.format("/sites/%s/stats/comment-followers?max=%s", mServiceBlogId, 12); + statsNetworkRequests.add(restClientUtils.get(commentFollowersPath, commentFollowersListener, commentFollowersListener)); + + // Followers WPCOM + RestListener followersListener = new RestListener(StatsEndpointsEnum.FOLLOWERS_WPCOM, mServiceBlogId, mServiceRequestedTimeframe); + final String followersPath = String.format("/sites/%s/stats/followers?type=wpcom&max=%s", mServiceBlogId, 12); + statsNetworkRequests.add(restClientUtils.get(followersPath, followersListener, followersListener)); + + // Followers EMAIL + RestListener followersEmailListener = new RestListener(StatsEndpointsEnum.FOLLOWERS_EMAIL, mServiceBlogId, mServiceRequestedTimeframe); + final String followersEmailPath = String.format("/sites/%s/stats/followers?type=email&max=%s", mServiceBlogId, 12); + statsNetworkRequests.add(restClientUtils.get(followersEmailPath, followersEmailListener, followersEmailListener)); + + // Tags and Categories + RestListener tagsListener = new RestListener(StatsEndpointsEnum.TAGS_AND_CATEGORIES, mServiceBlogId, mServiceRequestedTimeframe); + final String tagsPath = String.format("/sites/%s/stats/tags?max=%s", mServiceBlogId, 12); + statsNetworkRequests.add(restClientUtils.get(tagsPath, tagsListener, tagsListener)); + + // Publicize + RestListener publicizeListener = new RestListener(StatsEndpointsEnum.PUBLICIZE, mServiceBlogId, mServiceRequestedTimeframe); + final String publicizePath = String.format("/sites/%s/stats/publicize?max=%s", mServiceBlogId, 12); + statsNetworkRequests.add(restClientUtils.get(publicizePath, publicizeListener, publicizeListener)); + } numberOfNetworkCalls = statsNetworkRequests.size(); } // end run } .start(); diff --git a/WordPress/src/main/res/layout/stats_expandable_list_fragment.xml b/WordPress/src/main/res/layout/stats_expandable_list_fragment.xml index ffca2f48b..b2f2114a2 100644 --- a/WordPress/src/main/res/layout/stats_expandable_list_fragment.xml +++ b/WordPress/src/main/res/layout/stats_expandable_list_fragment.xml @@ -18,6 +18,17 @@ android:paddingTop="@dimen/margin_small"> <org.wordpress.android.widgets.WPTextView + android:id="@+id/stats_module_title_placeholder" + android:layout_marginLeft="@dimen/margin_large" + android:layout_marginRight="@dimen/margin_large" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@color/calypso_blue_light" + android:layout_marginBottom="@dimen/margin_medium" + android:visibility="gone" + /> + + <org.wordpress.android.widgets.WPTextView android:id="@+id/stats_module_title" android:layout_marginLeft="@dimen/margin_large" android:layout_marginRight="@dimen/margin_large" diff --git a/WordPress/src/main/res/layout/stats_list_fragment.xml b/WordPress/src/main/res/layout/stats_list_fragment.xml index f7c374dc6..1075e875c 100644 --- a/WordPress/src/main/res/layout/stats_list_fragment.xml +++ b/WordPress/src/main/res/layout/stats_list_fragment.xml @@ -18,6 +18,17 @@ android:paddingTop="@dimen/margin_small"> <org.wordpress.android.widgets.WPTextView + android:id="@+id/stats_module_title_placeholder" + android:layout_marginLeft="@dimen/margin_large" + android:layout_marginRight="@dimen/margin_large" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@color/calypso_blue_light" + android:layout_marginBottom="@dimen/margin_medium" + android:visibility="gone" + /> + + <org.wordpress.android.widgets.WPTextView android:id="@+id/stats_module_title" android:layout_marginLeft="@dimen/margin_large" android:layout_marginRight="@dimen/margin_large" |