From 05c1c300b01a32677e17c5db0cb312c79397986b Mon Sep 17 00:00:00 2001 From: LiuSiXiang-007 <2535147127@qq.com> Date: Wed, 17 Jan 2024 21:11:48 +0800 Subject: [PATCH] =?UTF-8?q?:construction:=20=E5=88=A0=E9=99=A4=E4=B8=8D?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E7=9A=84=E7=99=BB=E5=BD=95=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E3=80=81=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7=E5=AF=B9=E5=BA=94?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E6=97=B6=E6=A3=80=E6=B5=8Bid=E7=9A=84?= =?UTF-8?q?=E7=A9=BA=E7=8A=B6=E6=80=81=20=E4=B8=BA=E7=A9=BA=E5=88=99?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E9=87=8D=E6=96=B0=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kanglai/push/constant/CacheConstant.java | 3 --- .../push/ui/fragment/MessageFragment.java | 2 ++ .../kanglai/push/ui/vm/LoginViewModel.java | 16 ++++---------- .../com/kanglai/push/ui/vm/UserViewModel.java | 5 ++--- .../com/kanglai/push/util/HistoryMsgUtil.java | 21 ++++++++++++++++++- .../core/http/exception/ExceptionHandle.java | 2 +- .../com/dolphin/core/util/PermissionUtil.java | 3 ++- 7 files changed, 31 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/kanglai/push/constant/CacheConstant.java b/app/src/main/java/com/kanglai/push/constant/CacheConstant.java index 80a35a1..255e8a3 100644 --- a/app/src/main/java/com/kanglai/push/constant/CacheConstant.java +++ b/app/src/main/java/com/kanglai/push/constant/CacheConstant.java @@ -13,9 +13,6 @@ public interface CacheConstant { /** 登录名称存储键 */ String LOGIN_USERNAME = "LOGIN_USERNAME"; - /** 登录密码存储键 */ - String LOGIN_PASSWORD = "LOGIN_PASSWORD"; - /** 软件隐私协议授权键 */ String SOFTWARE_PRIVACY_AGREEMENT_AUTH = "SOFTWARE_PRIVACY_AGREEMENT_AUTH"; diff --git a/app/src/main/java/com/kanglai/push/ui/fragment/MessageFragment.java b/app/src/main/java/com/kanglai/push/ui/fragment/MessageFragment.java index 3e3408f..d4ffdb7 100644 --- a/app/src/main/java/com/kanglai/push/ui/fragment/MessageFragment.java +++ b/app/src/main/java/com/kanglai/push/ui/fragment/MessageFragment.java @@ -132,6 +132,8 @@ public class MessageFragment extends BaseFragment { /** 电话号码 */ public ObservableField phones = new ObservableField(""); - /** 电话号码 */ + /** 验证码 */ public ObservableField captcha = new ObservableField(""); /** 隐私协议确认按钮 */ @@ -146,6 +146,8 @@ public class LoginViewModel extends BaseViewModel { /** 获取验证码点击事件 */ public BindingCommand captchaClickCommand = new BindingCommand(() -> { + User user = CacheDiskUtils.getInstance().getParcelable(CacheConstant.USER_INFO, User.CREATOR, new User()); + LogUtils.d(user); if (StringUtils.isTrimEmpty(phones.get())) { ToastUtil.showBottomWarn("请输入电话号码!"); return; @@ -226,7 +228,7 @@ public class LoginViewModel extends BaseViewModel { @Override public void onComplete() { - + captcha.set(""); // 验证码+电话 验证之后就清空一次验证码 } }); }); @@ -265,7 +267,6 @@ public class LoginViewModel extends BaseViewModel { User user = R.getData(); if (StringUtils.isTrimEmpty(user.getAvatar())) user.setAvatar("/default.png"); MMKV.defaultMMKV().putString(CacheConstant.LOGIN_USERNAME, R.getData().getNickName()); - MMKV.defaultMMKV().putString(CacheConstant.LOGIN_PASSWORD, password.get()); CacheDiskUtils.getInstance().put(CacheConstant.USER_INFO, user); if (isRegister) { // 判断是否第一次登录 isRegister startActivity(LoginSurveyActivity.class); @@ -302,15 +303,6 @@ public class LoginViewModel extends BaseViewModel { @Override public void onCreate(@NonNull LifecycleOwner owner) { super.onCreate(owner); - // 记住用户名与密码 -// if(!StringUtils.isTrimEmpty(MMKV.defaultMMKV().getString(AppConstant.ACCESS_TOKEN_NAME,null))){ -// username.set(MMKV.defaultMMKV().getString(CacheConstant.LOGIN_USERNAME,null)); -// password.set(MMKV.defaultMMKV().getString(CacheConstant.LOGIN_PASSWORD,null)); -// } - } - - public void loggableStatus(){ - } @Override diff --git a/app/src/main/java/com/kanglai/push/ui/vm/UserViewModel.java b/app/src/main/java/com/kanglai/push/ui/vm/UserViewModel.java index 53c06ec..fd2dd78 100644 --- a/app/src/main/java/com/kanglai/push/ui/vm/UserViewModel.java +++ b/app/src/main/java/com/kanglai/push/ui/vm/UserViewModel.java @@ -44,7 +44,6 @@ public class UserViewModel extends ToolbarViewModel { @Override public void onCreate(@NonNull LifecycleOwner owner) { super.onCreate(owner); - } public UserViewModel(@NonNull Application application) { @@ -65,11 +64,11 @@ public class UserViewModel extends ToolbarViewModel { .subscribe(new DisposableObserver() { @Override public void onNext(ResultResponse R) { - CacheDiskUtils.getInstance().remove(CacheConstant.LOGIN_USERNAME); // 清除用户缓存 + CacheDiskUtils.getInstance().remove(CacheConstant.LOGIN_USERNAME); // 清除用户缓存信息 } @Override public void onError(Throwable e) { - CacheDiskUtils.getInstance().remove(CacheConstant.LOGIN_USERNAME); // 清除用户缓存 + CacheDiskUtils.getInstance().remove(CacheConstant.LOGIN_USERNAME); // 清除用户缓存信息 closeDialog(); PermissionUtil.logout(); } diff --git a/app/src/main/java/com/kanglai/push/util/HistoryMsgUtil.java b/app/src/main/java/com/kanglai/push/util/HistoryMsgUtil.java index 5635f98..6d3a983 100644 --- a/app/src/main/java/com/kanglai/push/util/HistoryMsgUtil.java +++ b/app/src/main/java/com/kanglai/push/util/HistoryMsgUtil.java @@ -1,12 +1,20 @@ package com.kanglai.push.util; import com.blankj.utilcode.util.CacheDiskUtils; +import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.MapUtils; +import com.blankj.utilcode.util.StringUtils; +import com.dolphin.core.http.HttpRequest; +import com.dolphin.core.http.exception.ExceptionHandle; +import com.dolphin.core.util.PermissionUtil; +import com.dolphin.core.util.RxUtil; +import com.dolphin.core.util.ToastUtil; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.kanglai.push.constant.CacheConstant; import com.kanglai.push.entity.LocalPushChatMsg; import com.kanglai.push.entity.User; +import com.kanglai.push.ui.vm.LoginViewModel; import java.lang.reflect.Type; import java.util.HashMap; @@ -26,10 +34,21 @@ import lombok.experimental.UtilityClass; @UtilityClass public class HistoryMsgUtil { - private User user = CacheDiskUtils.getInstance().getParcelable(CacheConstant.USER_INFO, User.CREATOR, new User()); + private User user; + + public void loadUser(){ // 初始化用户信息 + user = CacheDiskUtils.getInstance().getParcelable(CacheConstant.USER_INFO, User.CREATOR, new User()); + } /** 获取缓存的列表数据 */ public HashMap select() { + if (StringUtils.isEmpty(user.getId())) { // 用户信息过期就需要重新登录 + HttpRequest.getInstance().retrofit.create(ExceptionHandle.LoginMapper.class) + .logout().compose(RxUtil.schedulersTransformer()); + PermissionUtil.logout(); + ToastUtil.show("登录状态已过期,请重新登录"); + return null; + } String localHistoryMsgJson = CacheDiskUtils.getInstance().getString(user.getId().concat(user.getUserType()) ,""); Type type = new TypeToken>(){}.getType(); return new Gson().fromJson(localHistoryMsgJson, type); diff --git a/library/core/src/main/java/com/dolphin/core/http/exception/ExceptionHandle.java b/library/core/src/main/java/com/dolphin/core/http/exception/ExceptionHandle.java index 9cd3438..f49c543 100644 --- a/library/core/src/main/java/com/dolphin/core/http/exception/ExceptionHandle.java +++ b/library/core/src/main/java/com/dolphin/core/http/exception/ExceptionHandle.java @@ -106,7 +106,7 @@ public class ExceptionHandle { } - interface LoginMapper { + public interface LoginMapper { @DELETE("auth_proxy/token/logout") Observable> logout(); diff --git a/library/core/src/main/java/com/dolphin/core/util/PermissionUtil.java b/library/core/src/main/java/com/dolphin/core/util/PermissionUtil.java index 1f25788..b30c3c6 100644 --- a/library/core/src/main/java/com/dolphin/core/util/PermissionUtil.java +++ b/library/core/src/main/java/com/dolphin/core/util/PermissionUtil.java @@ -4,6 +4,7 @@ import android.app.AlertDialog; import android.content.Context; import android.content.Intent; +import com.blankj.utilcode.util.CacheDiskUtils; import com.blankj.utilcode.util.PermissionUtils; import com.blankj.utilcode.util.Utils; import com.dolphin.core.base.AppManager; @@ -38,7 +39,7 @@ public class PermissionUtil { public void logout() { MMKV.defaultMMKV().remove(AppConstant.ACCESS_TOKEN_NAME); MMKV.defaultMMKV().remove(AppConstant.REFRESH_TOKEN_NAME); - // todo 将所有的活动都关闭之后 intent 无法调起活动 + CacheDiskUtils.getInstance().remove("USER_INFO"); AppManager.getAppManager().currentActivity(); Intent intent = new Intent("com.android.kanglai.push.LoginActivity"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);