Skip to content

Commit de7220a

Browse files
committed
Client:新增接口返回未登录时跳到登录界面;解决UserActivity编辑错位问题;优化代码
1 parent fcf6a32 commit de7220a

File tree

21 files changed

+197
-72
lines changed

21 files changed

+197
-72
lines changed

APIJSON-Android/APIJSON-ADT/APIJSONApp/APIJSONApp/src/apijson/demo/client/activity_fragment/LoginActivity.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ public void onHttpResponse(int requestCode, String resultJson, Exception e) {
198198
return;
199199
}
200200

201+
user.setPhone(phone);
201202
onLoginSucceed();
202203
}
203204
}

APIJSON-Android/APIJSON-ADT/APIJSONApp/APIJSONApp/src/apijson/demo/client/activity_fragment/MomentActivity.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import java.util.List;
1818

1919
import zuo.biao.apijson.JSONResponse;
20-
import zuo.biao.library.base.BaseHttpListActivity;
2120
import zuo.biao.library.base.BaseView.OnDataChangedListener;
2221
import zuo.biao.library.interfaces.AdapterCallBack;
2322
import zuo.biao.library.interfaces.CacheCallBack;
@@ -45,6 +44,7 @@
4544
import apijson.demo.client.R;
4645
import apijson.demo.client.adapter.CommentAdapter;
4746
import apijson.demo.client.application.APIJSONApplication;
47+
import apijson.demo.client.base.BaseHttpListActivity;
4848
import apijson.demo.client.manager.HttpManager;
4949
import apijson.demo.client.model.Comment;
5050
import apijson.demo.client.model.CommentItem;
@@ -531,6 +531,9 @@ public void run() {
531531
return;
532532
}
533533

534+
if (verifyHttpLogin(response.getCode()) == false) {
535+
return;
536+
}
534537

535538
JSONResponse comment = response.getJSONResponse(Comment.class.getSimpleName());
536539
final boolean succeed = JSONResponse.isSuccess(comment);

APIJSON-Android/APIJSON-ADT/APIJSONApp/APIJSONApp/src/apijson/demo/client/activity_fragment/MomentListFragment.java

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,19 @@
1414

1515
package apijson.demo.client.activity_fragment;
1616

17+
import java.util.List;
18+
19+
import zuo.biao.apijson.JSON;
20+
import zuo.biao.apijson.JSONRequest;
21+
import zuo.biao.apijson.JSONResponse;
22+
import zuo.biao.apijson.SQL;
23+
import zuo.biao.apijson.StringUtil;
24+
import zuo.biao.library.base.BaseView.OnDataChangedListener;
25+
import zuo.biao.library.interfaces.AdapterCallBack;
26+
import zuo.biao.library.interfaces.CacheCallBack;
27+
import zuo.biao.library.interfaces.OnBottomDragListener;
28+
import zuo.biao.library.manager.HttpManager.OnHttpResponseListener;
29+
import zuo.biao.library.ui.EditTextInfoWindow;
1730
import android.annotation.SuppressLint;
1831
import android.app.Activity;
1932
import android.content.Intent;
@@ -27,11 +40,6 @@
2740
import android.widget.AdapterView.OnItemClickListener;
2841
import android.widget.ImageView;
2942
import android.widget.TextView;
30-
31-
import com.alibaba.fastjson.JSONObject;
32-
33-
import java.util.List;
34-
3543
import apijson.demo.client.R;
3644
import apijson.demo.client.adapter.MomentAdapter;
3745
import apijson.demo.client.application.APIJSONApplication;
@@ -41,17 +49,8 @@
4149
import apijson.demo.client.model.MomentItem;
4250
import apijson.demo.client.util.CommentUtil;
4351
import apijson.demo.client.util.HttpRequest;
44-
import zuo.biao.apijson.JSON;
45-
import zuo.biao.apijson.JSONRequest;
46-
import zuo.biao.apijson.JSONResponse;
47-
import zuo.biao.apijson.SQL;
48-
import zuo.biao.apijson.StringUtil;
49-
import zuo.biao.library.base.BaseView.OnDataChangedListener;
50-
import zuo.biao.library.interfaces.AdapterCallBack;
51-
import zuo.biao.library.interfaces.CacheCallBack;
52-
import zuo.biao.library.interfaces.OnBottomDragListener;
53-
import zuo.biao.library.manager.HttpManager.OnHttpResponseListener;
54-
import zuo.biao.library.ui.EditTextInfoWindow;
52+
53+
import com.alibaba.fastjson.JSONObject;
5554

