aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/main/java/org/wordpress/android/ui/stats
diff options
context:
space:
mode:
authorDanilo Ercoli <ercoli@gmail.com>2015-02-10 17:55:39 +0100
committerDanilo Ercoli <ercoli@gmail.com>2015-02-10 17:55:39 +0100
commita2cfe638830e983fe231d4408e10adda12ef1582 (patch)
treee92dfb28e187e497c38ee235845e289570db5c71 /WordPress/src/main/java/org/wordpress/android/ui/stats
parent4ae9dba5ed1e3b752ed5493d3e66edc64d99bc2f (diff)
downloadgradle-perf-android-medium-a2cfe638830e983fe231d4408e10adda12ef1582.tar.gz
Duplicate the pagination item to the top of screen. Pagination is currently used in "Followers" module only.
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/ui/stats')
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/stats/StatsAbstractListFragment.java35
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/stats/StatsFollowersFragment.java96
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/stats/StatsViewAllActivity.java2
3 files changed, 92 insertions, 41 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 371e034f2..22343962d 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
@@ -54,10 +54,16 @@ public abstract class StatsAbstractListFragment extends StatsAbstractFragment {
protected LinearLayout mTopPagerContainer;
protected int mTopPagerSelectedButtonIndex = 0;
- protected LinearLayout mPaginationContainer;
- protected Button mPaginationGoBackButton;
- protected Button mPaginationGoForwardButton;
- protected TextView mPaginationText;
+ // Bottom and Top Pagination for modules that has pagination enabled.
+ protected LinearLayout mBottomPaginationContainer;
+ protected Button mBottomPaginationGoBackButton;
+ protected Button mBottomPaginationGoForwardButton;
+ protected TextView mBottomPaginationText;
+ protected LinearLayout mTopPaginationContainer;
+ protected Button mTopPaginationGoBackButton;
+ protected Button mTopPaginationGoForwardButton;
+ protected TextView mTopPaginationText;
+
protected LinearLayout mEmptyModulePlaceholder;
protected Serializable[] mDatamodels;
@@ -106,10 +112,17 @@ public abstract class StatsAbstractListFragment extends StatsAbstractFragment {
mListContainer = (LinearLayout) view.findViewById(R.id.stats_list_container);
mViewAll = (Button) view.findViewById(R.id.btnViewAll);
mTopPagerContainer = (LinearLayout) view.findViewById(R.id.stats_pager_tabs);
- mPaginationContainer = (LinearLayout) view.findViewById(R.id.stats_pagination_container);
- 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);
+
+ // Load pagination items
+ mBottomPaginationContainer = (LinearLayout) view.findViewById(R.id.stats_bottom_pagination_container);
+ mBottomPaginationGoBackButton = (Button) mBottomPaginationContainer.findViewById(R.id.stats_pagination_go_back);
+ mBottomPaginationGoForwardButton = (Button) mBottomPaginationContainer.findViewById(R.id.stats_pagination_go_forward);
+ mBottomPaginationText = (TextView) mBottomPaginationContainer.findViewById(R.id.stats_pagination_text);
+ mTopPaginationContainer = (LinearLayout) view.findViewById(R.id.stats_top_pagination_container);
+ mTopPaginationContainer.setBackgroundResource(R.drawable.stats_pagination_item_background);
+ mTopPaginationGoBackButton = (Button) mTopPaginationContainer.findViewById(R.id.stats_pagination_go_back);
+ mTopPaginationGoForwardButton = (Button) mTopPaginationContainer.findViewById(R.id.stats_pagination_go_forward);
+ mTopPaginationText = (TextView) mTopPaginationContainer.findViewById(R.id.stats_pagination_text);
return view;
}
@@ -182,7 +195,8 @@ public abstract class StatsAbstractListFragment extends StatsAbstractFragment {
mListContainer.setVisibility(View.GONE);
mList.setVisibility(View.GONE);
mViewAll.setVisibility(View.GONE);
- mPaginationContainer.setVisibility(View.GONE);
+ mBottomPaginationContainer.setVisibility(View.GONE);
+ mTopPaginationContainer.setVisibility(View.GONE);
mEmptyModulePlaceholder.setVisibility(View.VISIBLE);
}
@@ -207,7 +221,8 @@ public abstract class StatsAbstractListFragment extends StatsAbstractFragment {
mListContainer.setVisibility(View.GONE);
mList.setVisibility(View.GONE);
mViewAll.setVisibility(View.GONE);
- mPaginationContainer.setVisibility(View.GONE);
+ mBottomPaginationContainer.setVisibility(View.GONE);
+ mTopPaginationContainer.setVisibility(View.GONE);
} else {
mEmptyLabel.setVisibility(View.GONE);
mListContainer.setVisibility(View.VISIBLE);
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 3c6de9aeb..e915fca4e 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
@@ -125,69 +125,106 @@ public class StatsFollowersFragment extends StatsAbstractListFragment {
ArrayAdapter adapter = new DotComFollowerAdapter(getActivity(), followersModel.getFollowers());
StatsUIHelper.reloadLinearLayout(getActivity(), adapter, mList, getMaxNumberOfItemsToShowInList());
showHideNoResultsUI(false);
+
+ if (mTopPagerSelectedButtonIndex == 0) {
+ mTotalsLabel.setText(getTotalFollowersLabel(followersModel.getTotalWPCom()));
+ } else {
+ mTotalsLabel.setText(getTotalFollowersLabel(followersModel.getTotalEmail()));
+ }
+
if (isSingleView()) {
if (followersModel.getPages() > 1) {
- mPaginationContainer.setVisibility(View.VISIBLE);
- mPaginationText.setText(
- String.format(
- getString(R.string.stats_pagination_label),
- followersModel.getPage(),
- followersModel.getPages()
- )
+ mBottomPaginationContainer.setVisibility(View.VISIBLE);
+ mTopPaginationContainer.setVisibility(View.VISIBLE);
+ String paginationLabel = String.format(
+ getString(R.string.stats_pagination_label),
+ followersModel.getPage(),
+ followersModel.getPages()
);
- mPaginationGoBackButton.setEnabled(true);
- mPaginationGoForwardButton.setEnabled(true);
+ mBottomPaginationText.setText(paginationLabel);
+ mTopPaginationText.setText(paginationLabel);
+ setNavigationButtonsEnabled(true);
+ // Setting up back buttons
if (followersModel.getPage() == 1) {
- mPaginationGoBackButton.setVisibility(View.INVISIBLE);
+ // first page. No go back buttons
+ setNavigationBackButtonsVisibility(false);
} else {
- mPaginationGoBackButton.setVisibility(View.VISIBLE);
- mPaginationGoBackButton.setOnClickListener(new View.OnClickListener() {
+ setNavigationBackButtonsVisibility(true);
+ View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
- mPaginationGoBackButton.setEnabled(false);
- mPaginationGoForwardButton.setEnabled(false);
+ setNavigationButtonsEnabled(false);
mMoreDataListener.onMoreDataRequested(
getSectionsToUpdate()[mTopPagerSelectedButtonIndex],
followersModel.getPage() - 1
);
}
- });
+ };
+ mBottomPaginationGoBackButton.setOnClickListener(clickListener);
+ mTopPaginationGoBackButton.setOnClickListener(clickListener);
}
+ // Setting up forward buttons
if (followersModel.getPage() == followersModel.getPages()) {
- mPaginationGoForwardButton.setVisibility(View.INVISIBLE);
+ // last page. No go forward buttons
+ setNavigationForwardButtonsVisibility(false);
} else {
- mPaginationGoForwardButton.setVisibility(View.VISIBLE);
- mPaginationGoForwardButton.setOnClickListener(new View.OnClickListener() {
+ setNavigationForwardButtonsVisibility(true);
+ View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
- mPaginationGoBackButton.setEnabled(false);
- mPaginationGoForwardButton.setEnabled(false);
+ setNavigationButtonsEnabled(false);
mMoreDataListener.onMoreDataRequested(
getSectionsToUpdate()[mTopPagerSelectedButtonIndex],
followersModel.getPage() + 1
);
}
- });
+ };
+ mBottomPaginationGoForwardButton.setOnClickListener(clickListener);
+ mTopPaginationGoForwardButton.setOnClickListener(clickListener);
}
+
+ // Change the total number of followers label by adding the current paging info
+ int startIndex = followersModel.getPage() * StatsViewAllActivity.MAX_RESULTS_PER_PAGE - StatsViewAllActivity.MAX_RESULTS_PER_PAGE + 1;
+ int endIndex = startIndex + followersModel.getFollowers().size() - 1;
+ String pagedLabel = getString(
+ mTopPagerSelectedButtonIndex == 0 ? R.string.stats_followers_total_wpcom_paged : R.string.stats_followers_total_email_paged,
+ startIndex,
+ endIndex,
+ FormatUtils.formatDecimal(mTopPagerSelectedButtonIndex == 0 ? followersModel.getTotalWPCom() : followersModel.getTotalEmail())
+ );
+ mTotalsLabel.setText(pagedLabel);
} else {
- mPaginationContainer.setVisibility(View.INVISIBLE);
+ // No paging required. Hide the controls.
+ mBottomPaginationContainer.setVisibility(View.GONE);
+ mTopPaginationContainer.setVisibility(View.GONE);
}
}
-
- if (mTopPagerSelectedButtonIndex == 0) {
- mTotalsLabel.setText(getTotalFollowersLabel(followersModel.getTotalWPCom()));
- } else {
- mTotalsLabel.setText(getTotalFollowersLabel(followersModel.getTotalEmail()));
- }
} else {
showHideNoResultsUI(true);
- mPaginationContainer.setVisibility(View.GONE);
+ mBottomPaginationContainer.setVisibility(View.GONE);
mTotalsLabel.setText(getTotalFollowersLabel(0));
}
}
+ private void setNavigationBackButtonsVisibility(boolean visible) {
+ mBottomPaginationGoBackButton.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
+ mTopPaginationGoBackButton.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
+ }
+
+ private void setNavigationForwardButtonsVisibility(boolean visible) {
+ mBottomPaginationGoForwardButton.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
+ mTopPaginationGoForwardButton.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
+ }
+
+ private void setNavigationButtonsEnabled(boolean enable) {
+ mBottomPaginationGoBackButton.setEnabled(enable);
+ mBottomPaginationGoForwardButton.setEnabled(enable);
+ mTopPaginationGoBackButton.setEnabled(enable);
+ mTopPaginationGoForwardButton.setEnabled(enable);
+ }
+
@Override
protected boolean isViewAllOptionAvailable() {
if (isDataEmpty()) {
@@ -207,7 +244,6 @@ public class StatsFollowersFragment extends StatsAbstractListFragment {
return getString(R.string.stats_followers_total_email, FormatUtils.formatDecimal(total));
}
-
@Override
protected boolean isExpandableList() {
return false;
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 ba47b46b4..acb36113f 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
@@ -63,7 +63,7 @@ public class StatsViewAllActivity extends ActionBarActivity
private int mOuterPagerSelectedButtonIndex = 0;
// The number of results to return per page for Paged REST endpoints. Numbers larger than 20 will default to 20 on the server.
- private static final int MAX_RESULTS_PER_PAGE = 20;
+ public static final int MAX_RESULTS_PER_PAGE = 20;
// The number of results to return for NON Paged REST endpoints.
private static final int MAX_RESULTS_REQUESTED = 100;