From 80a1e20cc39d453b7eb0b4c4d0ce59ba4ed750c7 Mon Sep 17 00:00:00 2001 From: free will <2647778488@qq.com> Date: Thu, 5 Aug 2021 10:52:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=99=BB=E5=BD=95=E6=88=90?= =?UTF-8?q?=E5=8A=9F=E4=B9=8B=E5=90=8E=E8=87=AA=E5=8A=A8=E4=BB=8EVMS?= =?UTF-8?q?=E5=90=8C=E6=AD=A5VPN=E6=9C=8D=E5=8A=A1=E5=99=A8=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=9A=84=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/login/LoginActivity.java | 16 ++++++++++++++ .../activity/login/LoginActivityContract.java | 7 +++++++ .../activity/login/LoginActivityModel.java | 21 ++++++++++++++++++- .../login/LoginActivityPresenter.java | 16 ++++++++++++++ 4 files changed, 59 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivity.java b/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivity.java index c0b0ac7..6ce5693 100644 --- a/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivity.java +++ b/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivity.java @@ -20,6 +20,7 @@ import com.pkusz.min_vpn_client.activity.main.MainActivity; import com.pkusz.min_vpn_client.activity.register.RegisterActivity; import com.pkusz.min_vpn_client.activity.setting.SettingActivity; import com.pkusz.min_vpn_client.model.MINVpnSettingAPI; +import com.pkusz.min_vpn_client.model.OriginalRequest.OriginalGetVpnInfoRequest; import com.pkusz.min_vpn_client.model.OriginalRequest.OriginalLoginRequest; import com.pkusz.min_vpn_client.utils.AccountValidatorRegexUtil; import com.pkusz.min_vpn_client.utils.Base64Util; @@ -229,6 +230,11 @@ public class LoginActivity extends MINVpnBaseActivity btnLogin.revertAnimation(); System.out.println("正在跳转到Main"); ContextExtensionKt.jumpTo(this, MainActivity.class); + // 尝试与VMS同步VPN信息 + OriginalGetVpnInfoRequest originalGetVpnInfoRequest= + new OriginalGetVpnInfoRequest(rawUsername); + mPresenter.syncVpnServersInfo(originalGetVpnInfoRequest); + // 关闭activity finish(); } @@ -237,4 +243,14 @@ public class LoginActivity extends MINVpnBaseActivity showWarning("登录失败: "+errMsg); btnLogin.revertAnimation(); } + + @Override + public void syncVpnInfoSuccess() { + showSuccess("从VMS同步VPN服务器信息成功"); + } + + @Override + public void syncVpnInfoFailed() { + showWarning("从VMS同步VPN服务器信息失败"); + } } diff --git a/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityContract.java b/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityContract.java index 89de86d..45703bb 100644 --- a/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityContract.java +++ b/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityContract.java @@ -10,6 +10,7 @@ package com.pkusz.min_vpn_client.activity.login; import android.content.Context; import com.pkusz.min_vpn_client.activity.base.MINVpnBaseView; +import com.pkusz.min_vpn_client.model.OriginalRequest.OriginalGetVpnInfoRequest; import com.pkusz.min_vpn_client.model.OriginalRequest.OriginalLoginRequest; import cn.qjm253.quick_android_mvp.base.mvp.BaseModel; @@ -20,21 +21,27 @@ public interface LoginActivityContract { void loginSuccess(); void loginSuccess(String successMsg); void loginFailed(String errMsg); + void syncVpnInfoSuccess(); + void syncVpnInfoFailed(); } interface Model extends BaseModel { void login(OriginalLoginRequest loginRequest); void loginWithSafetyInfo(OriginalLoginRequest loginRequest, Context context); void downloadRegisterFacePicture(String username, OriginalLoginRequest loginRequest, Context context); + void syncVpnServersInfo(OriginalGetVpnInfoRequest serverRequest); } abstract class Presenter extends BasePresenter { void loginSuccess(){} void loginSuccess(String successMsg){} void loginFailed(String errMsg){} + void syncVpnInfoSuccess(){} + void syncVpnInfoFailed(){} void login(OriginalLoginRequest loginRequest){} void loginWithSafetyInfo(OriginalLoginRequest loginRequest, Context context){} void downloadRegisterFacePicture(String username, OriginalLoginRequest loginRequest, Context context){} + void syncVpnServersInfo(OriginalGetVpnInfoRequest serverRequest){} } } diff --git a/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityModel.java b/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityModel.java index 0d8fc0e..7e9aab8 100644 --- a/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityModel.java +++ b/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityModel.java @@ -9,7 +9,9 @@ package com.pkusz.min_vpn_client.activity.login; import android.content.Context; +import com.pkusz.min_vpn_client.model.OriginalRequest.OriginalGetVpnInfoRequest; import com.pkusz.min_vpn_client.model.OriginalRequest.OriginalLoginRequest; +import com.pkusz.min_vpn_client.model.Response.VpnServerInfoList; import com.pkusz.min_vpn_client.model.VMSRequestAPI; import common.LoggerHelper; @@ -23,7 +25,7 @@ public class LoginActivityModel implements LoginActivityContract.Model{ @Override public void login(OriginalLoginRequest loginRequest) { - Integer resCode= VMSRequestAPI.INSTANCE.login(loginRequest); + Integer resCode = VMSRequestAPI.INSTANCE.login(loginRequest); if(resCode==null) { mPresenter.loginFailed("登录失败,未成功收到VMS的合法应答"); }else if(resCode==200) { @@ -44,4 +46,21 @@ public class LoginActivityModel implements LoginActivityContract.Model{ // 废弃接口 LoggerHelper.warning("model.downloadRegisterFacePicture: 暂停人脸识别登录功能"); } + + /** + * 从VMS中获取VPNServer的最新信息。同步到客户端 + * @param serverRequest + */ + @Override + public void syncVpnServersInfo(OriginalGetVpnInfoRequest serverRequest) { + VpnServerInfoList infoList = VMSRequestAPI.INSTANCE.getVPNServerInfoList(serverRequest); + if(infoList==null){ + mPresenter.syncVpnInfoFailed(); + }else{ + // todo: 将信息同步到MINVpnSettingAPI + + // 通知界面 + mPresenter.syncVpnInfoSuccess(); + } + } } diff --git a/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityPresenter.java b/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityPresenter.java index 86aa315..81167e8 100644 --- a/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityPresenter.java +++ b/app/src/main/java/com/pkusz/min_vpn_client/activity/login/LoginActivityPresenter.java @@ -9,6 +9,7 @@ package com.pkusz.min_vpn_client.activity.login; import android.content.Context; +import com.pkusz.min_vpn_client.model.OriginalRequest.OriginalGetVpnInfoRequest; import com.pkusz.min_vpn_client.model.OriginalRequest.OriginalLoginRequest; public class LoginActivityPresenter extends LoginActivityContract.Presenter{ @@ -32,6 +33,16 @@ public class LoginActivityPresenter extends LoginActivityContract.Presenter{ mView.loginFailed(errMsg); } + @Override + void syncVpnInfoSuccess() { + mView.syncVpnInfoSuccess(); + } + + @Override + void syncVpnInfoFailed() { + mView.syncVpnInfoFailed(); + } + @Override void login(OriginalLoginRequest loginRequest) { mModel.login(loginRequest); @@ -46,4 +57,9 @@ public class LoginActivityPresenter extends LoginActivityContract.Presenter{ void downloadRegisterFacePicture(String username, OriginalLoginRequest loginRequest, Context context) { mModel.downloadRegisterFacePicture(username, loginRequest, context); } + + @Override + void syncVpnServersInfo(OriginalGetVpnInfoRequest serverRequest) { + mModel.syncVpnServersInfo(serverRequest); + } }