5655
/**用户列表界面fragment
5756
* @author Lemon
@@ -364,9 +363,12 @@ public void onDataChanged() {
364363

365364
@Override
366365
public void onHttpResponse(int requestCode, String resultJson, Exception e) {
366+
JSONResponse response = new JSONResponse(resultJson);
367+
if ((range == RANGE_USER_CIRCLE || requestCode == HTTP_ADD) && verifyHttpLogin(response.getCode()) == false) {
368+
return;
369+
}
367370
switch (requestCode) {
368371
case HTTP_ADD:
369-
JSONResponse response = new JSONResponse(resultJson);
370372
response = response.getJSONResponse(Moment.class.getSimpleName());
371373

372374
if (JSONResponse.isSuccess(response) == false) {
@@ -389,6 +391,8 @@ public void run() {
389391

390392
}
391393

394+
395+
392396
//系统自带监听方法 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
393397

394398

APIJSON-Android/APIJSON-ADT/APIJSONApp/APIJSONApp/src/apijson/demo/client/activity_fragment/QRCodeActivity.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,7 @@ public void run() {
133133
@Override
134134
public void run() {
135135
ImageLoaderUtil.loadImage(ivQRCodeHead, user.getHead());
136-
tvQRCodeName.setText(StringUtil.getTrimedString(
137-
StringUtil.isNotEmpty(user.getName(), true)
138-
? user.getName() : user.getPhone()));
136+
tvQRCodeName.setText(StringUtil.getTrimedString(user.getName()));
139137
}
140138
});
141139

APIJSON-Android/APIJSON-ADT/APIJSONApp/APIJSONApp/src/apijson/demo/client/activity_fragment/SplashActivity.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,10 @@ public void finish() {
4444
super.finish();
4545
overridePendingTransition(R.anim.fade, R.anim.hold);
4646
}
47+
48+
@Override
49+
public void onBackPressed() {
50+
//super.onBackPressed();
51+
}
4752

4853
}

APIJSON-Android/APIJSON-ADT/APIJSONApp/APIJSONApp/src/apijson/demo/client/activity_fragment/UserActivity.java

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import apijson.demo.client.util.HttpRequest;
3939
import apijson.demo.client.util.MenuUtil;
4040
import apijson.demo.client.view.UserView;
41+
import apijson.demo.server.model.Privacy;
4142
import zuo.biao.apijson.JSONRequest;
4243
import zuo.biao.apijson.JSONResponse;
4344
import zuo.biao.library.base.BaseView.OnDataChangedListener;
@@ -188,12 +189,12 @@ private void setUser(User user_) {
188189
* @param momentList_
189190
*/
190191
private void setUser(User user_, List<Moment> momentList_) {
192+
if (user_ == null) {
193+
Log.w(TAG, "setUser user_ == null >> user = new User();");
194+
user_ = new User();
195+
}
191196
this.user = user_;
192197
this.momentList = momentList_;
193-
if (user == null) {
194-
Log.w(TAG, "setUser user == null >> user = new User();");
195-
user = new User();
196-
}
197198
if (momentList == null) {
198199
momentList = new ArrayList<>();
199200
}
@@ -211,7 +212,6 @@ public void run() {
211212
userView.bindView(user);//方式三
212213

213214
tvUserRemark.setText(StringUtil.getTrimedString(user.getHead()));
214-
tvUserPhone.setText(StringUtil.getTrimedString(user.getPhone()));
215215

216216
if (adapter == null) {
217217
adapter = new GridAdapter(context);
@@ -223,6 +223,26 @@ public void run() {
223223
});
224224
}
225225

226+
227+
private Privacy privacy;
228+
/**显示用户隐私信息
229+
* @param privacy
230+
*/
231+
private void setPrivacy(Privacy privacy_) {
232+
if (privacy_ == null) {
233+
Log.w(TAG, "setUser user_ == null >> user = new User();");
234+
privacy_ = new Privacy();
235+
}
236+
this.privacy = privacy_;
237+
runUiThread(new Runnable() {
238+
239+
@Override
240+
public void run() {
241+
tvUserPhone.setText(StringUtil.getTrimedString(privacy.getPhone()));
242+
}
243+
});
244+
}
245+
226246
/**裁剪图片
227247
* @param path
228248
*/
@@ -270,7 +290,7 @@ public void onDataChanged() {
270290
bottomMenuView.bindView(MenuUtil.getMenuList(MenuUtil.USER, id, ! User.isFriend(currentUser, id)));
271291
}
272292

273-
runThread(TAG + "run", new Runnable() {
293+
runThread(TAG + "onDataChanged", new Runnable() {
274294

275295
@Override
276296
public void run() {
@@ -284,10 +304,12 @@ public void run() {
284304
@Override
285305
public void run() {
286306
setUser(user, momentList);
307+
setPrivacy(null);
287308
}
288309
});
289310

290311
HttpRequest.getUser(id, ! isOnEditMode, HTTP_GET, UserActivity.this);
312+
HttpRequest.getPrivacy(id, HTTP_GET_PRIVACY, UserActivity.this);
291313
}
292314
});
293315

@@ -386,8 +408,8 @@ public void onClick(View v) {
386408
break;
387409
case R.id.tvUserViewTag:
388410
if (isOnEditMode) {
389-
toActivity(EditTextInfoActivity.createIntent(context, "标签"
390-
, StringUtil.getTrimedString(tvUserPhone)), REQUEST_TO_EDIT_TEXT_INFO_TAG);
411+
toActivity(EditTextInfoWindow.createIntent(context
412+
, "标签", user.getTag()), REQUEST_TO_EDIT_TEXT_INFO_TAG, false);
391413
} else {
392414
CommonUtil.copyText(context, user.getTag());
393415
}
@@ -442,6 +464,7 @@ public void onBottomMenuItemClick(int intentCode) {
442464
//对应HttpRequest.getUser(id, 0, UserActivity.this); <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
443465

444466
protected static final int HTTP_GET = 1;
467+
protected static final int HTTP_GET_PRIVACY = 5;
445468
protected static final int HTTP_ADD = 2;
446469
protected static final int HTTP_DELETE = 3;
447470
protected static final int HTTP_PUT = 4;
@@ -466,8 +489,14 @@ public void onHttpResponse(int requestCode, String resultJson, Exception e) {
466489
}
467490
setUser(user, response.getList(Moment.class.getSimpleName() + "[]", Moment.class));
468491
break;
492+
case HTTP_GET_PRIVACY:
493+
setPrivacy(response.getObject(Privacy.class));
494+
break;
469495
case HTTP_ADD:
470496
case HTTP_DELETE:
497+
if (verifyHttpLogin(response.getCode()) == false) {
498+
return;
499+
}
471500
if (isSucceed) {
472501
showShortToast(requestCode == HTTP_ADD ? R.string.add_succeed : R.string.delete_succeed);
473502
sendBroadcast(new Intent(ActionUtil.ACTION_RELOAD_CURRENT_USER));
@@ -476,6 +505,9 @@ public void onHttpResponse(int requestCode, String resultJson, Exception e) {
476505
}
477506
break;
478507
case HTTP_PUT:
508+
if (verifyHttpLogin(response.getCode()) == false) {
509+
return;
510+
}
479511
if (isSucceed) {
480512
isDataChanged = false;
481513
sendBroadcast(new Intent(ActionUtil.ACTION_RELOAD_CURRENT_USER));
@@ -515,7 +547,7 @@ public void onClick(View v) {
515547
break;
516548
case R.id.llUserPhone:
517549
toActivity(EditTextInfoWindow.createIntent(context, EditTextInfoWindow.TYPE_PHONE
518-
, "手机", user.getPhone()), REQUEST_TO_EDIT_TEXT_INFO_PHONE, false);
550+
, "手机", privacy.getPhone()), REQUEST_TO_EDIT_TEXT_INFO_PHONE, false);
519551
break;
520552
default:
521553
break;
@@ -579,7 +611,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
579611
user.setName(value);
580612
break;
581613
case REQUEST_TO_EDIT_TEXT_INFO_PHONE:
582-
user.setPhone(value);
614+
privacy.setPhone(value);
583615
break;
584616
case REQUEST_TO_EDIT_TEXT_INFO_REMARK:
585617
user.setHead(value);

APIJSON-Android/APIJSON-ADT/APIJSONApp/APIJSONApp/src/apijson/demo/client/activity_fragment/UserListFragment.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,16 @@ public void onDataChanged() {
358358
}
359359
}
360360

361+
362+
@Override
363+
public void onHttpResponse(int requestCode, String resultJson, Exception e) {
364+
JSONResponse response = new JSONResponse(resultJson);
365+
if ((range == RANGE_USER_FRIEND) && verifyHttpLogin(response.getCode()) == false) {
366+
return;
367+
}
368+
super.onHttpResponse(requestCode, resultJson, e);
369+
}
370+
361371
//系统自带监听方法 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
362372

363373

APIJSON-Android/APIJSON-ADT/APIJSONApp/APIJSONApp/src/apijson/demo/client/activity_fragment/WalletActivity.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
package apijson.demo.client.activity_fragment;
1616

1717
import zuo.biao.apijson.JSONResponse;
18-
import zuo.biao.library.base.BaseActivity;
1918
import zuo.biao.library.interfaces.OnBottomDragListener;
2019
import zuo.biao.library.manager.HttpManager.OnHttpResponseListener;
2120
import zuo.biao.library.ui.EditTextInfoActivity;
@@ -29,6 +28,7 @@
2928
import android.view.View.OnClickListener;
3029
import android.widget.TextView;
3130
import apijson.demo.client.R;
31+
import apijson.demo.client.base.BaseActivity;
3232
import apijson.demo.client.util.HttpRequest;
3333
import apijson.demo.server.model.Privacy;
3434

@@ -166,6 +166,10 @@ public void onHttpResponse(final int requestCode, final String resultJson, Excep
166166
public void run() {
167167

168168
JSONResponse response = new JSONResponse(resultJson);
169+
if (verifyHttpLogin(response.getCode()) == false) {
170+
return;
171+
}
172+
169173
isSucceed = JSONResponse.isSuccess(response);
170174

171175
dismissProgressDialog();

APIJSON-Android/APIJSON-ADT/APIJSONApp/APIJSONApp/src/apijson/demo/client/application/APIJSONApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ public void saveCurrentUser(User user) {
8080
}
8181

8282
public void logout() {
83+
DataManager.getInstance().saveUser(currentUser);
8384
currentUser = null;
84-
DataManager.getInstance().saveCurrentUser(currentUser);
8585
}
8686

8787
/**判断是否为当前用户

APIJSON-Android/APIJSON-ADT/APIJSONApp/APIJSONApp/src/apijson/demo/client/base/BaseActivity.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
package apijson.demo.client.base;
1616

17+
import zuo.biao.apijson.JSONResponse;
1718
import zuo.biao.library.base.BaseBroadcastReceiver;
1819
import zuo.biao.library.base.BaseView.OnDataChangedListener;
1920
import zuo.biao.library.util.Log;
@@ -48,7 +49,17 @@ private void setCurrentUser() {
4849
currentUserId = currentUser == null ? 0 : currentUser.getId();
4950
isLoggedIn = isCurrentUserCorrect();
5051
}
51-
52+
53+
protected boolean verifyHttpLogin(int code) {
54+
if (isAlive() == false) {
55+
return true;
56+
}
57+
if (code == JSONResponse.CODE_NOT_LOGGED_IN) {
58+
APIJSONApplication.getInstance().logout();
59+
setCurrentUser();
60+
}
61+
return verifyLogin();
62+
}
5263
protected static boolean isCurrentUser(long userId) {
5364
return APIJSONApplication.getInstance().isCurrentUser(userId);
5465
}

APIJSON-Android/APIJSON-ADT/APIJSONApp/APIJSONApp/src/apijson/demo/client/base/BaseBottomTabActivity.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
package apijson.demo.client.base;
1616

17+
import zuo.biao.apijson.JSONResponse;
1718
import zuo.biao.library.base.BaseBroadcastReceiver;
1819
import zuo.biao.library.base.BaseView.OnDataChangedListener;
1920
import zuo.biao.library.util.Log;
@@ -48,7 +49,17 @@ private void setCurrentUser() {
4849
currentUserId = currentUser == null ? 0 : currentUser.getId();
4950
isLoggedIn = isCurrentUserCorrect();
5051
}
51-
52+
53+
protected boolean verifyHttpLogin(int code) {
54+
if (isAlive() == false) {
55+
return true;
56+
}
57+
if (code == JSONResponse.CODE_NOT_LOGGED_IN) {
58+
APIJSONApplication.getInstance().logout();
59+
setCurrentUser();
60+
}
61+
return verifyLogin();
62+
}
5263
protected static boolean isCurrentUser(long userId) {
5364
return APIJSONApplication.getInstance().isCurrentUser(userId);
5465
}

0 commit comments

Comments
 (0)