|
@@ -64,6 +64,33 @@ public class LoginActivity extends AppCompatActivity {
|
|
|
private AlertDialog dialog;
|
|
private AlertDialog dialog;
|
|
|
private SessionManager sessionManager;
|
|
private SessionManager sessionManager;
|
|
|
|
|
|
|
|
|
|
+ // 添加新声明的视图变量
|
|
|
|
|
+ private LinearLayout layoutSmsLogin;
|
|
|
|
|
+ private LinearLayout layoutPasswordLogin;
|
|
|
|
|
+ private Button btnSwitchSms;
|
|
|
|
|
+ private Button btnSwitchPassword;
|
|
|
|
|
+ private Button btnSwitchSms2; // 第二组切换按钮
|
|
|
|
|
+ private Button btnSwitchPassword2; // 第二组切换按钮
|
|
|
|
|
+ private EditText etUsername; // 用户名输入框
|
|
|
|
|
+ private EditText etPassword; // 密码输入框
|
|
|
|
|
+ private Button btnPasswordLogin; // 密码登
|
|
|
|
|
+
|
|
|
|
|
+ // 切换到短信登录
|
|
|
|
|
+ private void switchToSmsLogin() {
|
|
|
|
|
+ layoutSmsLogin.setVisibility(View.VISIBLE);
|
|
|
|
|
+ layoutPasswordLogin.setVisibility(View.GONE);
|
|
|
|
|
+ btnSwitchSms.setEnabled(false);
|
|
|
|
|
+ btnSwitchPassword.setEnabled(true);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 切换到密码登录
|
|
|
|
|
+ private void switchToPasswordLogin() {
|
|
|
|
|
+ layoutSmsLogin.setVisibility(View.GONE);
|
|
|
|
|
+ layoutPasswordLogin.setVisibility(View.VISIBLE);
|
|
|
|
|
+ btnSwitchSms.setEnabled(true);
|
|
|
|
|
+ btnSwitchPassword.setEnabled(false);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
super.onCreate(savedInstanceState);
|
|
@@ -120,55 +147,90 @@ public class LoginActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
|
|
|
|
|
private void initViews() {
|
|
private void initViews() {
|
|
|
|
|
+ // 短信登录相关视图
|
|
|
editTextPhone = findViewById(R.id.et_phone_number);
|
|
editTextPhone = findViewById(R.id.et_phone_number);
|
|
|
editTextSmsCode = findViewById(R.id.et_sms_code);
|
|
editTextSmsCode = findViewById(R.id.et_sms_code);
|
|
|
buttonSendSms = findViewById(R.id.btn_send_sms_code);
|
|
buttonSendSms = findViewById(R.id.btn_send_sms_code);
|
|
|
buttonLogin = findViewById(R.id.btn_login);
|
|
buttonLogin = findViewById(R.id.btn_login);
|
|
|
tvSdkInitStatus = findViewById(R.id.tv_sdk_init_status);
|
|
tvSdkInitStatus = findViewById(R.id.tv_sdk_init_status);
|
|
|
|
|
+
|
|
|
|
|
+ // 登录方式切换相关视图
|
|
|
|
|
+ layoutSmsLogin = findViewById(R.id.layoutSmsLogin);
|
|
|
|
|
+ layoutPasswordLogin = findViewById(R.id.layoutPasswordLogin);
|
|
|
|
|
+ btnSwitchSms = findViewById(R.id.btn_switch_sms);
|
|
|
|
|
+ btnSwitchPassword = findViewById(R.id.btn_switch_password);
|
|
|
|
|
+ btnSwitchSms2 = findViewById(R.id.btn_switch_sms_2);
|
|
|
|
|
+ btnSwitchPassword2 = findViewById(R.id.btn_switch_password_2);
|
|
|
|
|
+
|
|
|
|
|
+ // 密码登录相关视图
|
|
|
|
|
+ etUsername = findViewById(R.id.et_username);
|
|
|
|
|
+ etPassword = findViewById(R.id.et_password);
|
|
|
|
|
+ btnPasswordLogin = findViewById(R.id.btn_password_login);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void setupListeners() {
|
|
private void setupListeners() {
|
|
|
// 发送验证码按钮点击事件
|
|
// 发送验证码按钮点击事件
|
|
|
- buttonSendSms.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
- @Override
|
|
|
|
|
- public void onClick(View v) {
|
|
|
|
|
- tvSdkInitStatus.setText(DJISDKManager.getInstance().isSDKRegistered() ? "Dji SDK 初始化成功" : "Dji SDK 初始化中。。。。");
|
|
|
|
|
- String phoneNumber = editTextPhone.getText().toString().trim();
|
|
|
|
|
- if (TextUtils.isEmpty(phoneNumber)) {
|
|
|
|
|
- Toast.makeText(LoginActivity.this, "请输入手机号", Toast.LENGTH_SHORT).show();
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- if (phoneNumber.length() != 11) {
|
|
|
|
|
- Toast.makeText(LoginActivity.this, "请输入正确的手机号", Toast.LENGTH_SHORT).show();
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- sendSmsCode(phoneNumber);
|
|
|
|
|
|
|
+ buttonSendSms.setOnClickListener(v -> {
|
|
|
|
|
+ tvSdkInitStatus.setText(DJISDKManager.getInstance().isSDKRegistered() ? "Dji SDK 初始化成功" : "Dji SDK 初始化中。。。。");
|
|
|
|
|
+ String phoneNumber = editTextPhone.getText().toString().trim();
|
|
|
|
|
+ if (TextUtils.isEmpty(phoneNumber)) {
|
|
|
|
|
+ Toast.makeText(LoginActivity.this, "请输入手机号", Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ return;
|
|
|
}
|
|
}
|
|
|
|
|
+ if (phoneNumber.length() != 11) {
|
|
|
|
|
+ Toast.makeText(LoginActivity.this, "请输入正确的手机号", Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ sendSmsCode(phoneNumber);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- // 登录按钮点击事件
|
|
|
|
|
- buttonLogin.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
- @Override
|
|
|
|
|
- public void onClick(View v) {
|
|
|
|
|
- String phoneNumber = editTextPhone.getText().toString().trim();
|
|
|
|
|
- String smsCode = editTextSmsCode.getText().toString().trim();
|
|
|
|
|
-
|
|
|
|
|
- if (TextUtils.isEmpty(phoneNumber)) {
|
|
|
|
|
- Toast.makeText(LoginActivity.this, "请输入手机号", Toast.LENGTH_SHORT).show();
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- if (TextUtils.isEmpty(smsCode)) {
|
|
|
|
|
- Toast.makeText(LoginActivity.this, "请输入验证码", Toast.LENGTH_SHORT).show();
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- if (!DJISDKManager.getInstance().isSDKInitialized()) {
|
|
|
|
|
- Toast.makeText(LoginActivity.this, "SDK 未初始化,请稍后再试", Toast.LENGTH_SHORT).show();
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- performLogin(phoneNumber, smsCode);
|
|
|
|
|
|
|
+ // 短信登录按钮点击事件
|
|
|
|
|
+ buttonLogin.setOnClickListener(v -> {
|
|
|
|
|
+ String phoneNumber = editTextPhone.getText().toString().trim();
|
|
|
|
|
+ String smsCode = editTextSmsCode.getText().toString().trim();
|
|
|
|
|
+
|
|
|
|
|
+ if (TextUtils.isEmpty(phoneNumber)) {
|
|
|
|
|
+ Toast.makeText(LoginActivity.this, "请输入手机号", Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (TextUtils.isEmpty(smsCode)) {
|
|
|
|
|
+ Toast.makeText(LoginActivity.this, "请输入验证码", Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ return;
|
|
|
}
|
|
}
|
|
|
|
|
+ if (!DJISDKManager.getInstance().isSDKInitialized()) {
|
|
|
|
|
+ Toast.makeText(LoginActivity.this, "SDK 未初始化,请稍后再试", Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ performLogin(phoneNumber, smsCode);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 登录方式切换按钮点击事件
|
|
|
|
|
+ btnSwitchSms.setOnClickListener(v -> switchToSmsLogin());
|
|
|
|
|
+ btnSwitchPassword.setOnClickListener(v -> switchToPasswordLogin());
|
|
|
|
|
+ btnSwitchSms2.setOnClickListener(v -> switchToSmsLogin());
|
|
|
|
|
+ btnSwitchPassword2.setOnClickListener(v -> switchToPasswordLogin());
|
|
|
|
|
+
|
|
|
|
|
+ // 密码登录按钮点击事件
|
|
|
|
|
+ btnPasswordLogin.setOnClickListener(v -> {
|
|
|
|
|
+ String username = etUsername.getText().toString().trim();
|
|
|
|
|
+ String password = etPassword.getText().toString().trim();
|
|
|
|
|
+
|
|
|
|
|
+ if (TextUtils.isEmpty(username)) {
|
|
|
|
|
+ Toast.makeText(LoginActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (TextUtils.isEmpty(password)) {
|
|
|
|
|
+ Toast.makeText(LoginActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!DJISDKManager.getInstance().isSDKInitialized()) {
|
|
|
|
|
+ Toast.makeText(LoginActivity.this, "SDK 未初始化,请稍后再试", Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ performPasswordLogin(username, password);
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -244,6 +306,45 @@ public class LoginActivity extends AppCompatActivity {
|
|
|
}
|
|
}
|
|
|
));
|
|
));
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 执行登录
|
|
|
|
|
+ */
|
|
|
|
|
+ private void performPasswordLogin(String phoneNumber, String password) {
|
|
|
|
|
+ Log.i(TAG, "登录: " + phoneNumber + ", 密码: " + password);
|
|
|
|
|
+
|
|
|
|
|
+ // 禁用登录按钮
|
|
|
|
|
+ buttonLogin.setEnabled(false);
|
|
|
|
|
+ buttonLogin.setText("登录中...");
|
|
|
|
|
+
|
|
|
|
|
+ // 使用 NetworkRepository 执行登录
|
|
|
|
|
+ disposables.add(networkRepository.loginWithPassword(phoneNumber,password)
|
|
|
|
|
+ .subscribeOn(Schedulers.io())
|
|
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
|
|
+ .subscribe(
|
|
|
|
|
+ response -> {
|
|
|
|
|
+ buttonLogin.setEnabled(true);
|
|
|
|
|
+ buttonLogin.setText("登录");
|
|
|
|
|
+
|
|
|
|
|
+ if (response != null) {
|
|
|
|
|
+ Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ // 跳转到 MainActivity
|
|
|
|
|
+ Intent intent = new Intent(LoginActivity.this, MainActivity.class);
|
|
|
|
|
+ startActivity(intent);
|
|
|
|
|
+ finish();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Toast.makeText(LoginActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ throwable -> {
|
|
|
|
|
+ buttonLogin.setEnabled(true);
|
|
|
|
|
+ buttonLogin.setText("登录");
|
|
|
|
|
+ String errorMessage = getErrorMessage(throwable);
|
|
|
|
|
+ Toast.makeText(LoginActivity.this, "登录失败: " + errorMessage, Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ }
|
|
|
|
|
+ ));
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 统一错误处理
|
|
* 统一错误处理
|