Commit 425522c4fcb962836f3639ab3d687e69a1b2abd0

Authored by 谷俊
1 parent 915b1b18

修改更新用户信息的逻辑和token失效的代码处理

app/src/main/java/com/cnlive/gundam/main/ui/fragment/ConfigFragment.java
... ... @@ -17,7 +17,10 @@ import com.cnlive.gundam.user.activity.LoginActivity;
17 17 import com.cnlive.gundam.user.activity.UserPersonalActivity;
18 18 import com.cnlive.gundam.user.auth.UserService;
19 19 import com.cnlive.gundam.user.model.User;
20   -
  20 +import com.cnlive.libs.user.IUserService;
  21 +import com.cnlive.libs.user.UserUtil;
  22 +import com.cnlive.libs.user.model.UserData;
  23 +import com.cnlive.libs.util.data.network.Callback;
21 24  
22 25  
23 26 /**
... ... @@ -27,6 +30,8 @@ import com.cnlive.gundam.user.model.User;
27 30 public class ConfigFragment extends Fragment implements View.OnClickListener {
28 31 private UserFragmentBinding binding;
29 32  
  33 + private User user;
  34 +
30 35 @Nullable
31 36 @Override
32 37 public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
... ... @@ -81,7 +86,11 @@ public class ConfigFragment extends Fragment implements View.OnClickListener {
81 86 @Override
82 87 public void onResume() {
83 88 super.onResume();
84   - notifyUI(UserService.getInstance(getActivity()).getActiveAccountInfo().getUid() != 0);
  89 + user = UserService.getInstance(getActivity()).getActiveAccountInfo();
  90 + boolean isLogin = user != null && user.getUid() != 0;
  91 + notifyUI(isLogin);
  92 + if (!isLogin) return;
  93 + updateUserInfo();
85 94 }
86 95  
87 96 private void notifyUI(boolean isLogin) {
... ... @@ -94,4 +103,22 @@ public class ConfigFragment extends Fragment implements View.OnClickListener {
94 103 binding.tvNickname.setText(getString(R.string.click_login));
95 104 }
96 105 }
  106 +
  107 + private void updateUserInfo() {
  108 + UserUtil.queryUserInfo(String.valueOf(user.getUid()), String.valueOf(user.getUid()), new Callback() {
  109 + @Override
  110 + public void onState(int i, String s, Object obj) {
  111 + if (i == IUserService.SUCCESS) {
  112 + UserData userData = (UserData) obj;
  113 + UserService userService = UserService.getInstance(getActivity());
  114 + userService.setActiveAccountInfo(userData.getData());
  115 + notifyUI(true);
  116 + } else if (i == IUserService.ERROR_TOKEN_INVALID) {
  117 + UserService userService = UserService.getInstance(getActivity());
  118 + userService.clearUser();
  119 + notifyUI(false);
  120 + }
  121 + }
  122 + });
  123 + }
97 124 }
... ...
app/src/main/java/com/cnlive/gundam/user/fragment/UserPersonalEditFragment.java
... ... @@ -129,6 +129,10 @@ public class UserPersonalEditFragment extends Fragment implements Callback, View
129 129 if (i == IUserService.SUCCESS) {
130 130 updateUserInfo();
131 131 Toast.makeText(getActivity(), "提交成功", Toast.LENGTH_LONG).show();
  132 + } else if (i == IUserService.ERROR_TOKEN_INVALID) {
  133 + UserService userService = UserService.getInstance(getActivity());
  134 + userService.clearUser();
  135 + getActivity().finish();
132 136 } else {
133 137 Toast.makeText(getActivity(), "提交失败" + s, Toast.LENGTH_LONG).show();
134 138 }
... ... @@ -142,6 +146,10 @@ public class UserPersonalEditFragment extends Fragment implements Callback, View
142 146 UserData userData = (UserData) obj;
143 147 UserService userService = UserService.getInstance(getActivity());
144 148 userService.setActiveAccountInfo(userData.getData());
  149 + } else if (i == IUserService.ERROR_TOKEN_INVALID) {
  150 + UserService userService = UserService.getInstance(getActivity());
  151 + userService.clearUser();
  152 + getActivity().finish();
145 153 }
146 154 }
147 155 });
... ...
app/src/main/java/com/cnlive/gundam/user/fragment/UserPersonalFragment.java
... ... @@ -93,12 +93,17 @@ public class UserPersonalFragment extends Fragment implements DataBindingAdapter
93 93 @Override
94 94 public void onResume() {
95 95 super.onResume();
96   - initData();
  96 + UserService userService = UserService.getInstance(getActivity());
  97 + user = userService.getActiveAccountInfo();
  98 + if(user != null && user.getUid() > 0){
  99 + initData();
  100 + updateUserInfo();
  101 + }else{
  102 + getActivity().finish();
  103 + }
97 104 }
98 105  
99 106 private void initData() {
100   - UserService userService = UserService.getInstance(getActivity());
101   - user = userService.getActiveAccountInfo();
102 107 String gender = user.getGender().equals("f") ? "女" : (user.getGender().equals("m") ? "男" : "未知");
103 108 personalData = new ArrayList<>();
104 109 personalData.add(new PersonalData("头像", user.getFaceurl(), PersonalData.TYPE_HEADER));
... ... @@ -278,6 +283,10 @@ public class UserPersonalFragment extends Fragment implements DataBindingAdapter
278 283 if (i == IUserService.SUCCESS) {
279 284 updateUserInfo();
280 285 Toast.makeText(getActivity(), "提交成功", Toast.LENGTH_LONG).show();
  286 + } else if (i == IUserService.ERROR_TOKEN_INVALID) {
  287 + UserService userService = UserService.getInstance(getActivity());
  288 + userService.clearUser();
  289 + getActivity().finish();
281 290 } else {
282 291 Toast.makeText(getActivity(), "提交失败" + s, Toast.LENGTH_LONG).show();
283 292 }
... ... @@ -291,7 +300,12 @@ public class UserPersonalFragment extends Fragment implements DataBindingAdapter
291 300 UserData userData = (UserData) obj;
292 301 UserService userService = UserService.getInstance(getActivity());
293 302 userService.setActiveAccountInfo(userData.getData());
  303 + user = userService.getActiveAccountInfo();
294 304 initData();
  305 + } else if (i == IUserService.ERROR_TOKEN_INVALID) {
  306 + UserService userService = UserService.getInstance(getActivity());
  307 + userService.clearUser();
  308 + getActivity().finish();
295 309 }
296 310 }
297 311 });
... ...