将多设备登录管理加在SMSLogin中

This commit is contained in:
free will committed 2021-11-11 10:00:25 +08:00
1 parent c6c7faee28
commit b1df9e8e84
4 files changed
+32

No files matched your search

@@ -27,11 +27,13 @@ import com.pkusz.min_vpn_client.model.OriginalRequest.OriginalGetVpnInfoRequest;
import com.pkusz.min_vpn_client.utils.AccountValidatorRegexUtil;
import com.pkusz.min_vpn_client.utils.DigestUtilKt;
import com.pkusz.min_vpn_client.utils.KeyManager;
import com.pkusz.min_vpn_client.utils.listview.ListActivity;
import com.white.countdownbutton.CountDownButton;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Arrays;
import java.util.Objects;
import MISConnection.Model.MISAuthenticationRequest;
@@ -262,6 +264,22 @@ public class LoginSMSActivity extends MINVpnBaseActivity<LoginSMSActivityPresent
btnLogin.revertAnimation();
}
@Override
public void machineFulled(String[] machines){
showWarning("本账号已注册在服务器的设备已满,请删除部分设备,以继续登录。");
System.out.println(Arrays.toString(machines));
// 向用户展示设备删除界面
showMachines(machines);
}
// 测试使用弹窗显示已在VMS进行绑定的设备
private void showMachines(String[] machines){
// 保存当前设备信息
ListActivity.machineInfos=machines;
// 页面跳转
System.out.println("跳转到设备信息界面");
ContextExtensionKt.jumpTo(this, ListActivity.class);
}
@Override
public void getCodeSuccess() {
getCodeSuccess("获取验证码成功");
@@ -28,6 +28,7 @@ public interface LoginSMSActivityContract {
void getCodeSuccess();
void getCodeSuccess(String successMsg);
void getCodeFailed(String errMsg);
void machineFulled(String[] machines); // 设备已满
}
interface Model extends BaseModel {
@@ -47,6 +48,7 @@ public interface LoginSMSActivityContract {
void getCodeSuccess(){}
void getCodeSuccess(String successMsg){}
void getCodeFailed(String errMsg){}
void machineFulled(String[] machines){} // 设备已满
void login(MISGetValidIdentityRequest identityRequest,String username,String rawPasswd){}
void loginWithSafetyInfo(OriginalLoginRequest loginRequest, Context context){}
@@ -16,10 +16,14 @@ import com.pkusz.min_vpn_client.model.Response.VpnServerInfoList;
import com.pkusz.min_vpn_client.model.VMSRequestAPI;
import com.pkusz.min_vpn_client.utils.IdentityEncryptedUtil;
import com.pkusz.min_vpn_client.utils.KeyManager;
import com.pkusz.min_vpn_client.utils.listview.ListActivity;
import java.util.Arrays;
import MISConnection.Model.MISAuthenticationRequest;
import MISConnection.Model.MISGetValidIdentityRequest;
import VMSConnection.TCPNet.Message.NetworkResponse;
import cn.qjm253.quick_android_base.extensions.ContextExtensionKt;
import common.LoggerHelper;
import security.SafeBag;
@@ -65,6 +69,9 @@ public class LoginSMSActivityModel implements LoginSMSActivityContract.Model{
mPresenter.loginFailed("登录失败,未成功收到VMS的合法应答");
}else if(resp.Code==200) {
mPresenter.loginSuccess();
}else if(resp.Code==409) { // 可用设备已满三台,应当对返回数据进行解析
String[] recordedHosts=new String(resp.Data).split(",");
mPresenter.machineFulled(recordedHosts);
}else{
mPresenter.loginFailed("登录失败,VMS应答码为"+resp.Code);
}
@@ -60,6 +60,11 @@ public class LoginSMSActivityPresenter extends LoginSMSActivityContract.Presente
mView.getCodeFailed(errMsg);
}
@Override
void machineFulled(String[] machines) { // 设备已满
mView.machineFulled(machines);
}
// ***************************************************
@Override