1
1
package com .rae .cnblogs .activity ;
2
2
3
- import android .content .Intent ;
4
3
import android .os .Bundle ;
5
4
import android .support .annotation .Nullable ;
6
- import android .support .v7 .widget .Toolbar ;
7
5
import android .text .TextUtils ;
8
- import android .view .View ;
9
- import android .widget .TextView ;
10
6
11
- import com .jcodecraeer .xrecyclerview .XRecyclerView ;
12
7
import com .rae .cnblogs .AppRoute ;
13
8
import com .rae .cnblogs .AppUI ;
14
9
import com .rae .cnblogs .R ;
15
- import com .rae .cnblogs .RxObservable ;
16
- import com .rae .cnblogs .adapter .BaseItemAdapter ;
17
- import com .rae .cnblogs .adapter .FriendsAdapter ;
18
- import com .rae .cnblogs .sdk .ApiDefaultObserver ;
19
- import com .rae .cnblogs .sdk .CnblogsApiFactory ;
20
- import com .rae .cnblogs .sdk .api .IFriendsApi ;
21
- import com .rae .cnblogs .sdk .bean .UserInfoBean ;
22
- import com .rae .cnblogs .widget .AppLayout ;
23
- import com .rae .cnblogs .widget .PlaceholderView ;
24
- import com .rae .cnblogs .widget .RaeRecyclerView ;
25
- import com .rae .swift .Rx ;
26
-
27
- import java .util .ArrayList ;
28
- import java .util .List ;
29
-
30
- import butterknife .BindView ;
31
- import in .srain .cube .views .ptr .PtrDefaultHandler ;
32
- import in .srain .cube .views .ptr .PtrFrameLayout ;
33
- import io .reactivex .Observable ;
34
- import io .reactivex .functions .Action ;
10
+ import com .rae .cnblogs .fragment .BloggerFragment ;
35
11
36
12
/**
37
13
* 粉丝和关注
38
14
* Created by ChenRui on 2017/2/23 00:41.
39
15
*/
40
16
public class FriendsActivity extends SwipeBackBaseActivity {
41
17
42
- @ BindView (R .id .title_tool_bar )
43
- Toolbar mToolbar ;
44
-
45
- @ BindView (R .id .tv_title )
46
- TextView mTitleView ;
47
-
48
- @ BindView (R .id .rec_friends_list )
49
- RaeRecyclerView mRecyclerView ;
50
-
51
- @ BindView (R .id .placeholder )
52
- PlaceholderView mPlaceholderView ;
53
-
54
-
55
- @ BindView (R .id .ptr_content )
56
- AppLayout mAppLayout ;
57
-
58
- private IFriendsApi mFriendApi ;
59
-
60
- private int mPage = 1 ;
61
- private FriendsAdapter mAdapter ;
62
- private final List <UserInfoBean > mDataList = new ArrayList <>();
63
18
private String mUserId ;
64
19
private int mFromType ;
65
20
66
21
@ Override
67
22
protected void onCreate (@ Nullable Bundle savedInstanceState ) {
68
23
super .onCreate (savedInstanceState );
69
24
setContentView (R .layout .activity_friends );
70
- showHomeAsUp (mToolbar );
25
+ showHomeAsUp ();
71
26
mUserId = getIntent ().getStringExtra ("userId" );
72
27
String bloggerName = getIntent ().getStringExtra ("bloggerName" );
73
28
mFromType = getIntent ().getIntExtra ("fromType" , AppRoute .ACTIVITY_FRIENDS_TYPE_FANS );
@@ -86,132 +41,17 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
86
41
setTitle (getString (R .string .title_follow , bloggerName ));
87
42
}
88
43
89
- mFriendApi = CnblogsApiFactory .getInstance (this ).getFriendApi ();
90
- mAdapter = new FriendsAdapter ();
91
- mRecyclerView .setAdapter (mAdapter );
92
- mAdapter .setOnItemClickListener (new BaseItemAdapter .onItemClickListener <UserInfoBean >() {
93
- @ Override
94
- public void onItemClick (UserInfoBean item ) {
95
- AppRoute .jumpToBlogger (FriendsActivity .this , item .getBlogApp ());
96
- }
97
- });
98
- mRecyclerView .setLoadingMoreEnabled (true );
99
- mRecyclerView .setLoadingListener (new XRecyclerView .LoadingListener () {
100
- @ Override
101
- public void onRefresh () {
102
-
103
- }
104
-
105
- @ Override
106
- public void onLoadMore () {
107
- loadData ();
108
- }
109
- });
110
-
111
-
112
- mAppLayout .setPtrHandler (new PtrDefaultHandler () {
113
- @ Override
114
- public void onRefreshBegin (PtrFrameLayout ptrFrameLayout ) {
115
- start ();
116
- }
117
-
118
- @ Override
119
- public boolean checkCanDoRefresh (PtrFrameLayout frame , View content , View header ) {
120
- return mRecyclerView .isOnTop ();
121
- }
122
- });
123
-
124
- start ();
125
- }
126
-
127
- private void start () {
128
- mPage = 1 ;
129
- loadData ();
130
- }
131
-
132
- @ Override
133
- public void setTitle (CharSequence title ) {
134
- mTitleView .setText (title );
44
+ getSupportFragmentManager ()
45
+ .beginTransaction ()
46
+ .add (R .id .content , BloggerFragment .newInstance (mUserId , isFansType ()))
47
+ .commitNowAllowingStateLoss ();
135
48
}
136
49
137
- // 获取数据
138
- private void loadData () {
139
- Observable <List <UserInfoBean >> observable = mFriendApi .getFollowAndFansList (mUserId , mPage , !isFansType ());
140
- RxObservable .create (observable , "FriendsActivity" )
141
- .doFinally (new Action () {
142
- @ Override
143
- public void run () throws Exception {
144
- mAppLayout .refreshComplete ();
145
- }
146
- })
147
- .subscribe (new ApiDefaultObserver <List <UserInfoBean >>() {
148
- @ Override
149
- protected void onError (String message ) {
150
- if (mPage > 1 ) {
151
- mRecyclerView .setNoMore (true );
152
- } else {
153
- mPlaceholderView .empty (message );
154
- }
155
- }
156
-
157
- @ Override
158
- protected void accept (List <UserInfoBean > data ) {
159
- onLoadFriends (data );
160
- }
161
- });
162
- }
163
-
164
- @ Override
165
- protected void onDestroy () {
166
- super .onDestroy ();
167
- RxObservable .dispose ("FriendsActivity" );
168
- }
169
-
170
- public void onLoadFriends (List <UserInfoBean > data ) {
171
- mPlaceholderView .dismiss ();
172
-
173
- if (Rx .isEmpty (data )) {
174
- if (mPage <= 1 ) {
175
- mPlaceholderView .empty ();
176
- } else {
177
- mRecyclerView .loadMoreComplete ();
178
- mRecyclerView .setNoMore (true );
179
- }
180
- return ;
181
- }
182
- if (mPage <= 1 ) {
183
- mDataList .clear ();
184
- }
185
- mDataList .addAll (data );
186
-
187
- mAdapter .invalidate (mDataList );
188
- mAdapter .notifyDataSetChanged ();
189
- mRecyclerView .loadMoreComplete ();
190
- mPage ++;
191
-
192
- if (mPage <= 1 ) {
193
- mRecyclerView .postDelayed (new Runnable () {
194
- @ Override
195
- public void run () {
196
- mRecyclerView .scrollToPosition (0 );
197
- }
198
- }, 1000 );
199
- }
200
- }
201
-
202
- @ Override
203
- protected void onActivityResult (int requestCode , int resultCode , Intent data ) {
204
- super .onActivityResult (requestCode , resultCode , data );
205
- if (resultCode == RESULT_OK && requestCode == AppRoute .REQ_CODE_BLOGGER ) {
206
- start ();
207
- }
208
- }
209
50
210
51
/**
211
52
* 是否为粉丝类型
212
53
*/
213
54
public boolean isFansType () {
214
55
return mFromType == AppRoute .ACTIVITY_FRIENDS_TYPE_FANS ;
215
56
}
216
-
217
57
}
0 commit comments