初始化代码
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
package com.qxcm.modulelogin.activity;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
|
||||
import com.qxcm.modulelogin.R;
|
||||
import com.qxcm.modulelogin.databinding.ActivityForgetPasswordBinding;
|
||||
import com.qxcm.modulelogin.databinding.ActivityLoginBinding;
|
||||
import com.qxcm.modulelogin.present.LoginContacter;
|
||||
import com.qxcm.modulelogin.present.LoginPresenter;
|
||||
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
|
||||
public class ForgetPasswordActivity extends BaseMvpActivity<LoginPresenter, ActivityForgetPasswordBinding> implements LoginContacter.View, View.OnClickListener {
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_forget_password;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendCodeSuccess(String phoneNumber) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected LoginPresenter bindPresenter() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,276 @@
|
||||
package com.qxcm.modulelogin.activity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.luck.picture.lib.PictureSelector;
|
||||
import com.luck.picture.lib.config.PictureConfig;
|
||||
import com.luck.picture.lib.config.PictureMimeType;
|
||||
import com.luck.picture.lib.entity.LocalMedia;
|
||||
import com.qxcm.modulelogin.R;
|
||||
import com.qxcm.modulelogin.bean.UserFillResp;
|
||||
import com.qxcm.modulelogin.databinding.ActivityImproveInfoBinding;
|
||||
import com.qxcm.modulelogin.present.ImproveInfoContacts;
|
||||
import com.qxcm.modulelogin.present.ImproveInfoPresenter;
|
||||
import com.qxcm.modulemain.activity.MainActivity;
|
||||
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.qxcm.moduleutil.bean.UserPictrue;
|
||||
import com.qxcm.moduleutil.utils.DateSelectDialog;
|
||||
import com.qxcm.moduleutil.utils.GlideEngine;
|
||||
import com.qxcm.moduleutil.utils.ImageLoader;
|
||||
import com.qxcm.moduleutil.utils.MyPictureParameterStyle;
|
||||
import com.qxcm.moduleutil.widget.Constants;
|
||||
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class ImproveInfoActivity extends BaseMvpActivity<ImproveInfoPresenter, ActivityImproveInfoBinding> implements
|
||||
ImproveInfoContacts.View, View.OnClickListener, DateSelectDialog.OnSelectDate {
|
||||
private String sex;
|
||||
|
||||
public String nickname;
|
||||
public String user_no_parent;
|
||||
|
||||
private long startTime = 0;//开始时间
|
||||
private long stayTime = 0;//停留时间
|
||||
private boolean isGirlSelected = false;
|
||||
private boolean isBoySelected = false;
|
||||
private DateSelectDialog mDateSelectDialog;
|
||||
private boolean isFirst = false;
|
||||
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
mBinding.edNickName.setText(nickname);
|
||||
mBinding.edNickName.setClearIconVisible(true);
|
||||
if (!TextUtils.isEmpty(user_no_parent) && !"0".equals(user_no_parent)) {
|
||||
mBinding.etInviteCode.setText(user_no_parent);
|
||||
mBinding.etInviteCode.setKeyListener(null);
|
||||
mBinding.etInviteCode.setFocusable(false);
|
||||
mBinding.etInviteCode.setFocusableInTouchMode(false);
|
||||
}
|
||||
startTime = System.currentTimeMillis();
|
||||
mBinding.flCommit.setOnClickListener(this::onClick);
|
||||
mBinding.rlNv.setOnClickListener(this::onClick);
|
||||
mBinding.rlNan.setOnClickListener(this::onClick);
|
||||
mBinding.rvUserHead.setOnClickListener(this::onClick);
|
||||
mBinding.tvUserName.setOnClickListener(this::onClick);
|
||||
mBinding.ivGirl.setOnClickListener(this::onClick);
|
||||
mBinding.ivBoy.setOnClickListener(this::onClick);
|
||||
mBinding.tvDay.setOnClickListener(this::onClick);
|
||||
mBinding.tvMonth.setOnClickListener(this::onClick);
|
||||
mBinding.tvYear.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_improve_info;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ImproveInfoPresenter bindPresenter() {
|
||||
return new ImproveInfoPresenter(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void success(UserFillResp resp) {
|
||||
// UserBean user = MyApplication.getInstance().getUser();
|
||||
// user.setSex(Integer.parseInt(sex));
|
||||
// user.setNickname(nickname);
|
||||
// try {
|
||||
// user.setSex(Integer.parseInt(sex));
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// MyApplication.getInstance().setUser(user);
|
||||
// ToastUtils.showShort("设置成功");
|
||||
Intent intent = new Intent(this, MainActivity.class);
|
||||
// if (resp != null && !"0".equals(resp.getGift_bag_id())) {
|
||||
// intent.putExtra("giftBagUrl", resp.getGift_bag_url());
|
||||
// }
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
stayTime = (System.currentTimeMillis() - startTime) / 1000;
|
||||
// AppLogUtil.reportAppLog(AppLogEvent.A0301, "stend_time", String.valueOf(stayTime));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == R.id.fl_commit) {
|
||||
nickname = mBinding.edNickName.getText().toString().trim();
|
||||
String inviteCode = mBinding.etInviteCode.getText().toString().trim();
|
||||
if (TextUtils.isEmpty(nickname)) {
|
||||
ToastUtils.showShort("请输入昵称");
|
||||
return;
|
||||
}
|
||||
if (TextUtils.isEmpty(sex)) {
|
||||
ToastUtils.showShort("请选择性别");
|
||||
return;
|
||||
}
|
||||
if (!inviteCode.isEmpty() || inviteCode != null) {
|
||||
map.put("user_no", inviteCode);
|
||||
}
|
||||
map.put("sex", sex);
|
||||
MvpPre.upDateUserInfo(map);
|
||||
// MvpPre.fill(inviteCode, nickname, sex);
|
||||
|
||||
// try {
|
||||
// AppLogUtil.reportAppLog(AppLogEvent.A0302, new JSONObject()
|
||||
// .put("sex", sex).put("nick_name", nickname)
|
||||
// .put("invitation_code", mBinding.etInviteCode.getText().toString()));
|
||||
// } catch (JSONException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
} else if (id == R.id.rl_nv) {
|
||||
mBinding.flCommit.setEnabled(true);
|
||||
mBinding.rlNan.setSelected(false);
|
||||
mBinding.rlNv.setSelected(true);
|
||||
sex = "2";
|
||||
} else if (id == R.id.rl_nan) {
|
||||
mBinding.flCommit.setEnabled(true);
|
||||
mBinding.rlNan.setSelected(true);
|
||||
mBinding.rlNv.setSelected(false);
|
||||
sex = "1";
|
||||
} else if (id == R.id.rv_user_head) {
|
||||
startChoosePhoto(PictureMimeType.ofImage(), PictureConfig.CHOOSE_REQUEST);
|
||||
} else if (id == R.id.tv_user_name) {
|
||||
MvpPre.updateNickname();
|
||||
} else if (id == R.id.iv_girl) {
|
||||
if (!isGirlSelected) {
|
||||
mBinding.ivGirl.setImageResource(com.qxcm.moduleutil.R.mipmap.check_girl1);
|
||||
mBinding.ivBoy.setImageResource(com.qxcm.moduleutil.R.mipmap.check_boy);
|
||||
isGirlSelected = true;
|
||||
isBoySelected = false;
|
||||
if (!isFirst) {
|
||||
MvpPre.getSexTrue("2");
|
||||
}
|
||||
sex = "2";
|
||||
}
|
||||
} else if (id == R.id.iv_boy) {
|
||||
if (!isBoySelected) {
|
||||
mBinding.ivGirl.setImageResource(com.qxcm.moduleutil.R.mipmap.check_girl);
|
||||
mBinding.ivBoy.setImageResource(com.qxcm.moduleutil.R.mipmap.check_boy1);
|
||||
isBoySelected = true;
|
||||
isGirlSelected = false;
|
||||
if (!isFirst) {
|
||||
MvpPre.getSexTrue("1");
|
||||
}
|
||||
sex = "1";
|
||||
}
|
||||
} else if (id == R.id.tv_day || id == R.id.tv_month || id == R.id.tv_year) {
|
||||
if (mDateSelectDialog == null) {
|
||||
mDateSelectDialog = new DateSelectDialog(this);
|
||||
mDateSelectDialog.setmOnSelectDate(this);
|
||||
}
|
||||
mDateSelectDialog.show();
|
||||
}
|
||||
}
|
||||
|
||||
private void startChoosePhoto(int mimeType, int requestCode) {
|
||||
|
||||
|
||||
PictureSelector.create(this)
|
||||
.openGallery(mimeType)
|
||||
.isGif(false)
|
||||
.imageEngine(GlideEngine.createGlideEngine())
|
||||
.maxSelectNum(1)
|
||||
.isPreviewImage(true)
|
||||
.isCamera(true)
|
||||
.setOutputCameraPath(Constants.FILE_PATH)
|
||||
.isCompress(true)
|
||||
.setPictureStyle(MyPictureParameterStyle.Companion.selectPicture())
|
||||
.forResult(requestCode); //结果回调onActivityResult code
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (resultCode == RESULT_OK && data != null) {
|
||||
switch (requestCode) {
|
||||
case PictureConfig.CHOOSE_REQUEST:
|
||||
List<LocalMedia> localMedia = PictureSelector.obtainMultipleResult(data);
|
||||
if (localMedia != null && localMedia.size() != 0) {
|
||||
LocalMedia imgMedia = localMedia.get(0);
|
||||
String url;
|
||||
if (imgMedia.isCompressed()) {
|
||||
url = imgMedia.getCompressPath();
|
||||
} else {
|
||||
url = imgMedia.getRealPath();
|
||||
}
|
||||
MvpPre.uploadFile(new File(url), 0);
|
||||
}
|
||||
break;
|
||||
case PictureConfig.REQUEST_CAMERA:
|
||||
List<LocalMedia> localMedia1 = PictureSelector.obtainMultipleResult(data);
|
||||
if (localMedia1 != null && localMedia1.size() != 0) {
|
||||
LocalMedia imgMedia = localMedia1.get(0);
|
||||
MvpPre.uploadFile(new File(imgMedia.getRealPath()), 3);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void upLoadSuccess(String url, int type) {
|
||||
MvpPre.updateAvatar(url);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAvatarSuccess(String headPicture) {
|
||||
ImageLoader.loadHead(this, mBinding.rvUserHead, headPicture);
|
||||
map.put("head_picture", headPicture);
|
||||
isFirst = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateNicknameSuccess(String nickname) {
|
||||
mBinding.edNickName.setText(nickname);
|
||||
map.put("nickname", nickname);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSexTrue(UserPictrue sex) {
|
||||
ImageLoader.loadHead(this, mBinding.rvUserHead,sex.getDefaultAvatar());
|
||||
map.put("head_picture", sex.getDefaultAvatar());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSuccess() {
|
||||
Intent intent = new Intent(this, MainActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void selectDate(String year, String month, String day) {
|
||||
mBinding.tvDay.setText(day);
|
||||
mBinding.tvMonth.setText(month);
|
||||
mBinding.tvYear.setText(year);
|
||||
map.put("birthday", year + "-" + month + "-" + day);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
package com.qxcm.modulelogin.activity;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.text.method.PasswordTransformationMethod;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.qxcm.modulelogin.R;
|
||||
import com.qxcm.modulelogin.databinding.ActivityLoginBinding;
|
||||
import com.qxcm.modulelogin.even.LoginFinishEvent;
|
||||
import com.qxcm.modulelogin.present.LoginContacter;
|
||||
import com.qxcm.modulelogin.present.LoginPresenter;
|
||||
import com.qxcm.modulemain.activity.MainActivity;
|
||||
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.qxcm.moduleutil.utils.BarUtils;
|
||||
import com.qxcm.moduleutil.utils.LanguageUtil;
|
||||
import com.qxcm.moduleutil.utils.PreferencesUtils;
|
||||
import com.qxcm.moduleutil.widget.CommonAppContext;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
/**
|
||||
*@author
|
||||
*@data
|
||||
*@description: 密码登录
|
||||
*/
|
||||
public class LoginActivity extends BaseMvpActivity<LoginPresenter, ActivityLoginBinding> implements LoginContacter.View, View.OnClickListener {
|
||||
|
||||
|
||||
public String mobile;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_login;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
EventBus.getDefault().unregister(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void finishEvent(LoginFinishEvent event) {
|
||||
finish();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
BarUtils.setStatusBarAlpha(this, 0);
|
||||
mBinding.edPhone.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
setUpLoginBtn();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
|
||||
}
|
||||
});
|
||||
mBinding.edPhone.setOnFocusChangeListener(new View.
|
||||
OnFocusChangeListener() {
|
||||
@Override
|
||||
public void onFocusChange(View v, boolean hasFocus) {
|
||||
if (mBinding.edPhone == null) {
|
||||
return;
|
||||
}
|
||||
if (hasFocus) {
|
||||
mBinding.relPhone.setSelected(true);
|
||||
} else {
|
||||
// 此处为失去焦点时的处理内容
|
||||
mBinding.relPhone.setSelected(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
mBinding.edPassword.setOnFocusChangeListener(new View.
|
||||
OnFocusChangeListener() {
|
||||
@Override
|
||||
public void onFocusChange(View v, boolean hasFocus) {
|
||||
if (mBinding.relPhone == null) {
|
||||
return;
|
||||
}
|
||||
if (hasFocus) {
|
||||
// 此处为得到焦点时的处理内容
|
||||
mBinding.rlCode.setSelected(true);
|
||||
} else {
|
||||
// 此处为失去焦点时的处理内容
|
||||
mBinding.rlCode.setSelected(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
mBinding.edPhone.setText(PreferencesUtils.getString(CommonAppContext.getInstance(), "mobile"));
|
||||
if (!TextUtils.isEmpty(mobile)) {
|
||||
mBinding.edPhone.setText(mobile);
|
||||
}
|
||||
mBinding.tvCodeText.setOnClickListener(this::onClick);
|
||||
mBinding.flLogin.setOnClickListener(this::onClick);
|
||||
mBinding.ivZfb.setOnClickListener(this::onClick);
|
||||
mBinding.ivWeixin.setOnClickListener(this::onClick);
|
||||
mBinding.tvYhxy.setOnClickListener(this::onClick);
|
||||
mBinding.tvYsxy.setOnClickListener(this::onClick);
|
||||
mBinding.ivEye.setOnClickListener(this::onClick);
|
||||
mBinding.tvForgetPassword.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
private void setUpLoginBtn() {
|
||||
String text = mBinding.edPhone.getText().toString();
|
||||
if (text.length() == 11) {
|
||||
mBinding.flLogin.setEnabled(true);
|
||||
mBinding.ivLoginBg.setAlpha(1f);
|
||||
} else {
|
||||
mBinding.ivLoginBg.setAlpha(0.3f);
|
||||
mBinding.flLogin.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected LoginPresenter bindPresenter() {
|
||||
return new LoginPresenter(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Activity getSelfActivity() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showLoadings() {
|
||||
showLoading();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showLoadings(String content) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disLoadings() {
|
||||
disLoading();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendCodeSuccess(String phoneNumber) {
|
||||
// ARouter.getInstance().build(ARouters.INPUT_CODE).withString("mobile", phoneNumber).navigation();
|
||||
}
|
||||
boolean isPasswordVisible = false;
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
int id = view.getId();
|
||||
if (id == R.id.tv_code_text) {
|
||||
Intent intent = new Intent(this, PasswordLoginActivity.class);
|
||||
intent.putExtra("mobile", mBinding.edPhone.getText().toString());
|
||||
startActivity(intent);
|
||||
finish();
|
||||
} else if (id == R.id.fl_login) {
|
||||
if (!mBinding.cbPrivacy.isChecked()) {
|
||||
com.hjq.toast.ToastUtils.show("请先勾选服务条款");
|
||||
return;
|
||||
}
|
||||
String phoneNumber = mBinding.edPhone.getText().toString().trim();
|
||||
String password = mBinding.edPassword.getText().toString().trim();
|
||||
if (TextUtils.isEmpty(phoneNumber)) {
|
||||
ToastUtils.showShort("请输入手机号");
|
||||
return;
|
||||
}
|
||||
if (TextUtils.isEmpty(password)) {
|
||||
ToastUtils.showShort("请输入登录密码");
|
||||
return;
|
||||
}
|
||||
// MvpPre.login(phoneNumber, password, "", 1);
|
||||
Intent intent = new Intent(this, MainActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
} else if (id == R.id.iv_zfb) {
|
||||
if (!mBinding.cbPrivacy.isChecked()) {
|
||||
com.hjq.toast.ToastUtils.show("请先勾选服务条款");
|
||||
return;
|
||||
}
|
||||
MvpPre.authorization();
|
||||
} else if (id == R.id.iv_weixin) {
|
||||
if (!mBinding.cbPrivacy.isChecked()) {
|
||||
com.hjq.toast.ToastUtils.show("请先勾选服务条款");
|
||||
return;
|
||||
}
|
||||
MvpPre.authorization();
|
||||
} else if (id == R.id.tv_yhxy) {
|
||||
MvpPre.ysxl();
|
||||
} else if (id == R.id.tv_ysxy) {
|
||||
MvpPre.yhxy();
|
||||
} else if (id == R.id.iv_eye) {
|
||||
|
||||
if (!isPasswordVisible) {
|
||||
mBinding.edPassword.setInputType(android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
|
||||
mBinding.ivEye.setImageResource(com.qxcm.moduleutil.R.mipmap.eye_visible); // 设置按钮文本为隐藏密码
|
||||
} else {
|
||||
mBinding.edPassword.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
mBinding.edPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());
|
||||
mBinding.ivEye.setImageResource(com.qxcm.moduleutil.R.mipmap.eye_close); // 设置按钮文本为显示密码
|
||||
}
|
||||
mBinding.edPassword.setSelection( mBinding.edPassword.getText().length()); // 将光标移动到文字末尾
|
||||
isPasswordVisible = !isPasswordVisible; // 切换状态
|
||||
}else if (id == R.id.tv_forget_password) {
|
||||
Intent intent = new Intent(this, ForgetPasswordActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,214 @@
|
||||
package com.qxcm.modulelogin.activity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.CountDownTimer;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.qxcm.modulelogin.R;
|
||||
import com.qxcm.modulelogin.databinding.ActivityLoginBinding;
|
||||
import com.qxcm.modulelogin.databinding.ActivityPasswordLoginBinding;
|
||||
import com.qxcm.modulelogin.even.LoginFinishEvent;
|
||||
import com.qxcm.modulelogin.present.LoginContacter;
|
||||
import com.qxcm.modulelogin.present.LoginPresenter;
|
||||
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.qxcm.moduleutil.utils.BarUtils;
|
||||
import com.qxcm.moduleutil.utils.PreferencesUtils;
|
||||
import com.qxcm.moduleutil.widget.CommonAppContext;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
public class PasswordLoginActivity extends BaseMvpActivity<LoginPresenter, ActivityPasswordLoginBinding> implements LoginContacter.View, View.OnClickListener {
|
||||
|
||||
private CountDownTimer mTimer;
|
||||
public String mobile;
|
||||
@Override
|
||||
protected void initData() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_password_login;
|
||||
}
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
EventBus.getDefault().register(this);
|
||||
// AppLogUtil.reportAppLog(AppLogEvent.A0101);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
EventBus.getDefault().unregister(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void finishEvent(LoginFinishEvent event) {
|
||||
finish();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
BarUtils.setStatusBarAlpha(this, 0);
|
||||
mBinding.edPhone.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
setUpLoginBtn();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
|
||||
}
|
||||
});
|
||||
mBinding.edPhone.setOnFocusChangeListener(new View.
|
||||
OnFocusChangeListener() {
|
||||
@Override
|
||||
public void onFocusChange(View v, boolean hasFocus) {
|
||||
if (mBinding.edPhone == null) {
|
||||
return;
|
||||
}
|
||||
if (hasFocus) {
|
||||
mBinding.relPhone.setSelected(true);
|
||||
} else {
|
||||
// 此处为失去焦点时的处理内容
|
||||
mBinding.relPhone.setSelected(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
mBinding.edPhone.setText(PreferencesUtils.getString(CommonAppContext.getInstance(), "mobile"));
|
||||
if (!TextUtils.isEmpty(mobile)) {
|
||||
mBinding.edPhone.setText(mobile);
|
||||
}
|
||||
mBinding.tvCodeText.setOnClickListener(this::onClick);
|
||||
mBinding.flLogin.setOnClickListener(this::onClick);
|
||||
mBinding.tvYhxy.setOnClickListener(this::onClick);
|
||||
mBinding.tvYsxy.setOnClickListener(this::onClick);
|
||||
mBinding.ivZfb.setOnClickListener(this::onClick);
|
||||
mBinding.ivWeixin.setOnClickListener(this::onClick);
|
||||
mBinding.tvSendCode.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected LoginPresenter bindPresenter() {
|
||||
return new LoginPresenter(this, this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void showLoadings() {
|
||||
showLoading();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disLoadings() {
|
||||
disLoading();
|
||||
}
|
||||
|
||||
private void setUpLoginBtn() {
|
||||
String text = mBinding.edPhone.getText().toString();
|
||||
if (text.length() == 11) {
|
||||
mBinding.flLogin.setEnabled(true);
|
||||
mBinding.ivLoginBg.setAlpha(1f);
|
||||
} else {
|
||||
mBinding.ivLoginBg.setAlpha(0.3f);
|
||||
mBinding.flLogin.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == R.id.tv_code_text) {
|
||||
Intent intent = new Intent(this, LoginActivity.class);
|
||||
intent.putExtra("mobile", mBinding.edPhone.getText().toString());
|
||||
startActivity(intent);
|
||||
finish();
|
||||
} else if (id == R.id.fl_login) {
|
||||
if (!mBinding.cbPrivacy.isChecked()) {
|
||||
ToastUtils.show("请先勾选服务条款");
|
||||
return;
|
||||
}
|
||||
String phone = mBinding.edPhone.getText().toString().trim();
|
||||
if (TextUtils.isEmpty(phone)) {
|
||||
com.blankj.utilcode.util.ToastUtils.showShort("请输入手机号");
|
||||
return;
|
||||
}
|
||||
MvpPre.sendCode(phone, 1);
|
||||
} else if (id == R.id.tv_yhxy) {
|
||||
MvpPre.yhxy();
|
||||
} else if (id == R.id.tv_ysxy) {
|
||||
MvpPre.ysxl();
|
||||
} else if (id == R.id.iv_zfb) {
|
||||
if (!mBinding.cbPrivacy.isChecked()) {
|
||||
ToastUtils.show("请先勾选服务条款");
|
||||
return;
|
||||
}
|
||||
// MvpPre.authorization(SHARE_MEDIA.QQ);
|
||||
} else if (id == R.id.iv_weixin) {
|
||||
if (!mBinding.cbPrivacy.isChecked()) {
|
||||
ToastUtils.show("请先勾选服务条款");
|
||||
return;
|
||||
}
|
||||
// MvpPre.authorization(SHARE_MEDIA.WEIXIN);
|
||||
} else if (id == R.id.tv_send_code) {
|
||||
sendCodeSuccess(mBinding.edPhone.getText().toString().trim());
|
||||
}
|
||||
}
|
||||
|
||||
private void releaseTimer() {
|
||||
if (mTimer != null) {
|
||||
mTimer.cancel();
|
||||
mTimer = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void sendCodeSuccess(String phoneNumber) {
|
||||
com.blankj.utilcode.util.ToastUtils.showShort("短信验证码发送成功请注意查收");
|
||||
mBinding.tvSendCode.setEnabled(false);
|
||||
mBinding.tvSendCode.setAlpha(0.5f);
|
||||
releaseTimer();
|
||||
if (mTimer != null) {
|
||||
mTimer.cancel();
|
||||
}
|
||||
mTimer = new CountDownTimer(60000L, 1000L) {
|
||||
@Override
|
||||
public void onTick(long millisUntilFinished) {
|
||||
if (mBinding.tvSendCode != null) {
|
||||
mBinding.tvSendCode.setText(String.format("重新发送(%s)", millisUntilFinished / 1000));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinish() {
|
||||
mBinding.tvSendCode.setAlpha(1f);
|
||||
mBinding.tvSendCode.setEnabled(true);
|
||||
mBinding.tvSendCode.setText("重新发送");
|
||||
}
|
||||
};
|
||||
mTimer.start();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.qxcm.modulelogin.bean;
|
||||
|
||||
/**
|
||||
* 项目名称 qipao-android
|
||||
* 包名:com.qpyy.module.me.bean
|
||||
* 创建人 王欧
|
||||
* 创建时间 2020/8/3 1:43 PM
|
||||
* 描述 describe
|
||||
*/
|
||||
public class UserFillResp {
|
||||
|
||||
/**
|
||||
* gift_bag_id :
|
||||
* gift_bag_url :
|
||||
*/
|
||||
|
||||
private String gift_bag_id;
|
||||
private String gift_bag_url;
|
||||
|
||||
public String getGift_bag_id() {
|
||||
return gift_bag_id;
|
||||
}
|
||||
|
||||
public void setGift_bag_id(String gift_bag_id) {
|
||||
this.gift_bag_id = gift_bag_id;
|
||||
}
|
||||
|
||||
public String getGift_bag_url() {
|
||||
return gift_bag_url;
|
||||
}
|
||||
|
||||
public void setGift_bag_url(String gift_bag_url) {
|
||||
this.gift_bag_url = gift_bag_url;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package com.qxcm.modulelogin.even;
|
||||
|
||||
public class LoginFinishEvent {
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.qxcm.modulelogin.present;
|
||||
|
||||
import android.app.Activity;
|
||||
|
||||
|
||||
import com.qxcm.modulelogin.bean.UserFillResp;
|
||||
import com.qxcm.moduleutil.activity.IPresenter;
|
||||
import com.qxcm.moduleutil.activity.IView;
|
||||
import com.qxcm.moduleutil.bean.UserPictrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
|
||||
public final class ImproveInfoContacts {
|
||||
|
||||
|
||||
public interface View extends IView<Activity> {
|
||||
void success(UserFillResp s);
|
||||
|
||||
void upLoadSuccess(String url, int type);
|
||||
|
||||
void updateAvatarSuccess(String url);
|
||||
|
||||
void updateNicknameSuccess(String nickname);
|
||||
|
||||
void updateSexTrue(UserPictrue sex);
|
||||
|
||||
void updateSuccess();
|
||||
}
|
||||
|
||||
public interface IImproveInfoPre extends IPresenter {
|
||||
void fill(String user_no, String nickname, String sex);
|
||||
|
||||
void uploadFile(File file, int type);
|
||||
|
||||
void updateAvatar(String headPicture);
|
||||
|
||||
void updateNickname();
|
||||
|
||||
void getSexTrue(String sex);
|
||||
|
||||
void upDateUserInfo(Map<String, String> map);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
package com.qxcm.modulelogin.present;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
|
||||
import com.qxcm.modulelogin.bean.UserFillResp;
|
||||
import com.qxcm.moduleutil.http.BaseObserver;
|
||||
import com.qxcm.moduleutil.presenter.BasePresenter;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class ImproveInfoPresenter extends BasePresenter<ImproveInfoContacts.View> implements ImproveInfoContacts.IImproveInfoPre {
|
||||
public ImproveInfoPresenter(ImproveInfoContacts.View view, Context context) {
|
||||
super(view, context);
|
||||
}
|
||||
@Override
|
||||
public void upDateUserInfo(Map<String, String> map) {
|
||||
// ApiClient.getInstance().userUpdate(map, new BaseObserver<String>() {
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// addDisposable(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(String s) {
|
||||
// MvpRef.get().updateSuccess();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
// }
|
||||
// });
|
||||
}
|
||||
@Override
|
||||
public void fill(String user_no, String nickname, String sex) {
|
||||
MvpRef.get().showLoadings();
|
||||
// ApiClient.getInstance().userFill(user_no, nickname, sex, new BaseObserver<UserFillResp>() {
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// addDisposable(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(UserFillResp s) {
|
||||
MvpRef.get().success(null);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
// MvpRef.get().disLoadings();
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadFile(File file, int type) {
|
||||
// MvpRef.get().showLoadings("上传中...");
|
||||
// String url = OSSOperUtils.getPath(file, type);
|
||||
// OSSOperUtils.newInstance().putObjectMethod(url, file.getPath(), new OSSOperUtils.OssCallback() {
|
||||
// @Override
|
||||
// public void onSuccess() {
|
||||
// if (isViewAttach()) {
|
||||
// MvpRef.get().disLoadings();
|
||||
// MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onFail() {
|
||||
// if (isViewAttach()) {
|
||||
// MvpRef.get().disLoadings();
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAvatar(String headPicture) {
|
||||
MvpRef.get().showLoadings();
|
||||
// ApiClient.getInstance().updateAvatar(headPicture, new BaseObserver<String>() {
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// addDisposable(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(String s) {
|
||||
// MvpRef.get().updateAvatarSuccess(headPicture);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
// MvpRef.get().disLoadings();
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateNickname() {
|
||||
// TODO: 2019/1/15 完善昵称修改功能
|
||||
MvpRef.get().showLoadings();
|
||||
// api.upUserNickname(new BaseObserver<UserNickBean>() {
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// addDisposable(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(UserNickBean s) {
|
||||
// MvpRef.get().updateNicknameSuccess(s.getNickname());
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
// MvpRef.get().disLoadings();
|
||||
// }
|
||||
// });
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSexTrue(String sex) {
|
||||
// TODO: 2019/1/15 完善性别获取头像信息
|
||||
MvpRef.get().showLoadings();
|
||||
// api.upUserTrue(sex, new BaseObserver<UserPictrue>() {
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// addDisposable(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(UserPictrue userPictrue) {
|
||||
// MvpRef.get().updateSexTrue(userPictrue);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
// MvpRef.get().disLoadings();
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.qxcm.modulelogin.present;
|
||||
|
||||
import android.app.Activity;
|
||||
|
||||
import com.qxcm.moduleutil.activity.IPresenter;
|
||||
import com.qxcm.moduleutil.activity.IView;
|
||||
|
||||
public final class LoginContacter {
|
||||
public interface View extends IView<Activity> {
|
||||
void sendCodeSuccess(String phoneNumber);
|
||||
}
|
||||
|
||||
public interface ILoginPre extends IPresenter {
|
||||
void sendCode(String phoneNumber, int type);
|
||||
|
||||
void login(String mobile, String password, String code, int type);
|
||||
|
||||
void thirdPartyLogin(String oldOpenId, String openId, int three_party, String nickname, String head_pic);
|
||||
|
||||
void oauthLogin(String netease_token, String access_token, int type);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.qxcm.modulelogin.present;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.blankj.utilcode.util.AppUtils;
|
||||
import com.qxcm.moduleutil.activity.IPresenter;
|
||||
import com.qxcm.moduleutil.presenter.BasePresenter;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class LoginPresenter extends BasePresenter<LoginContacter.View> implements LoginContacter.ILoginPre {
|
||||
public LoginPresenter(LoginContacter.View view, Context context) {
|
||||
super(view, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendCode(String phoneNumber, int type) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void login(String mobile, String password, String code, int type) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void thirdPartyLogin(String oldOpenId, String openId, int three_party, String nickname, String head_pic) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void oauthLogin(String netease_token, String access_token, int type) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void detachView() {
|
||||
|
||||
}
|
||||
public void authorization() {
|
||||
// if (share_media.getName().equals(SHARE_MEDIA.QQ.getName())) {
|
||||
// AppLogUtil.reportAppLog(AppLogEvent.A010304_qq, "be_null", "be_null");
|
||||
// if (!AppUtils.isAppInstalled("com.tencent.mobileqq")) {
|
||||
// ToastUtils.showShort("请安装QQ客户端");
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
// if (share_media.getName().equals(SHARE_MEDIA.WEIXIN.getName())) {
|
||||
// AppLogUtil.reportAppLog(AppLogEvent.A010304_wx, "be_null", "be_null");
|
||||
// if (!AppUtils.isAppInstalled("com.tencent.mm")) {
|
||||
// ToastUtils.showShort("请安装微信客户端");
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
// UMShareAPI.get(MvpRef.get().getSelfActivity()).getPlatformInfo(MvpRef.get().getSelfActivity(), share_media, new UMAuthListener() {
|
||||
// @Override
|
||||
// public void onStart(SHARE_MEDIA share_media) {
|
||||
// Log.d(TAG, "onStart " + "授权开始");
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
|
||||
// Log.d(TAG, "onComplete " + "授权完成");
|
||||
//
|
||||
// //sdk是6.4.4的,但是获取值的时候用的是6.2以前的(access_token)才能获取到值,未知原因
|
||||
// String uid = map.get("uid");
|
||||
// String openid = map.get("openid");//微博没有
|
||||
// String unionid = map.get("unionid");//微博没有
|
||||
// String access_token = map.get("access_token");
|
||||
// String refresh_token = map.get("refresh_token");//微信,qq,微博都没有获取到
|
||||
// String expires_in = map.get("expires_in");
|
||||
// String name = map.get("name");
|
||||
// String gender = map.get("gender");
|
||||
// String iconurl = map.get("iconurl");
|
||||
//
|
||||
// if (isViewAttach() && MvpRef.get().getSelfActivity() != null) {
|
||||
// MvpRef.get().getSelfActivity().runOnUiThread(new Runnable() {
|
||||
// @Override
|
||||
// public void run() {
|
||||
// if (share_media.getName().equals(SHARE_MEDIA.QQ.getName())) {
|
||||
// thirdPartyLogin(uid, openid, 2, name, iconurl);
|
||||
// } else {
|
||||
// thirdPartyLogin(uid, openid, 1, name, iconurl);
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
|
||||
// Log.d(TAG, "onError " + "授权失败");
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onCancel(SHARE_MEDIA share_media, int i) {
|
||||
// Log.d(TAG, "onCancel " + "授权取消");
|
||||
// }
|
||||
// });
|
||||
}
|
||||
public void ysxl() {
|
||||
// ARouter.getInstance().build(ARouters.H5).withString("url", Constant.URL.URL_USER_YSXY).withString("title", "隐私协议").navigation();
|
||||
}
|
||||
|
||||
public void yhxy() {
|
||||
// ARouter.getInstance().build(ARouters.H5).withString("url", Constant.URL.URL_USER_YHXY).withString("title", "用户协议").navigation();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user