Nextrek
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
package nextrek.widgets.rubberlist;
import nextrek.lib.R;
import android.view.View;
import android.widget.AbsListView;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
public class RubberFooterController extends RubberControllerBase {
private static final int MINIMUM_COUNT_TO_SHOW_FOOTER = 7;
private TextView mRefreshViewText;
private ImageView mArrowImageView;
private ProgressBar mRefreshViewProgress;
public RubberFooterController(RubberListView parent) {
super(parent, R.layout.rubber_footer_layout);
mRefreshViewText = (TextView) mWidgetRootView.findViewById(R.id.pull_to_refresh_text);
mArrowImageView = (ImageView) mWidgetRootView.findViewById(R.id.pull_to_refresh_image);
mRefreshViewProgress = (ProgressBar) mWidgetRootView.findViewById(R.id.pull_to_refresh_progress);
mArrowImageView.setMinimumHeight(50);
mWidgetRootView.setOnClickListener(mClickToRefreshListener);
mParentListView.addFooterView(mWidgetRootView);
measureView(mWidgetRootView);
setWidgetState(WidgetState.PULL_TO_REFRESH);
mParentListView.setRubberFooterWidget(this);
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
super.onScrollStateChanged(view, scrollState);
if (mCurrentScrollState == AbsListView.OnScrollListener.SCROLL_STATE_FLING) {
return;
}
}
@Override
protected int getWidgetHeight() {
return mParentListView.getHeight() - mWidgetRootView.getTop();
}
@Override
protected boolean widgetIsVisibleOnScreen() {
return super.widgetIsVisibleOnScreen() && (mParentListView.getLastVisiblePosition() == (mParentListView.getAdapter().getCount() - 1));
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (totalItemCount <= visibleItemCount) {
mWidgetRootView.setVisibility(View.GONE);
} else {
mWidgetRootView.setVisibility(View.VISIBLE);
}
super.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount);
}
WidgetState mWidgetState = WidgetState.TAP_TO_REFRESH;
@Override
public WidgetState getWidgetState() {
return mWidgetState;
}
@Override
public void setWidgetState(WidgetState newState) {
if (mWidgetState != newState) {
// System.out.println("setWidgetState("+newState.toString()+")");
switch (newState) {
case TAP_TO_REFRESH:
restoreViewPadding();
mRefreshViewProgress.setVisibility(View.GONE);
mArrowImageView.setVisibility(View.GONE);
// Set refresh view text to the pull label
mRefreshViewText.setText(R.string.pull_to_refresh_tap_label);
// Replace refresh drawable with arrow drawable
mArrowImageView.setImageResource(R.drawable.rubber_footer_arrow);
// Clear the full rotation animation
mArrowImageView.clearAnimation();
// Hide progress bar and arrow.
break;
case REFRESHING:
mArrowImageView.clearAnimation();
mArrowImageView.setVisibility(View.GONE);
restoreViewPadding();
mRefreshViewProgress.setVisibility(View.VISIBLE);
// Set refresh view text to the refreshing label
mRefreshViewText.setText(R.string.pull_to_refresh_refreshing_label);
break;
case PULL_TO_REFRESH:
mRefreshViewProgress.setVisibility(View.GONE);
mArrowImageView.setVisibility(View.VISIBLE);
mRefreshViewText.setText(R.string.pull_to_refresh_load_more_pull_label);
mArrowImageView.clearAnimation();
if (getWidgetState() == WidgetState.RELEASE_TO_REFRESH) {
mArrowImageView.startAnimation(mReverseFlipAnimation);
}
break;
case RELEASE_TO_REFRESH:
mRefreshViewProgress.setVisibility(View.GONE);
mArrowImageView.setVisibility(View.VISIBLE);
mRefreshViewText.setText(R.string.pull_to_refresh_load_more_release_label);
mArrowImageView.clearAnimation();
if (getWidgetState() == WidgetState.PULL_TO_REFRESH) {
mArrowImageView.startAnimation(mFlipAnimation);
}
break;
default:
break;
}
mWidgetState = newState;
}
}
@Override
public void onRefreshComplete() {
super.onRefreshComplete();
if (mParentListView.getCount() >= MINIMUM_COUNT_TO_SHOW_FOOTER) {
mWidgetRootView.setVisibility(View.VISIBLE);
} else {
mWidgetRootView.setVisibility(View.GONE);
}
}
}
|
Revision |
Author |
Commited |
Message |
4
|
FMMortaroli
|
Fri 19 Apr, 2013 16:54:38 +0000 |
|