1414
1515package apijson .demo .client .activity_fragment ;
1616
17+ import java .util .ArrayList ;
18+ import java .util .List ;
19+
1720import zuo .biao .apijson .JSONRequest ;
1821import zuo .biao .apijson .JSONResponse ;
1922import zuo .biao .library .base .BaseView .OnDataChangedListener ;
2023import zuo .biao .library .interfaces .OnBottomDragListener ;
2124import zuo .biao .library .manager .CacheManager ;
2225import zuo .biao .library .manager .HttpManager .OnHttpResponseListener ;
26+ import zuo .biao .library .model .Entry ;
2327import zuo .biao .library .ui .AlertDialog ;
2428import zuo .biao .library .ui .AlertDialog .OnDialogButtonClickListener ;
2529import zuo .biao .library .ui .BottomMenuView ;
2832import zuo .biao .library .ui .CutPictureActivity ;
2933import zuo .biao .library .ui .EditTextInfoActivity ;
3034import zuo .biao .library .ui .EditTextInfoWindow ;
35+ import zuo .biao .library .ui .GridAdapter ;
3136import zuo .biao .library .ui .SelectPictureActivity ;
3237import zuo .biao .library .ui .TextClearSuit ;
3338import zuo .biao .library .ui .WebViewActivity ;
3641import zuo .biao .library .util .JSON ;
3742import zuo .biao .library .util .Log ;
3843import zuo .biao .library .util .StringUtil ;
44+ import android .annotation .SuppressLint ;
3945import android .app .Activity ;
4046import android .content .Context ;
4147import android .content .Intent ;
4248import android .os .Bundle ;
49+ import android .view .MotionEvent ;
4350import android .view .View ;
4451import android .view .View .OnClickListener ;
52+ import android .view .View .OnTouchListener ;
4553import android .view .ViewGroup ;
4654import android .widget .EditText ;
55+ import android .widget .GridView ;
4756import android .widget .TextView ;
4857import apijson .demo .client .R ;
4958import apijson .demo .client .base .BaseActivity ;
59+ import apijson .demo .client .model .Moment ;
5060import apijson .demo .client .model .User ;
5161import apijson .demo .client .util .ActionUtil ;
5262import apijson .demo .client .util .HttpRequest ;
@@ -116,6 +126,9 @@ protected void onCreate(Bundle savedInstanceState) {
116126 private ViewGroup llUserBusinessCardContainer ;//方式三
117127 private UserView userView ;
118128
129+ private View llUserMoment ;
130+ private GridView gvUserMoment ;
131+
119132 private EditText etUserRemark ;
120133 private TextView tvUserTag ;
121134
@@ -141,6 +154,9 @@ public void initView() {//必须调用
141154 //添加用户名片,这些方式都可>>>>>>>>>>>>>>>>>>>>>>>
142155
143156
157+ llUserMoment = findViewById (R .id .llUserMoment );
158+ gvUserMoment = (GridView ) findViewById (R .id .gvUserMoment );
159+
144160 etUserRemark = (EditText ) findViewById (R .id .etUserRemark );
145161 tvUserTag = (TextView ) findViewById (R .id .tvUserTag );
146162
@@ -158,15 +174,32 @@ public void initView() {//必须调用
158174 }
159175
160176 private User user ;
177+ private List <Moment > momentList ;
178+ private GridAdapter adapter ;
161179 /**显示用户
162180 * @param user_
163181 */
164182 private void setUser (User user_ ) {
183+ setUser (user_ , momentList );
184+ }
185+ /**显示用户
186+ * @param user_
187+ * @param momentList_
188+ */
189+ private void setUser (User user_ , List <Moment > momentList_ ) {
165190 this .user = user_ ;
191+ this .momentList = momentList_ ;
166192 if (user == null ) {
167193 Log .w (TAG , "setUser user == null >> user = new User();" );
168194 user = new User ();
169195 }
196+ if (momentList == null ) {
197+ momentList = new ArrayList <>();
198+ }
199+ final List <Entry <String , String >> list = new ArrayList <>();
200+ for (Moment moment : momentList ) {
201+ list .add (new Entry <String , String >(moment .getFirstPicture ()));
202+ }
170203
171204 runUiThread (new Runnable () {
172205
@@ -178,6 +211,13 @@ public void run() {
178211
179212 etUserRemark .setText (StringUtil .getTrimedString (user .getHead ()));
180213 tvUserTag .setText (StringUtil .getTrimedString (user .getTag ()));
214+
215+ if (adapter == null ) {
216+ adapter = new GridAdapter (context );
217+ adapter .setHasName (false );
218+ gvUserMoment .setAdapter (adapter );
219+ }
220+ adapter .refresh (list );
181221 }
182222 });
183223 }
@@ -229,8 +269,25 @@ public void run() {
229269 bottomMenuView .bindView (MenuUtil .getMenuList (MenuUtil .USER , id , ! User .isFirend (currentUser , id )));
230270 }
231271
232- setUser (CacheManager .getInstance ().get (User .class , "" + id ));//先加载缓存数据,比网络请求快很多
233- HttpRequest .getUser (id , HTTP_GET , UserActivity .this );
272+ runThread (TAG + "run" , new Runnable () {
273+
274+ @ Override
275+ public void run () {
276+ //先加载缓存数据,比网络请求快很多
277+ user = CacheManager .getInstance ().get (User .class , "" + id );
278+ momentList = CacheManager .getInstance ().getList (Moment .class , "userId=" + id , 0 , 3 );
279+ runUiThread (new Runnable () {
280+
281+ @ Override
282+ public void run () {
283+ setUser (user , momentList );
284+ }
285+ });
286+
287+ HttpRequest .getUser (id , true , HTTP_GET , UserActivity .this );
288+ }
289+ });
290+
234291 }
235292
236293
@@ -271,6 +328,17 @@ public void initEvent() {//必须调用
271328
272329 findViewById (R .id .llUserTag ).setOnClickListener (this );
273330
331+ llUserMoment .setOnClickListener (this );
332+ gvUserMoment .setOnTouchListener (new OnTouchListener () {
333+
334+ @ SuppressLint ("ClickableViewAccessibility" )
335+ @ Override
336+ public boolean onTouch (View v , MotionEvent event ) {
337+ llUserMoment .onTouchEvent (event );
338+ return false ;
339+ }
340+ });
341+
274342 new TextClearSuit ().addClearListener (etUserRemark , findViewById (R .id .ivUserRemarkClear ));//清空备注按钮点击监听
275343
276344
@@ -378,13 +446,20 @@ public void onBottomMenuItemClick(int intentCode) {
378446
379447 @ Override
380448 public void onHttpResponse (int requestCode , String resultJson , Exception e ) {
381- JSONResponse response = new JSONResponse (resultJson ).getJSONResponse (User .class .getSimpleName ());
382- boolean isSucceed = JSONResponse .isSucceed (response );
449+ JSONResponse response = new JSONResponse (resultJson );
450+ JSONResponse response2 = response .getJSONResponse (User .class .getSimpleName ());
451+ boolean isSucceed = JSONResponse .isSucceed (response2 );
383452
384453 dismissProgress ();
385454 switch (requestCode ) {
386455 case HTTP_GET :
387- setUser (new JSONResponse (resultJson ).getObject (User .class ));
456+ User user = response .getObject (User .class );
457+ if (JSONResponse .isSucceed (response ) && (user == null || user .getId () <= 0 )) {
458+ showShortToast ("用户已注销" );
459+ super .finish ();//需要动画,且不需要保存缓存
460+ return ;
461+ }
462+ setUser (user , response .getList (Moment .class .getSimpleName () + "[]" , Moment .class ));
388463 break ;
389464 case HTTP_ADD :
390465 case HTTP_DELETE :
@@ -427,6 +502,9 @@ public void onDragBottom(boolean rightToLeft) {
427502 @ Override
428503 public void onClick (View v ) {
429504 switch (v .getId ()) {
505+ case R .id .llUserMoment :
506+ toActivity (MomentListActivity .createIntent (context , id ));
507+ break ;
430508 case R .id .llUserTag :
431509 toActivity (EditTextInfoActivity .createIntent (context , "标签"
432510 , StringUtil .getTrimedString (tvUserTag )), REQUEST_TO_EDIT_TEXT_INFO );
0 commit comments