diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index cd97837..637d8bb 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -26,7 +26,6 @@ import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; @@ -43,7 +42,6 @@ private UserBean.DataBean userData; private ClipboardManager clipboardManager; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; private VersionViewModel versionViewModel; private ProgressDialog progressDialog; @@ -55,7 +53,6 @@ @Override protected void initData() { - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); userViewModel = new ViewModelProvider(this).get(UserViewModel.class); versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); @@ -82,10 +79,10 @@ @Override public void onClick(View v) { DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { @@ -170,7 +167,7 @@ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { @Override public void onConfirmClick() { - loginViewModel.out(); + userViewModel.loginOut(); } @Override @@ -180,7 +177,7 @@ }).build().show(); } }); - loginViewModel.loginOutActionModel.observe(this, new Observer() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean actionResultBean) { AuthenticationHelper.removeToken(); diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index cd97837..637d8bb 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -26,7 +26,6 @@ import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; @@ -43,7 +42,6 @@ private UserBean.DataBean userData; private ClipboardManager clipboardManager; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; private VersionViewModel versionViewModel; private ProgressDialog progressDialog; @@ -55,7 +53,6 @@ @Override protected void initData() { - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); userViewModel = new ViewModelProvider(this).get(UserViewModel.class); versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); @@ -82,10 +79,10 @@ @Override public void onClick(View v) { DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { @@ -170,7 +167,7 @@ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { @Override public void onConfirmClick() { - loginViewModel.out(); + userViewModel.loginOut(); } @Override @@ -180,7 +177,7 @@ }).build().show(); } }); - loginViewModel.loginOutActionModel.observe(this, new Observer() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean actionResultBean) { AuthenticationHelper.removeToken(); diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 49d0ac9..0a39218 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -26,7 +26,7 @@ */ public static DataBaseManager getInstance() { if (instance == null) { - synchronized (BaseApplication.class) { + synchronized (DataBaseManager.class) { if (instance == null) { instance = new DataBaseManager(); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index cd97837..637d8bb 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -26,7 +26,6 @@ import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; @@ -43,7 +42,6 @@ private UserBean.DataBean userData; private ClipboardManager clipboardManager; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; private VersionViewModel versionViewModel; private ProgressDialog progressDialog; @@ -55,7 +53,6 @@ @Override protected void initData() { - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); userViewModel = new ViewModelProvider(this).get(UserViewModel.class); versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); @@ -82,10 +79,10 @@ @Override public void onClick(View v) { DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { @@ -170,7 +167,7 @@ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { @Override public void onConfirmClick() { - loginViewModel.out(); + userViewModel.loginOut(); } @Override @@ -180,7 +177,7 @@ }).build().show(); } }); - loginViewModel.loginOutActionModel.observe(this, new Observer() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean actionResultBean) { AuthenticationHelper.removeToken(); diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 49d0ac9..0a39218 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -26,7 +26,7 @@ */ public static DataBaseManager getInstance() { if (instance == null) { - synchronized (BaseApplication.class) { + synchronized (DataBaseManager.class) { if (instance == null) { instance = new DataBaseManager(); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index dfab835..5c31b0a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -32,7 +32,7 @@ /** * 登录并获取Token */ - public static Observable getTokenData(String username, String key) { + public static Observable login(String username, String key) { return api.login(username, key); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index cd97837..637d8bb 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -26,7 +26,6 @@ import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; @@ -43,7 +42,6 @@ private UserBean.DataBean userData; private ClipboardManager clipboardManager; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; private VersionViewModel versionViewModel; private ProgressDialog progressDialog; @@ -55,7 +53,6 @@ @Override protected void initData() { - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); userViewModel = new ViewModelProvider(this).get(UserViewModel.class); versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); @@ -82,10 +79,10 @@ @Override public void onClick(View v) { DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { @@ -170,7 +167,7 @@ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { @Override public void onConfirmClick() { - loginViewModel.out(); + userViewModel.loginOut(); } @Override @@ -180,7 +177,7 @@ }).build().show(); } }); - loginViewModel.loginOutActionModel.observe(this, new Observer() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean actionResultBean) { AuthenticationHelper.removeToken(); diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 49d0ac9..0a39218 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -26,7 +26,7 @@ */ public static DataBaseManager getInstance() { if (instance == null) { - synchronized (BaseApplication.class) { + synchronized (DataBaseManager.class) { if (instance == null) { instance = new DataBaseManager(); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index dfab835..5c31b0a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -32,7 +32,7 @@ /** * 登录并获取Token */ - public static Observable getTokenData(String username, String key) { + public static Observable login(String username, String key) { return api.login(username, key); } diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index c29f085..a13cbc2 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -145,7 +145,7 @@ userViewModel.changePassword(oldPassKey, newPassKey); } }); - userViewModel.changePwdResultModel.observe(this, new Observer() { + userViewModel.changePwdResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index cd97837..637d8bb 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -26,7 +26,6 @@ import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; @@ -43,7 +42,6 @@ private UserBean.DataBean userData; private ClipboardManager clipboardManager; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; private VersionViewModel versionViewModel; private ProgressDialog progressDialog; @@ -55,7 +53,6 @@ @Override protected void initData() { - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); userViewModel = new ViewModelProvider(this).get(UserViewModel.class); versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); @@ -82,10 +79,10 @@ @Override public void onClick(View v) { DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { @@ -170,7 +167,7 @@ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { @Override public void onConfirmClick() { - loginViewModel.out(); + userViewModel.loginOut(); } @Override @@ -180,7 +177,7 @@ }).build().show(); } }); - loginViewModel.loginOutActionModel.observe(this, new Observer() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean actionResultBean) { AuthenticationHelper.removeToken(); diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 49d0ac9..0a39218 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -26,7 +26,7 @@ */ public static DataBaseManager getInstance() { if (instance == null) { - synchronized (BaseApplication.class) { + synchronized (DataBaseManager.class) { if (instance == null) { instance = new DataBaseManager(); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index dfab835..5c31b0a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -32,7 +32,7 @@ /** * 登录并获取Token */ - public static Observable getTokenData(String username, String key) { + public static Observable login(String username, String key) { return api.login(username, key); } diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index c29f085..a13cbc2 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -145,7 +145,7 @@ userViewModel.changePassword(oldPassKey, newPassKey); } }); - userViewModel.changePwdResultModel.observe(this, new Observer() { + userViewModel.changePwdResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 43c8f28..45a3c30 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; @@ -29,8 +28,9 @@ public class LoginActivity extends AndroidxBaseActivity { private final Context context = LoginActivity.this; + private String account; + private String userPassword; private AuthenticateViewModel authenticateViewModel; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; @Override @@ -41,7 +41,16 @@ @Override protected void observeRequestState() { - + userViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); } @Override @@ -50,19 +59,6 @@ viewBinding.userPasswordView.setText((String) SaveKeyValues.getValue(LocaleConstant.PASSWORD, "")); authenticateViewModel = new ViewModelProvider(this).get(AuthenticateViewModel.class); - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); - userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - authenticateViewModel.obtainPublicKey(); - } - }); - authenticateViewModel.keyModel.observe(this, new Observer() { @Override public void onChanged(PublicKeyBean result) { @@ -71,28 +67,14 @@ AuthenticationHelper.savePublicKey(keyString); PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString); - String account = viewBinding.userNameView.getText().toString().trim(); - String userPassword = viewBinding.userPasswordView.getText().toString().trim(); - if (account.isEmpty()) { - StringHub.show(context, "用户名不能为空"); - return; - } - if (userPassword.isEmpty()) { - StringHub.show(context, "密码不能为空"); - return; - } - SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); - SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); - - String dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); - //登录并获取Token,POST请求 - loginViewModel.enter(account, dataByPublicKey); + String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); + userViewModel.login(account, dataByPublicKey); } } }); - loginViewModel.resultModel.observe(this, new Observer() { + userViewModel = new ViewModelProvider(this).get(UserViewModel.class); + userViewModel.loginResult.observe(this, new Observer() { @Override public void onChanged(LoginResultBean loginResultBean) { if (loginResultBean.getCode() == 200) { @@ -100,22 +82,34 @@ /** * 获取token之后保存用户信息 * */ - userViewModel.obtainUserData(); + userViewModel.getUserData(); //验证成功登录 ContextHub.navigatePageTo(context, MainActivity.class); finish(); } } }); + } - loginViewModel.loadState.observe(this, new Observer() { + @Override + protected void initEvent() { + viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); + public void onClick(View v) { + account = viewBinding.userNameView.getText().toString().trim(); + userPassword = viewBinding.userPasswordView.getText().toString().trim(); + if (account.isEmpty()) { + StringHub.show(context, "用户名不能为空"); + return; } + if (userPassword.isEmpty()) { + StringHub.show(context, "密码不能为空"); + return; + } + SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); + SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); + + authenticateViewModel.obtainPublicKey(); } }); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index cd97837..637d8bb 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -26,7 +26,6 @@ import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; @@ -43,7 +42,6 @@ private UserBean.DataBean userData; private ClipboardManager clipboardManager; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; private VersionViewModel versionViewModel; private ProgressDialog progressDialog; @@ -55,7 +53,6 @@ @Override protected void initData() { - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); userViewModel = new ViewModelProvider(this).get(UserViewModel.class); versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); @@ -82,10 +79,10 @@ @Override public void onClick(View v) { DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { @@ -170,7 +167,7 @@ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { @Override public void onConfirmClick() { - loginViewModel.out(); + userViewModel.loginOut(); } @Override @@ -180,7 +177,7 @@ }).build().show(); } }); - loginViewModel.loginOutActionModel.observe(this, new Observer() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean actionResultBean) { AuthenticationHelper.removeToken(); diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 49d0ac9..0a39218 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -26,7 +26,7 @@ */ public static DataBaseManager getInstance() { if (instance == null) { - synchronized (BaseApplication.class) { + synchronized (DataBaseManager.class) { if (instance == null) { instance = new DataBaseManager(); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index dfab835..5c31b0a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -32,7 +32,7 @@ /** * 登录并获取Token */ - public static Observable getTokenData(String username, String key) { + public static Observable login(String username, String key) { return api.login(username, key); } diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index c29f085..a13cbc2 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -145,7 +145,7 @@ userViewModel.changePassword(oldPassKey, newPassKey); } }); - userViewModel.changePwdResultModel.observe(this, new Observer() { + userViewModel.changePwdResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 43c8f28..45a3c30 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; @@ -29,8 +28,9 @@ public class LoginActivity extends AndroidxBaseActivity { private final Context context = LoginActivity.this; + private String account; + private String userPassword; private AuthenticateViewModel authenticateViewModel; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; @Override @@ -41,7 +41,16 @@ @Override protected void observeRequestState() { - + userViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); } @Override @@ -50,19 +59,6 @@ viewBinding.userPasswordView.setText((String) SaveKeyValues.getValue(LocaleConstant.PASSWORD, "")); authenticateViewModel = new ViewModelProvider(this).get(AuthenticateViewModel.class); - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); - userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - authenticateViewModel.obtainPublicKey(); - } - }); - authenticateViewModel.keyModel.observe(this, new Observer() { @Override public void onChanged(PublicKeyBean result) { @@ -71,28 +67,14 @@ AuthenticationHelper.savePublicKey(keyString); PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString); - String account = viewBinding.userNameView.getText().toString().trim(); - String userPassword = viewBinding.userPasswordView.getText().toString().trim(); - if (account.isEmpty()) { - StringHub.show(context, "用户名不能为空"); - return; - } - if (userPassword.isEmpty()) { - StringHub.show(context, "密码不能为空"); - return; - } - SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); - SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); - - String dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); - //登录并获取Token,POST请求 - loginViewModel.enter(account, dataByPublicKey); + String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); + userViewModel.login(account, dataByPublicKey); } } }); - loginViewModel.resultModel.observe(this, new Observer() { + userViewModel = new ViewModelProvider(this).get(UserViewModel.class); + userViewModel.loginResult.observe(this, new Observer() { @Override public void onChanged(LoginResultBean loginResultBean) { if (loginResultBean.getCode() == 200) { @@ -100,22 +82,34 @@ /** * 获取token之后保存用户信息 * */ - userViewModel.obtainUserData(); + userViewModel.getUserData(); //验证成功登录 ContextHub.navigatePageTo(context, MainActivity.class); finish(); } } }); + } - loginViewModel.loadState.observe(this, new Observer() { + @Override + protected void initEvent() { + viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); + public void onClick(View v) { + account = viewBinding.userNameView.getText().toString().trim(); + userPassword = viewBinding.userPasswordView.getText().toString().trim(); + if (account.isEmpty()) { + StringHub.show(context, "用户名不能为空"); + return; } + if (userPassword.isEmpty()) { + StringHub.show(context, "密码不能为空"); + return; + } + SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); + SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); + + authenticateViewModel.obtainPublicKey(); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java index 6574944..ad2c683 100644 --- a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java @@ -22,8 +22,8 @@ @Override protected void setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init(); ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); + ImmersionBar.with(this).statusBarDarkFont(true).init(); } @Override diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index cd97837..637d8bb 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -26,7 +26,6 @@ import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; @@ -43,7 +42,6 @@ private UserBean.DataBean userData; private ClipboardManager clipboardManager; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; private VersionViewModel versionViewModel; private ProgressDialog progressDialog; @@ -55,7 +53,6 @@ @Override protected void initData() { - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); userViewModel = new ViewModelProvider(this).get(UserViewModel.class); versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); @@ -82,10 +79,10 @@ @Override public void onClick(View v) { DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { @@ -170,7 +167,7 @@ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { @Override public void onConfirmClick() { - loginViewModel.out(); + userViewModel.loginOut(); } @Override @@ -180,7 +177,7 @@ }).build().show(); } }); - loginViewModel.loginOutActionModel.observe(this, new Observer() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean actionResultBean) { AuthenticationHelper.removeToken(); diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 49d0ac9..0a39218 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -26,7 +26,7 @@ */ public static DataBaseManager getInstance() { if (instance == null) { - synchronized (BaseApplication.class) { + synchronized (DataBaseManager.class) { if (instance == null) { instance = new DataBaseManager(); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index dfab835..5c31b0a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -32,7 +32,7 @@ /** * 登录并获取Token */ - public static Observable getTokenData(String username, String key) { + public static Observable login(String username, String key) { return api.login(username, key); } diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index c29f085..a13cbc2 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -145,7 +145,7 @@ userViewModel.changePassword(oldPassKey, newPassKey); } }); - userViewModel.changePwdResultModel.observe(this, new Observer() { + userViewModel.changePwdResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 43c8f28..45a3c30 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; @@ -29,8 +28,9 @@ public class LoginActivity extends AndroidxBaseActivity { private final Context context = LoginActivity.this; + private String account; + private String userPassword; private AuthenticateViewModel authenticateViewModel; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; @Override @@ -41,7 +41,16 @@ @Override protected void observeRequestState() { - + userViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); } @Override @@ -50,19 +59,6 @@ viewBinding.userPasswordView.setText((String) SaveKeyValues.getValue(LocaleConstant.PASSWORD, "")); authenticateViewModel = new ViewModelProvider(this).get(AuthenticateViewModel.class); - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); - userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - authenticateViewModel.obtainPublicKey(); - } - }); - authenticateViewModel.keyModel.observe(this, new Observer() { @Override public void onChanged(PublicKeyBean result) { @@ -71,28 +67,14 @@ AuthenticationHelper.savePublicKey(keyString); PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString); - String account = viewBinding.userNameView.getText().toString().trim(); - String userPassword = viewBinding.userPasswordView.getText().toString().trim(); - if (account.isEmpty()) { - StringHub.show(context, "用户名不能为空"); - return; - } - if (userPassword.isEmpty()) { - StringHub.show(context, "密码不能为空"); - return; - } - SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); - SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); - - String dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); - //登录并获取Token,POST请求 - loginViewModel.enter(account, dataByPublicKey); + String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); + userViewModel.login(account, dataByPublicKey); } } }); - loginViewModel.resultModel.observe(this, new Observer() { + userViewModel = new ViewModelProvider(this).get(UserViewModel.class); + userViewModel.loginResult.observe(this, new Observer() { @Override public void onChanged(LoginResultBean loginResultBean) { if (loginResultBean.getCode() == 200) { @@ -100,22 +82,34 @@ /** * 获取token之后保存用户信息 * */ - userViewModel.obtainUserData(); + userViewModel.getUserData(); //验证成功登录 ContextHub.navigatePageTo(context, MainActivity.class); finish(); } } }); + } - loginViewModel.loadState.observe(this, new Observer() { + @Override + protected void initEvent() { + viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); + public void onClick(View v) { + account = viewBinding.userNameView.getText().toString().trim(); + userPassword = viewBinding.userPasswordView.getText().toString().trim(); + if (account.isEmpty()) { + StringHub.show(context, "用户名不能为空"); + return; } + if (userPassword.isEmpty()) { + StringHub.show(context, "密码不能为空"); + return; + } + SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); + SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); + + authenticateViewModel.obtainPublicKey(); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java index 6574944..ad2c683 100644 --- a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java @@ -22,8 +22,8 @@ @Override protected void setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init(); ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); + ImmersionBar.with(this).statusBarDarkFont(true).init(); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java b/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java index d797a62..9adbd60 100644 --- a/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java +++ b/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java @@ -25,7 +25,7 @@ @Override public void onFinish() { - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }; @@ -42,12 +42,7 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - countDownTimer.start(); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean userBean) { if (userBean.getCode() == 200) { @@ -59,4 +54,9 @@ } }); } + + @Override + protected void initEvent() { + countDownTimer.start(); + } } diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index cd97837..637d8bb 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -26,7 +26,6 @@ import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; @@ -43,7 +42,6 @@ private UserBean.DataBean userData; private ClipboardManager clipboardManager; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; private VersionViewModel versionViewModel; private ProgressDialog progressDialog; @@ -55,7 +53,6 @@ @Override protected void initData() { - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); userViewModel = new ViewModelProvider(this).get(UserViewModel.class); versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); @@ -82,10 +79,10 @@ @Override public void onClick(View v) { DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { @@ -170,7 +167,7 @@ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { @Override public void onConfirmClick() { - loginViewModel.out(); + userViewModel.loginOut(); } @Override @@ -180,7 +177,7 @@ }).build().show(); } }); - loginViewModel.loginOutActionModel.observe(this, new Observer() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean actionResultBean) { AuthenticationHelper.removeToken(); diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 49d0ac9..0a39218 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -26,7 +26,7 @@ */ public static DataBaseManager getInstance() { if (instance == null) { - synchronized (BaseApplication.class) { + synchronized (DataBaseManager.class) { if (instance == null) { instance = new DataBaseManager(); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index dfab835..5c31b0a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -32,7 +32,7 @@ /** * 登录并获取Token */ - public static Observable getTokenData(String username, String key) { + public static Observable login(String username, String key) { return api.login(username, key); } diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index c29f085..a13cbc2 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -145,7 +145,7 @@ userViewModel.changePassword(oldPassKey, newPassKey); } }); - userViewModel.changePwdResultModel.observe(this, new Observer() { + userViewModel.changePwdResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 43c8f28..45a3c30 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; @@ -29,8 +28,9 @@ public class LoginActivity extends AndroidxBaseActivity { private final Context context = LoginActivity.this; + private String account; + private String userPassword; private AuthenticateViewModel authenticateViewModel; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; @Override @@ -41,7 +41,16 @@ @Override protected void observeRequestState() { - + userViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); } @Override @@ -50,19 +59,6 @@ viewBinding.userPasswordView.setText((String) SaveKeyValues.getValue(LocaleConstant.PASSWORD, "")); authenticateViewModel = new ViewModelProvider(this).get(AuthenticateViewModel.class); - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); - userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - authenticateViewModel.obtainPublicKey(); - } - }); - authenticateViewModel.keyModel.observe(this, new Observer() { @Override public void onChanged(PublicKeyBean result) { @@ -71,28 +67,14 @@ AuthenticationHelper.savePublicKey(keyString); PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString); - String account = viewBinding.userNameView.getText().toString().trim(); - String userPassword = viewBinding.userPasswordView.getText().toString().trim(); - if (account.isEmpty()) { - StringHub.show(context, "用户名不能为空"); - return; - } - if (userPassword.isEmpty()) { - StringHub.show(context, "密码不能为空"); - return; - } - SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); - SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); - - String dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); - //登录并获取Token,POST请求 - loginViewModel.enter(account, dataByPublicKey); + String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); + userViewModel.login(account, dataByPublicKey); } } }); - loginViewModel.resultModel.observe(this, new Observer() { + userViewModel = new ViewModelProvider(this).get(UserViewModel.class); + userViewModel.loginResult.observe(this, new Observer() { @Override public void onChanged(LoginResultBean loginResultBean) { if (loginResultBean.getCode() == 200) { @@ -100,22 +82,34 @@ /** * 获取token之后保存用户信息 * */ - userViewModel.obtainUserData(); + userViewModel.getUserData(); //验证成功登录 ContextHub.navigatePageTo(context, MainActivity.class); finish(); } } }); + } - loginViewModel.loadState.observe(this, new Observer() { + @Override + protected void initEvent() { + viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); + public void onClick(View v) { + account = viewBinding.userNameView.getText().toString().trim(); + userPassword = viewBinding.userPasswordView.getText().toString().trim(); + if (account.isEmpty()) { + StringHub.show(context, "用户名不能为空"); + return; } + if (userPassword.isEmpty()) { + StringHub.show(context, "密码不能为空"); + return; + } + SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); + SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); + + authenticateViewModel.obtainPublicKey(); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java index 6574944..ad2c683 100644 --- a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java @@ -22,8 +22,8 @@ @Override protected void setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init(); ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); + ImmersionBar.with(this).statusBarDarkFont(true).init(); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java b/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java index d797a62..9adbd60 100644 --- a/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java +++ b/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java @@ -25,7 +25,7 @@ @Override public void onFinish() { - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }; @@ -42,12 +42,7 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - countDownTimer.start(); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean userBean) { if (userBean.getCode() == 200) { @@ -59,4 +54,9 @@ } }); } + + @Override + protected void initEvent() { + countDownTimer.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java b/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java deleted file mode 100644 index 917993f..0000000 --- a/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.casic.dcms.vm; - -import androidx.lifecycle.MutableLiveData; - -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.LoginResultBean; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; -import com.pengxh.androidx.lite.callback.OnObserverCallback; -import com.pengxh.androidx.lite.vm.BaseViewModel; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.vm.ObserverSubscriber; - -import java.io.IOException; - -import okhttp3.ResponseBody; -import rx.Observable; - -public class LoginViewModel extends BaseViewModel { - private final Gson gson = new Gson(); - public MutableLiveData resultModel = new MutableLiveData<>(); - public MutableLiveData loginOutActionModel = new MutableLiveData<>(); - - public void enter(String username, String key) { - loadState.setValue(LoadState.Loading); - Observable loginObservable = RetrofitServiceManager.getTokenData(username, key); - ObserverSubscriber.addSubscribe(loginObservable, new OnObserverCallback() { - @Override - public void onCompleted() { - loadState.setValue(LoadState.Success); - } - - @Override - public void onError(Throwable e) { - loadState.setValue(LoadState.Fail); - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String response = responseBody.string(); - int responseCode = StringHelper.separateResponseCode(response); - if (responseCode == 200) { - LoginResultBean loginResultBean = gson.fromJson(response, new TypeToken() { - }.getType()); - resultModel.setValue(loginResultBean); - } else { - loadState.setValue(LoadState.Fail); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - } - - public void out() { - Observable observable = RetrofitServiceManager.loginOut(); - ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String response = responseBody.string(); - int responseCode = StringHelper.separateResponseCode(response); - if (responseCode == 200) { - ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { - }.getType()); - loginOutActionModel.setValue(resultBean); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - } -} diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index cd97837..637d8bb 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -26,7 +26,6 @@ import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; @@ -43,7 +42,6 @@ private UserBean.DataBean userData; private ClipboardManager clipboardManager; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; private VersionViewModel versionViewModel; private ProgressDialog progressDialog; @@ -55,7 +53,6 @@ @Override protected void initData() { - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); userViewModel = new ViewModelProvider(this).get(UserViewModel.class); versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); @@ -82,10 +79,10 @@ @Override public void onClick(View v) { DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { @@ -170,7 +167,7 @@ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { @Override public void onConfirmClick() { - loginViewModel.out(); + userViewModel.loginOut(); } @Override @@ -180,7 +177,7 @@ }).build().show(); } }); - loginViewModel.loginOutActionModel.observe(this, new Observer() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean actionResultBean) { AuthenticationHelper.removeToken(); diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 49d0ac9..0a39218 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -26,7 +26,7 @@ */ public static DataBaseManager getInstance() { if (instance == null) { - synchronized (BaseApplication.class) { + synchronized (DataBaseManager.class) { if (instance == null) { instance = new DataBaseManager(); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index dfab835..5c31b0a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -32,7 +32,7 @@ /** * 登录并获取Token */ - public static Observable getTokenData(String username, String key) { + public static Observable login(String username, String key) { return api.login(username, key); } diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index c29f085..a13cbc2 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -145,7 +145,7 @@ userViewModel.changePassword(oldPassKey, newPassKey); } }); - userViewModel.changePwdResultModel.observe(this, new Observer() { + userViewModel.changePwdResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 43c8f28..45a3c30 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; @@ -29,8 +28,9 @@ public class LoginActivity extends AndroidxBaseActivity { private final Context context = LoginActivity.this; + private String account; + private String userPassword; private AuthenticateViewModel authenticateViewModel; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; @Override @@ -41,7 +41,16 @@ @Override protected void observeRequestState() { - + userViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); } @Override @@ -50,19 +59,6 @@ viewBinding.userPasswordView.setText((String) SaveKeyValues.getValue(LocaleConstant.PASSWORD, "")); authenticateViewModel = new ViewModelProvider(this).get(AuthenticateViewModel.class); - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); - userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - authenticateViewModel.obtainPublicKey(); - } - }); - authenticateViewModel.keyModel.observe(this, new Observer() { @Override public void onChanged(PublicKeyBean result) { @@ -71,28 +67,14 @@ AuthenticationHelper.savePublicKey(keyString); PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString); - String account = viewBinding.userNameView.getText().toString().trim(); - String userPassword = viewBinding.userPasswordView.getText().toString().trim(); - if (account.isEmpty()) { - StringHub.show(context, "用户名不能为空"); - return; - } - if (userPassword.isEmpty()) { - StringHub.show(context, "密码不能为空"); - return; - } - SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); - SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); - - String dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); - //登录并获取Token,POST请求 - loginViewModel.enter(account, dataByPublicKey); + String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); + userViewModel.login(account, dataByPublicKey); } } }); - loginViewModel.resultModel.observe(this, new Observer() { + userViewModel = new ViewModelProvider(this).get(UserViewModel.class); + userViewModel.loginResult.observe(this, new Observer() { @Override public void onChanged(LoginResultBean loginResultBean) { if (loginResultBean.getCode() == 200) { @@ -100,22 +82,34 @@ /** * 获取token之后保存用户信息 * */ - userViewModel.obtainUserData(); + userViewModel.getUserData(); //验证成功登录 ContextHub.navigatePageTo(context, MainActivity.class); finish(); } } }); + } - loginViewModel.loadState.observe(this, new Observer() { + @Override + protected void initEvent() { + viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); + public void onClick(View v) { + account = viewBinding.userNameView.getText().toString().trim(); + userPassword = viewBinding.userPasswordView.getText().toString().trim(); + if (account.isEmpty()) { + StringHub.show(context, "用户名不能为空"); + return; } + if (userPassword.isEmpty()) { + StringHub.show(context, "密码不能为空"); + return; + } + SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); + SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); + + authenticateViewModel.obtainPublicKey(); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java index 6574944..ad2c683 100644 --- a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java @@ -22,8 +22,8 @@ @Override protected void setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init(); ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); + ImmersionBar.with(this).statusBarDarkFont(true).init(); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java b/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java index d797a62..9adbd60 100644 --- a/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java +++ b/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java @@ -25,7 +25,7 @@ @Override public void onFinish() { - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }; @@ -42,12 +42,7 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - countDownTimer.start(); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean userBean) { if (userBean.getCode() == 200) { @@ -59,4 +54,9 @@ } }); } + + @Override + protected void initEvent() { + countDownTimer.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java b/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java deleted file mode 100644 index 917993f..0000000 --- a/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.casic.dcms.vm; - -import androidx.lifecycle.MutableLiveData; - -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.LoginResultBean; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; -import com.pengxh.androidx.lite.callback.OnObserverCallback; -import com.pengxh.androidx.lite.vm.BaseViewModel; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.vm.ObserverSubscriber; - -import java.io.IOException; - -import okhttp3.ResponseBody; -import rx.Observable; - -public class LoginViewModel extends BaseViewModel { - private final Gson gson = new Gson(); - public MutableLiveData resultModel = new MutableLiveData<>(); - public MutableLiveData loginOutActionModel = new MutableLiveData<>(); - - public void enter(String username, String key) { - loadState.setValue(LoadState.Loading); - Observable loginObservable = RetrofitServiceManager.getTokenData(username, key); - ObserverSubscriber.addSubscribe(loginObservable, new OnObserverCallback() { - @Override - public void onCompleted() { - loadState.setValue(LoadState.Success); - } - - @Override - public void onError(Throwable e) { - loadState.setValue(LoadState.Fail); - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String response = responseBody.string(); - int responseCode = StringHelper.separateResponseCode(response); - if (responseCode == 200) { - LoginResultBean loginResultBean = gson.fromJson(response, new TypeToken() { - }.getType()); - resultModel.setValue(loginResultBean); - } else { - loadState.setValue(LoadState.Fail); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - } - - public void out() { - Observable observable = RetrofitServiceManager.loginOut(); - ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String response = responseBody.string(); - int responseCode = StringHelper.separateResponseCode(response); - if (responseCode == 200) { - ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { - }.getType()); - loginOutActionModel.setValue(resultBean); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java index 9907c17..c8ccc99 100644 --- a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java @@ -3,6 +3,7 @@ import androidx.lifecycle.MutableLiveData; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; @@ -22,8 +23,110 @@ public class UserViewModel extends BaseViewModel { private final Gson gson = new Gson(); - public MutableLiveData changePwdResultModel = new MutableLiveData<>(); - public MutableLiveData userDataModel = new MutableLiveData<>(); + public MutableLiveData userDataResult = new MutableLiveData<>(); + public MutableLiveData loginResult = new MutableLiveData<>(); + public MutableLiveData loginOutResult = new MutableLiveData<>(); + public MutableLiveData changePwdResult = new MutableLiveData<>(); + + public void getUserData() { + Observable observable = RetrofitServiceManager.getUserData(); + ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String response = responseBody.string(); + int responseCode = StringHelper.separateResponseCode(response); + if (responseCode == 200) { + UserBean userBean = gson.fromJson(response, new TypeToken() { + }.getType()); + userDataResult.setValue(userBean); + SaveKeyValues.putValue(LocaleConstant.USER_DETAIL_MODEL, gson.toJson(userBean.getData())); + } else { + UserBean errorModel = new UserBean(); + errorModel.setCode(responseCode); + userDataResult.setValue(errorModel); + //如果此次获取不到用户信息,那么就清空之前的用户缓存,然后让用户重新登录 + SaveKeyValues.removeKey(LocaleConstant.USER_DETAIL_MODEL); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } + + public void login(String username, String key) { + loadState.setValue(LoadState.Loading); + Observable loginObservable = RetrofitServiceManager.login(username, key); + ObserverSubscriber.addSubscribe(loginObservable, new OnObserverCallback() { + @Override + public void onCompleted() { + loadState.setValue(LoadState.Success); + } + + @Override + public void onError(Throwable e) { + loadState.setValue(LoadState.Fail); + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String response = responseBody.string(); + int responseCode = StringHelper.separateResponseCode(response); + if (responseCode == 200) { + LoginResultBean loginResultBean = gson.fromJson(response, new TypeToken() { + }.getType()); + loginResult.setValue(loginResultBean); + } else { + loadState.setValue(LoadState.Fail); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } + + public void loginOut() { + Observable observable = RetrofitServiceManager.loginOut(); + ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String response = responseBody.string(); + int responseCode = StringHelper.separateResponseCode(response); + if (responseCode == 200) { + ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { + }.getType()); + loginOutResult.setValue(resultBean); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } public void changePassword(String oldPwd, String newPwd) { loadState.setValue(LoadState.Loading); @@ -47,7 +150,7 @@ if (responseCode == 200) { ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); - changePwdResultModel.setValue(actionResultBean); + changePwdResult.setValue(actionResultBean); } else { loadState.setValue(LoadState.Fail); } @@ -57,41 +160,4 @@ } }); } - - public void obtainUserData() { - Observable observable = RetrofitServiceManager.getUserData(); - ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String response = responseBody.string(); - int responseCode = StringHelper.separateResponseCode(response); - if (responseCode == 200) { - UserBean userBean = gson.fromJson(response, new TypeToken() { - }.getType()); - userDataModel.setValue(userBean); - SaveKeyValues.putValue(LocaleConstant.USER_DETAIL_MODEL, gson.toJson(userBean.getData())); - } else { - UserBean errorModel = new UserBean(); - errorModel.setCode(responseCode); - userDataModel.setValue(errorModel); - //如果此次获取不到用户信息,那么就清空之前的用户缓存,然后让用户重新登录 - SaveKeyValues.removeKey(LocaleConstant.USER_DETAIL_MODEL); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - } } diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index cd97837..637d8bb 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -26,7 +26,6 @@ import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; @@ -43,7 +42,6 @@ private UserBean.DataBean userData; private ClipboardManager clipboardManager; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; private VersionViewModel versionViewModel; private ProgressDialog progressDialog; @@ -55,7 +53,6 @@ @Override protected void initData() { - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); userViewModel = new ViewModelProvider(this).get(UserViewModel.class); versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); @@ -82,10 +79,10 @@ @Override public void onClick(View v) { DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { @@ -170,7 +167,7 @@ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { @Override public void onConfirmClick() { - loginViewModel.out(); + userViewModel.loginOut(); } @Override @@ -180,7 +177,7 @@ }).build().show(); } }); - loginViewModel.loginOutActionModel.observe(this, new Observer() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean actionResultBean) { AuthenticationHelper.removeToken(); diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 49d0ac9..0a39218 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -26,7 +26,7 @@ */ public static DataBaseManager getInstance() { if (instance == null) { - synchronized (BaseApplication.class) { + synchronized (DataBaseManager.class) { if (instance == null) { instance = new DataBaseManager(); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index dfab835..5c31b0a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -32,7 +32,7 @@ /** * 登录并获取Token */ - public static Observable getTokenData(String username, String key) { + public static Observable login(String username, String key) { return api.login(username, key); } diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index c29f085..a13cbc2 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -145,7 +145,7 @@ userViewModel.changePassword(oldPassKey, newPassKey); } }); - userViewModel.changePwdResultModel.observe(this, new Observer() { + userViewModel.changePwdResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 43c8f28..45a3c30 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; @@ -29,8 +28,9 @@ public class LoginActivity extends AndroidxBaseActivity { private final Context context = LoginActivity.this; + private String account; + private String userPassword; private AuthenticateViewModel authenticateViewModel; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; @Override @@ -41,7 +41,16 @@ @Override protected void observeRequestState() { - + userViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); } @Override @@ -50,19 +59,6 @@ viewBinding.userPasswordView.setText((String) SaveKeyValues.getValue(LocaleConstant.PASSWORD, "")); authenticateViewModel = new ViewModelProvider(this).get(AuthenticateViewModel.class); - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); - userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - authenticateViewModel.obtainPublicKey(); - } - }); - authenticateViewModel.keyModel.observe(this, new Observer() { @Override public void onChanged(PublicKeyBean result) { @@ -71,28 +67,14 @@ AuthenticationHelper.savePublicKey(keyString); PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString); - String account = viewBinding.userNameView.getText().toString().trim(); - String userPassword = viewBinding.userPasswordView.getText().toString().trim(); - if (account.isEmpty()) { - StringHub.show(context, "用户名不能为空"); - return; - } - if (userPassword.isEmpty()) { - StringHub.show(context, "密码不能为空"); - return; - } - SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); - SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); - - String dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); - //登录并获取Token,POST请求 - loginViewModel.enter(account, dataByPublicKey); + String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); + userViewModel.login(account, dataByPublicKey); } } }); - loginViewModel.resultModel.observe(this, new Observer() { + userViewModel = new ViewModelProvider(this).get(UserViewModel.class); + userViewModel.loginResult.observe(this, new Observer() { @Override public void onChanged(LoginResultBean loginResultBean) { if (loginResultBean.getCode() == 200) { @@ -100,22 +82,34 @@ /** * 获取token之后保存用户信息 * */ - userViewModel.obtainUserData(); + userViewModel.getUserData(); //验证成功登录 ContextHub.navigatePageTo(context, MainActivity.class); finish(); } } }); + } - loginViewModel.loadState.observe(this, new Observer() { + @Override + protected void initEvent() { + viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); + public void onClick(View v) { + account = viewBinding.userNameView.getText().toString().trim(); + userPassword = viewBinding.userPasswordView.getText().toString().trim(); + if (account.isEmpty()) { + StringHub.show(context, "用户名不能为空"); + return; } + if (userPassword.isEmpty()) { + StringHub.show(context, "密码不能为空"); + return; + } + SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); + SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); + + authenticateViewModel.obtainPublicKey(); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java index 6574944..ad2c683 100644 --- a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java @@ -22,8 +22,8 @@ @Override protected void setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init(); ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); + ImmersionBar.with(this).statusBarDarkFont(true).init(); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java b/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java index d797a62..9adbd60 100644 --- a/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java +++ b/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java @@ -25,7 +25,7 @@ @Override public void onFinish() { - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }; @@ -42,12 +42,7 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - countDownTimer.start(); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean userBean) { if (userBean.getCode() == 200) { @@ -59,4 +54,9 @@ } }); } + + @Override + protected void initEvent() { + countDownTimer.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java b/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java deleted file mode 100644 index 917993f..0000000 --- a/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.casic.dcms.vm; - -import androidx.lifecycle.MutableLiveData; - -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.LoginResultBean; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; -import com.pengxh.androidx.lite.callback.OnObserverCallback; -import com.pengxh.androidx.lite.vm.BaseViewModel; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.vm.ObserverSubscriber; - -import java.io.IOException; - -import okhttp3.ResponseBody; -import rx.Observable; - -public class LoginViewModel extends BaseViewModel { - private final Gson gson = new Gson(); - public MutableLiveData resultModel = new MutableLiveData<>(); - public MutableLiveData loginOutActionModel = new MutableLiveData<>(); - - public void enter(String username, String key) { - loadState.setValue(LoadState.Loading); - Observable loginObservable = RetrofitServiceManager.getTokenData(username, key); - ObserverSubscriber.addSubscribe(loginObservable, new OnObserverCallback() { - @Override - public void onCompleted() { - loadState.setValue(LoadState.Success); - } - - @Override - public void onError(Throwable e) { - loadState.setValue(LoadState.Fail); - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String response = responseBody.string(); - int responseCode = StringHelper.separateResponseCode(response); - if (responseCode == 200) { - LoginResultBean loginResultBean = gson.fromJson(response, new TypeToken() { - }.getType()); - resultModel.setValue(loginResultBean); - } else { - loadState.setValue(LoadState.Fail); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - } - - public void out() { - Observable observable = RetrofitServiceManager.loginOut(); - ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String response = responseBody.string(); - int responseCode = StringHelper.separateResponseCode(response); - if (responseCode == 200) { - ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { - }.getType()); - loginOutActionModel.setValue(resultBean); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java index 9907c17..c8ccc99 100644 --- a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java @@ -3,6 +3,7 @@ import androidx.lifecycle.MutableLiveData; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; @@ -22,8 +23,110 @@ public class UserViewModel extends BaseViewModel { private final Gson gson = new Gson(); - public MutableLiveData changePwdResultModel = new MutableLiveData<>(); - public MutableLiveData userDataModel = new MutableLiveData<>(); + public MutableLiveData userDataResult = new MutableLiveData<>(); + public MutableLiveData loginResult = new MutableLiveData<>(); + public MutableLiveData loginOutResult = new MutableLiveData<>(); + public MutableLiveData changePwdResult = new MutableLiveData<>(); + + public void getUserData() { + Observable observable = RetrofitServiceManager.getUserData(); + ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String response = responseBody.string(); + int responseCode = StringHelper.separateResponseCode(response); + if (responseCode == 200) { + UserBean userBean = gson.fromJson(response, new TypeToken() { + }.getType()); + userDataResult.setValue(userBean); + SaveKeyValues.putValue(LocaleConstant.USER_DETAIL_MODEL, gson.toJson(userBean.getData())); + } else { + UserBean errorModel = new UserBean(); + errorModel.setCode(responseCode); + userDataResult.setValue(errorModel); + //如果此次获取不到用户信息,那么就清空之前的用户缓存,然后让用户重新登录 + SaveKeyValues.removeKey(LocaleConstant.USER_DETAIL_MODEL); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } + + public void login(String username, String key) { + loadState.setValue(LoadState.Loading); + Observable loginObservable = RetrofitServiceManager.login(username, key); + ObserverSubscriber.addSubscribe(loginObservable, new OnObserverCallback() { + @Override + public void onCompleted() { + loadState.setValue(LoadState.Success); + } + + @Override + public void onError(Throwable e) { + loadState.setValue(LoadState.Fail); + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String response = responseBody.string(); + int responseCode = StringHelper.separateResponseCode(response); + if (responseCode == 200) { + LoginResultBean loginResultBean = gson.fromJson(response, new TypeToken() { + }.getType()); + loginResult.setValue(loginResultBean); + } else { + loadState.setValue(LoadState.Fail); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } + + public void loginOut() { + Observable observable = RetrofitServiceManager.loginOut(); + ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String response = responseBody.string(); + int responseCode = StringHelper.separateResponseCode(response); + if (responseCode == 200) { + ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { + }.getType()); + loginOutResult.setValue(resultBean); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } public void changePassword(String oldPwd, String newPwd) { loadState.setValue(LoadState.Loading); @@ -47,7 +150,7 @@ if (responseCode == 200) { ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); - changePwdResultModel.setValue(actionResultBean); + changePwdResult.setValue(actionResultBean); } else { loadState.setValue(LoadState.Fail); } @@ -57,41 +160,4 @@ } }); } - - public void obtainUserData() { - Observable observable = RetrofitServiceManager.getUserData(); - ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String response = responseBody.string(); - int responseCode = StringHelper.separateResponseCode(response); - if (responseCode == 200) { - UserBean userBean = gson.fromJson(response, new TypeToken() { - }.getType()); - userDataModel.setValue(userBean); - SaveKeyValues.putValue(LocaleConstant.USER_DETAIL_MODEL, gson.toJson(userBean.getData())); - } else { - UserBean errorModel = new UserBean(); - errorModel.setCode(responseCode); - userDataModel.setValue(errorModel); - //如果此次获取不到用户信息,那么就清空之前的用户缓存,然后让用户重新登录 - SaveKeyValues.removeKey(LocaleConstant.USER_DETAIL_MODEL); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - } } diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 2b98b58..ebd5a92 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -90,7 +90,7 @@ android:layout_height="wrap_content" android:text="读写应用所需要的相关数据,用于设置数据缓存" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> @@ -123,7 +123,7 @@ android:layout_height="wrap_content" android:text="拍摄应用内业务相关的图片,用于上传路标图片" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> @@ -156,7 +156,7 @@ android:layout_height="wrap_content" android:text="获取用户当前所在位置,用于用户查看井位置并导航" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> @@ -189,7 +189,7 @@ android:layout_height="wrap_content" android:text="读取手机当前的状态,用于定位、导航、记录关键日志等" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> @@ -222,7 +222,7 @@ android:layout_height="wrap_content" android:text="录制案卷相关业务过程中需要记录的音频文件" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> @@ -255,7 +255,7 @@ android:layout_height="wrap_content" android:text="拨打相关业务工作人员号码" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> diff --git a/.idea/misc.xml b/.idea/misc.xml index 08cbfc9..12058ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -56,6 +56,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index cd97837..637d8bb 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -26,7 +26,6 @@ import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; @@ -43,7 +42,6 @@ private UserBean.DataBean userData; private ClipboardManager clipboardManager; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; private VersionViewModel versionViewModel; private ProgressDialog progressDialog; @@ -55,7 +53,6 @@ @Override protected void initData() { - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); userViewModel = new ViewModelProvider(this).get(UserViewModel.class); versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); @@ -82,10 +79,10 @@ @Override public void onClick(View v) { DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { @@ -170,7 +167,7 @@ .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { @Override public void onConfirmClick() { - loginViewModel.out(); + userViewModel.loginOut(); } @Override @@ -180,7 +177,7 @@ }).build().show(); } }); - loginViewModel.loginOutActionModel.observe(this, new Observer() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean actionResultBean) { AuthenticationHelper.removeToken(); diff --git a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java index 49d0ac9..0a39218 100644 --- a/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java +++ b/app/src/main/java/com/casic/dcms/utils/DataBaseManager.java @@ -26,7 +26,7 @@ */ public static DataBaseManager getInstance() { if (instance == null) { - synchronized (BaseApplication.class) { + synchronized (DataBaseManager.class) { if (instance == null) { instance = new DataBaseManager(); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index dfab835..5c31b0a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -32,7 +32,7 @@ /** * 登录并获取Token */ - public static Observable getTokenData(String username, String key) { + public static Observable login(String username, String key) { return api.login(username, key); } diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index c29f085..a13cbc2 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -145,7 +145,7 @@ userViewModel.changePassword(oldPassKey, newPassKey); } }); - userViewModel.changePwdResultModel.observe(this, new Observer() { + userViewModel.changePwdResult.observe(this, new Observer() { @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 43c8f28..45a3c30 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; -import com.casic.dcms.vm.LoginViewModel; import com.casic.dcms.vm.UserViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; @@ -29,8 +28,9 @@ public class LoginActivity extends AndroidxBaseActivity { private final Context context = LoginActivity.this; + private String account; + private String userPassword; private AuthenticateViewModel authenticateViewModel; - private LoginViewModel loginViewModel; private UserViewModel userViewModel; @Override @@ -41,7 +41,16 @@ @Override protected void observeRequestState() { - + userViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); } @Override @@ -50,19 +59,6 @@ viewBinding.userPasswordView.setText((String) SaveKeyValues.getValue(LocaleConstant.PASSWORD, "")); authenticateViewModel = new ViewModelProvider(this).get(AuthenticateViewModel.class); - loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class); - userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - authenticateViewModel.obtainPublicKey(); - } - }); - authenticateViewModel.keyModel.observe(this, new Observer() { @Override public void onChanged(PublicKeyBean result) { @@ -71,28 +67,14 @@ AuthenticationHelper.savePublicKey(keyString); PublicKey publicKey = RSAUtils.keyStrToPublicKey(keyString); - String account = viewBinding.userNameView.getText().toString().trim(); - String userPassword = viewBinding.userPasswordView.getText().toString().trim(); - if (account.isEmpty()) { - StringHub.show(context, "用户名不能为空"); - return; - } - if (userPassword.isEmpty()) { - StringHub.show(context, "密码不能为空"); - return; - } - SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); - SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); - - String dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); - //登录并获取Token,POST请求 - loginViewModel.enter(account, dataByPublicKey); + String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(StandardCharsets.UTF_8), publicKey); + userViewModel.login(account, dataByPublicKey); } } }); - loginViewModel.resultModel.observe(this, new Observer() { + userViewModel = new ViewModelProvider(this).get(UserViewModel.class); + userViewModel.loginResult.observe(this, new Observer() { @Override public void onChanged(LoginResultBean loginResultBean) { if (loginResultBean.getCode() == 200) { @@ -100,22 +82,34 @@ /** * 获取token之后保存用户信息 * */ - userViewModel.obtainUserData(); + userViewModel.getUserData(); //验证成功登录 ContextHub.navigatePageTo(context, MainActivity.class); finish(); } } }); + } - loginViewModel.loadState.observe(this, new Observer() { + @Override + protected void initEvent() { + viewBinding.loginButton.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); + public void onClick(View v) { + account = viewBinding.userNameView.getText().toString().trim(); + userPassword = viewBinding.userPasswordView.getText().toString().trim(); + if (account.isEmpty()) { + StringHub.show(context, "用户名不能为空"); + return; } + if (userPassword.isEmpty()) { + StringHub.show(context, "密码不能为空"); + return; + } + SaveKeyValues.putValue(LocaleConstant.ACCOUNT, account); + SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword); + + authenticateViewModel.obtainPublicKey(); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java index 6574944..ad2c683 100644 --- a/app/src/main/java/com/casic/dcms/view/PermissionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/PermissionActivity.java @@ -22,8 +22,8 @@ @Override protected void setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(true).init(); ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); + ImmersionBar.with(this).statusBarDarkFont(true).init(); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java b/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java index d797a62..9adbd60 100644 --- a/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java +++ b/app/src/main/java/com/casic/dcms/view/SplashScreenActivity.java @@ -25,7 +25,7 @@ @Override public void onFinish() { - userViewModel.obtainUserData(); + userViewModel.getUserData(); } }; @@ -42,12 +42,7 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - } - - @Override - protected void initEvent() { - countDownTimer.start(); - userViewModel.userDataModel.observe(this, new Observer() { + userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean userBean) { if (userBean.getCode() == 200) { @@ -59,4 +54,9 @@ } }); } + + @Override + protected void initEvent() { + countDownTimer.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java b/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java deleted file mode 100644 index 917993f..0000000 --- a/app/src/main/java/com/casic/dcms/vm/LoginViewModel.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.casic.dcms.vm; - -import androidx.lifecycle.MutableLiveData; - -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.LoginResultBean; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; -import com.pengxh.androidx.lite.callback.OnObserverCallback; -import com.pengxh.androidx.lite.vm.BaseViewModel; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.vm.ObserverSubscriber; - -import java.io.IOException; - -import okhttp3.ResponseBody; -import rx.Observable; - -public class LoginViewModel extends BaseViewModel { - private final Gson gson = new Gson(); - public MutableLiveData resultModel = new MutableLiveData<>(); - public MutableLiveData loginOutActionModel = new MutableLiveData<>(); - - public void enter(String username, String key) { - loadState.setValue(LoadState.Loading); - Observable loginObservable = RetrofitServiceManager.getTokenData(username, key); - ObserverSubscriber.addSubscribe(loginObservable, new OnObserverCallback() { - @Override - public void onCompleted() { - loadState.setValue(LoadState.Success); - } - - @Override - public void onError(Throwable e) { - loadState.setValue(LoadState.Fail); - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String response = responseBody.string(); - int responseCode = StringHelper.separateResponseCode(response); - if (responseCode == 200) { - LoginResultBean loginResultBean = gson.fromJson(response, new TypeToken() { - }.getType()); - resultModel.setValue(loginResultBean); - } else { - loadState.setValue(LoadState.Fail); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - } - - public void out() { - Observable observable = RetrofitServiceManager.loginOut(); - ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String response = responseBody.string(); - int responseCode = StringHelper.separateResponseCode(response); - if (responseCode == 200) { - ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { - }.getType()); - loginOutActionModel.setValue(resultBean); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java index 9907c17..c8ccc99 100644 --- a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java @@ -3,6 +3,7 @@ import androidx.lifecycle.MutableLiveData; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; @@ -22,8 +23,110 @@ public class UserViewModel extends BaseViewModel { private final Gson gson = new Gson(); - public MutableLiveData changePwdResultModel = new MutableLiveData<>(); - public MutableLiveData userDataModel = new MutableLiveData<>(); + public MutableLiveData userDataResult = new MutableLiveData<>(); + public MutableLiveData loginResult = new MutableLiveData<>(); + public MutableLiveData loginOutResult = new MutableLiveData<>(); + public MutableLiveData changePwdResult = new MutableLiveData<>(); + + public void getUserData() { + Observable observable = RetrofitServiceManager.getUserData(); + ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String response = responseBody.string(); + int responseCode = StringHelper.separateResponseCode(response); + if (responseCode == 200) { + UserBean userBean = gson.fromJson(response, new TypeToken() { + }.getType()); + userDataResult.setValue(userBean); + SaveKeyValues.putValue(LocaleConstant.USER_DETAIL_MODEL, gson.toJson(userBean.getData())); + } else { + UserBean errorModel = new UserBean(); + errorModel.setCode(responseCode); + userDataResult.setValue(errorModel); + //如果此次获取不到用户信息,那么就清空之前的用户缓存,然后让用户重新登录 + SaveKeyValues.removeKey(LocaleConstant.USER_DETAIL_MODEL); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } + + public void login(String username, String key) { + loadState.setValue(LoadState.Loading); + Observable loginObservable = RetrofitServiceManager.login(username, key); + ObserverSubscriber.addSubscribe(loginObservable, new OnObserverCallback() { + @Override + public void onCompleted() { + loadState.setValue(LoadState.Success); + } + + @Override + public void onError(Throwable e) { + loadState.setValue(LoadState.Fail); + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String response = responseBody.string(); + int responseCode = StringHelper.separateResponseCode(response); + if (responseCode == 200) { + LoginResultBean loginResultBean = gson.fromJson(response, new TypeToken() { + }.getType()); + loginResult.setValue(loginResultBean); + } else { + loadState.setValue(LoadState.Fail); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } + + public void loginOut() { + Observable observable = RetrofitServiceManager.loginOut(); + ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String response = responseBody.string(); + int responseCode = StringHelper.separateResponseCode(response); + if (responseCode == 200) { + ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { + }.getType()); + loginOutResult.setValue(resultBean); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } public void changePassword(String oldPwd, String newPwd) { loadState.setValue(LoadState.Loading); @@ -47,7 +150,7 @@ if (responseCode == 200) { ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); - changePwdResultModel.setValue(actionResultBean); + changePwdResult.setValue(actionResultBean); } else { loadState.setValue(LoadState.Fail); } @@ -57,41 +160,4 @@ } }); } - - public void obtainUserData() { - Observable observable = RetrofitServiceManager.getUserData(); - ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String response = responseBody.string(); - int responseCode = StringHelper.separateResponseCode(response); - if (responseCode == 200) { - UserBean userBean = gson.fromJson(response, new TypeToken() { - }.getType()); - userDataModel.setValue(userBean); - SaveKeyValues.putValue(LocaleConstant.USER_DETAIL_MODEL, gson.toJson(userBean.getData())); - } else { - UserBean errorModel = new UserBean(); - errorModel.setCode(responseCode); - userDataModel.setValue(errorModel); - //如果此次获取不到用户信息,那么就清空之前的用户缓存,然后让用户重新登录 - SaveKeyValues.removeKey(LocaleConstant.USER_DETAIL_MODEL); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - } } diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 2b98b58..ebd5a92 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -90,7 +90,7 @@ android:layout_height="wrap_content" android:text="读写应用所需要的相关数据,用于设置数据缓存" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> @@ -123,7 +123,7 @@ android:layout_height="wrap_content" android:text="拍摄应用内业务相关的图片,用于上传路标图片" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> @@ -156,7 +156,7 @@ android:layout_height="wrap_content" android:text="获取用户当前所在位置,用于用户查看井位置并导航" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> @@ -189,7 +189,7 @@ android:layout_height="wrap_content" android:text="读取手机当前的状态,用于定位、导航、记录关键日志等" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> @@ -222,7 +222,7 @@ android:layout_height="wrap_content" android:text="录制案卷相关业务过程中需要记录的音频文件" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> @@ -255,7 +255,7 @@ android:layout_height="wrap_content" android:text="拨打相关业务工作人员号码" android:textColor="@color/mainTextColor" - android:textSize="@dimen/sp_16" /> + android:textSize="@dimen/sp_14" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d93782a..ec72e04 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,6 @@ 智慧城管 - 中国航天科工集团 + 中国航天科工集团二院二〇三所 1.城管通程序安装完成后,在设置-省电管理-省电模式 选择"性能模式"。\n 2.点击设置-省电管理-耗电详情-受保护应用,选择“移动城管”应用为开启状态(受保护状态)。\n