增加登录成功之后自动从VMS同步VPN服务器信息的操作

This commit is contained in:
free will
2021-08-05 10:52:19 +08:00
parent 0ae08fd92c
commit 80a1e20cc3
4 changed files with 59 additions and 1 deletions
@@ -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<LoginActivityPresenter>
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<LoginActivityPresenter>
showWarning("登录失败: "+errMsg);
btnLogin.revertAnimation();
}
@Override
public void syncVpnInfoSuccess() {
showSuccess("从VMS同步VPN服务器信息成功");
}
@Override
public void syncVpnInfoFailed() {
showWarning("从VMS同步VPN服务器信息失败");
}
}
@@ -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<LoginActivityContract.View, LoginActivityContract.Model> {
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){}
}
}
@@ -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();
}
}
}
@@ -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);
}
}