blob: 3b0383d3113ccfa895682903c82146f097e98e83 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
package org.wordpress.android.ui.stats;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import org.wordpress.android.R;
import org.wordpress.android.ui.stats.adapters.PostsAndPagesAdapter;
import org.wordpress.android.ui.stats.models.PostModel;
import org.wordpress.android.ui.stats.models.TopPostsAndPagesModel;
import org.wordpress.android.ui.stats.service.StatsService;
import java.util.ArrayList;
import java.util.List;
public class StatsTopPostsAndPagesFragment extends StatsAbstractListFragment {
public static final String TAG = StatsTopPostsAndPagesFragment.class.getSimpleName();
private TopPostsAndPagesModel topPostsAndPagesModel = null;
@Override
protected boolean hasPreviousDataAvailable() {
return topPostsAndPagesModel != null;
}
@Override
protected void savePreviousData(Bundle outState) {
if (hasPreviousDataAvailable()) {
outState.putSerializable(ARG_REST_RESPONSE, topPostsAndPagesModel);
}
}
@Override
protected void restorePreviousData(Bundle savedInstanceState) {
if (savedInstanceState.containsKey(ARG_REST_RESPONSE)) {
topPostsAndPagesModel = (TopPostsAndPagesModel) savedInstanceState.getSerializable(ARG_REST_RESPONSE);
}
}
@SuppressWarnings("unused")
public void onEventMainThread(StatsEvents.TopPostsUpdated event) {
if (!shouldUpdateFragmentOnUpdateEvent(event)) {
return;
}
mGroupIdToExpandedMap.clear();
topPostsAndPagesModel = event.mTopPostsAndPagesModel;
updateUI();
}
@SuppressWarnings("unused")
public void onEventMainThread(StatsEvents.SectionUpdateError event) {
if (!shouldUpdateFragmentOnErrorEvent(event)) {
return;
}
topPostsAndPagesModel = null;
mGroupIdToExpandedMap.clear();
showErrorUI(event.mError);
}
@Override
protected void updateUI() {
if (!isAdded()) {
return;
}
if (hasTopPostsAndPages()) {
List<PostModel> postViews = topPostsAndPagesModel.getTopPostsAndPages();
ArrayAdapter adapter = new PostsAndPagesAdapter(getActivity(), postViews);
StatsUIHelper.reloadLinearLayout(getActivity(), adapter, mList, getMaxNumberOfItemsToShowInList());
showHideNoResultsUI(false);
} else {
showHideNoResultsUI(true);
}
}
private boolean hasTopPostsAndPages() {
return topPostsAndPagesModel != null && topPostsAndPagesModel.hasTopPostsAndPages();
}
private List<PostModel> getTopPostsAndPages() {
if (!hasTopPostsAndPages()) {
return new ArrayList<PostModel>(0);
}
return topPostsAndPagesModel.getTopPostsAndPages();
}
@Override
protected boolean isViewAllOptionAvailable() {
return hasTopPostsAndPages() && getTopPostsAndPages().size() > MAX_NUM_OF_ITEMS_DISPLAYED_IN_LIST;
}
@Override
protected boolean isExpandableList() {
return false;
}
@Override
protected int getEntryLabelResId() {
return R.string.stats_entry_posts_and_pages;
}
@Override
protected int getTotalsLabelResId() {
return R.string.stats_totals_views;
}
@Override
protected int getEmptyLabelTitleResId() {
return R.string.stats_empty_top_posts_title;
}
@Override
protected int getEmptyLabelDescResId() {
return R.string.stats_empty_top_posts_desc;
}
@Override
protected StatsService.StatsEndpointsEnum[] getSectionsToUpdate() {
return new StatsService.StatsEndpointsEnum[]{
StatsService.StatsEndpointsEnum.TOP_POSTS
};
}
@Override
public String getTitle() {
return getString(R.string.stats_view_top_posts_and_pages);
}
}
|