Commit 425522c4fcb962836f3639ab3d687e69a1b2abd0
1 parent
915b1b18
修改更新用户信息的逻辑和token失效的代码处理
Showing
3 changed files
with
54 additions
and
5 deletions
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 | }); | ... | ... |