123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550 |
- package com.edufound.reader.activity;
- import android.annotation.SuppressLint;
- import android.app.Activity;
- import android.content.Context;
- import android.content.Intent;
- import android.os.Handler;
- import android.text.InputFilter;
- import android.text.TextUtils;
- import android.view.KeyEvent;
- import android.view.View;
- import android.view.inputmethod.EditorInfo;
- import android.view.inputmethod.InputMethodManager;
- import android.widget.EditText;
- import android.widget.FrameLayout;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.baidu.duer.bot.directive.payload.AmountInfo;
- import com.baidu.duer.botsdk.BotIntent;
- import com.edufound.reader.R;
- import com.edufound.reader.annotation.BindView;
- import com.edufound.reader.application.EApplication;
- import com.edufound.reader.base.BaseMvpActivity;
- import com.edufound.reader.bean.ChannelCodeEnum;
- import com.edufound.reader.bean.UserBean;
- import com.edufound.reader.contract.UserInfoSettingContract;
- import com.edufound.reader.cusview.CusToast;
- import com.edufound.reader.listener.PopUtilClickListener;
- import com.edufound.reader.util.huaweiutil.HuaWeiUtil;
- import com.edufound.reader.util.miutil.MiSoundSDKUtil;
- import com.edufound.reader.popwindow.PopWindowUtil;
- import com.edufound.reader.presenter.PopWindowPresneter;
- import com.edufound.reader.presenter.UserInfoSettingPresenter;
- import com.edufound.reader.util.Consts;
- import com.edufound.reader.util.EfunboxUtil;
- import com.edufound.reader.util.GlideUtils;
- import com.edufound.reader.util.LongClickUtils;
- import com.edufound.reader.util.MMKVUtil;
- import com.jakewharton.rxbinding4.view.RxView;
- import com.orhanobut.logger.Logger;
- import java.util.HashMap;
- import androidx.annotation.NonNull;
- import io.reactivex.rxjava3.annotations.Nullable;
- public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPresenter> implements UserInfoSettingContract.View {
- Activity mActivity;
- @BindView(id = R.id.activity_userinfo_setting_back)
- ImageView mBack;
- @BindView(id = R.id.activity_userinfo_setting_loginout_layout)
- LinearLayout mLoginOut;
- @BindView(id = R.id.activity_userinfo_setting_privservices_layout)
- LinearLayout mPrivServices;
- @BindView(id = R.id.activity_userinfo_setting_services_layout)
- LinearLayout mAgreementServices;
- @BindView(id = R.id.activity_userinfo_setting_cancellation_layout)
- LinearLayout mCancellationLayout;
- @BindView(id = R.id.activity_userinfo_setting_bindwechat_layout)
- LinearLayout mBindWeChat;
- @BindView(id = R.id.activity_userinfo_setting_switchuser_layout)
- LinearLayout mSwitchLayout;
- @BindView(id = R.id.activity_userinfo_setting_bindphonenum_layout)
- LinearLayout mBindPhoneNumLayout;
- @BindView(id = R.id.activity_userinfo_setting_tousu_layout)
- LinearLayout mTouSuLayout;
- @BindView(id = R.id.activity_userinfo_setting_nickname)
- EditText mNickName;
- @BindView(id = R.id.activity_userinfo_setting_gender_male)
- FrameLayout mGenderMale;
- @BindView(id = R.id.activity_userinfo_setting_gender_female)
- FrameLayout mGenderFeMale;
- @BindView(id = R.id.activity_userinfo_setting_grade)
- TextView mGrade;
- @BindView(id = R.id.activity_userinfo_setting_userhead)
- ImageView mUserHead;
- @BindView(id = R.id.activity_userinfo_setting_userhead_num)
- TextView mUserNum;
- boolean hasBindPhone = false;
- @Override
- public int getLayoutId() {
- return R.layout.activity_userinfo_setting;
- }
- @SuppressLint("AutoDispose")
- @Override
- public void initView() {
- mActivity = this;
- mPresenter = new UserInfoSettingPresenter();
- mPresenter.attachView(this);
- setBackClick(mBack);
- addUiClickListener(mBack, o -> {
- mNickName.clearFocus();
- hideSoftInput();
- mActivity.finish();
- });
- addUiClickListener(mPrivServices, o -> {
- if (mNickName.hasFocus()) {
- mNickName.clearFocus();
- return;
- }
- Intent intent = new Intent(getActivity(), WebActivity.class);
- intent.putExtra("loadUrl", Consts.getPrivServiceUrl());
- getActivity().startActivity(intent);
- });
- {
- LongClickUtils.setLongClick(new Handler(), mUserHead, 5000, new View.OnLongClickListener() {
- @Override
- public boolean onLongClick(View v) {
- //todo:补充长按事件的处理逻辑
- if (MMKVUtil.getInstance().decodeString("loginVisibility").equals("0")) {
- mLoginOut.setVisibility(View.VISIBLE);
- MMKVUtil.getInstance().encode("loginVisibility", "1");
- } else {
- mLoginOut.setVisibility(View.GONE);
- MMKVUtil.getInstance().encode("loginVisibility", "0");
- }
- return true;
- }
- }, new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (Consts.getmConstsUserBean() != null) {
- CusToast.getInstance(mActivity).show("学号:" + Consts.getmConstsUserBean().getEid(), 2000);
- }
- }
- });
- //测试用
- if (MMKVUtil.getInstance().decodeString("loginVisibility").equals("0")) {
- mLoginOut.setVisibility(View.GONE);
- } else {
- mLoginOut.setVisibility(View.VISIBLE);
- }
- }
- addUiClickListener(mAgreementServices, o -> {
- if (mNickName.hasFocus()) {
- mNickName.clearFocus();
- return;
- }
- Intent intent = new Intent(getActivity(), WebActivity.class);
- intent.putExtra("loadUrl", Consts.getAgreementServicesUrl());
- getActivity().startActivity(intent);
- });
- mTouSuLayout.setVisibility(View.GONE);
- if (Consts.getUMengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
- //百度渠道,隐藏注销和退出登录按钮
- mCancellationLayout.setVisibility(View.GONE);
- mLoginOut.setVisibility(View.GONE);
- mBindPhoneNumLayout.setVisibility(View.GONE);
- } else if (Consts.getUMengChannel().equals(ChannelCodeEnum.YIFANG.getChannelCode())) {
- //义方渠道
- mCancellationLayout.setVisibility(View.VISIBLE);
- mLoginOut.setVisibility(View.VISIBLE);
- mBindPhoneNumLayout.setVisibility(View.GONE);
- } else if (Consts.getUMengChannel().equals(ChannelCodeEnum.TMAIL.getChannelCode())) {
- mSwitchLayout.setVisibility(View.GONE);
- mBindWeChat.setVisibility(View.GONE);
- mBindPhoneNumLayout.setVisibility(View.GONE);
- } else if (Consts.getUMengChannel().equals(ChannelCodeEnum.MISOUND.getChannelCode())) {
- mBindWeChat.setVisibility(View.GONE);
- mSwitchLayout.setVisibility(View.GONE);
- mBindPhoneNumLayout.setVisibility(View.VISIBLE);
- addUiClickListener(mBindPhoneNumLayout, o -> {
- if (hasBindPhone) {
- PopWindowUtil.miSoundLoginWindow(mActivity, getRootView(), MiSoundSDKUtil.MI_SOUND_SHOW_BINDPHONENUM, null);
- } else {
- PopWindowUtil.miSoundLoginWindow(mActivity, getRootView(), MiSoundSDKUtil.MI_SOUND_BIND_PHONENUM, new PopWindowPresneter.MISoundLoginCallBack() {
- @Override
- public void success() {
- Logger.e("绑定成功返回了!!!!!!!!!!!!!!!!!!!");
- hasBindPhone = true;
- }
- @Override
- public void closeWindow() {
- Logger.e("closeWindow");
- }
- });
- }
- });
- } else if (Consts.getUMengChannel().equals(ChannelCodeEnum.MISOUND.getChannelCode())) {
- mBindPhoneNumLayout.setVisibility(View.GONE);
- } else if (Consts.getUMengChannel().equals(ChannelCodeEnum.HUAWEI_LIANYUN.getChannelCode())) {
- mBindWeChat.setVisibility(View.GONE);
- mBindPhoneNumLayout.setVisibility(View.GONE);
- mSwitchLayout.setVisibility(View.GONE);
- mTouSuLayout.setVisibility(View.VISIBLE);
- } else if (Consts.getUMengChannel().equals(ChannelCodeEnum.BUBUGAO.getChannelCode()) ||
- Consts.getUMengChannel().equals(ChannelCodeEnum.LENOVO_PAD.getChannelCode()) ||
- Consts.getUMengChannel().equals(ChannelCodeEnum.JINGDONGFANG.getChannelCode()) ||
- Consts.getUMengChannel().equals(ChannelCodeEnum.XUNFEI.getChannelCode()) ||
- Consts.getUMengChannel().equals(ChannelCodeEnum.YIFANG.getChannelCode()) ||
- Consts.getUMengChannel().equals(ChannelCodeEnum.BAIDU_XUEXIJI.getChannelCode())) {
- mBindPhoneNumLayout.setVisibility(View.GONE);
- mBindWeChat.setVisibility(View.GONE);
- }
- addUiClickListener(mLoginOut, o -> {
- if (mNickName.hasFocus()) {
- mNickName.clearFocus();
- return;
- }
- PopWindowUtil.showExitLoginWindow(mActivity, getRootView(), new PopUtilClickListener() {
- @Override
- public void clickCancel() {
- }
- @Override
- public void clickSubmit(Object obj) {
- CusToast.getInstance(mActivity).show("退出账号", 2000);
- mPresenter.loginOut();
- if (Consts.getUMengChannel().equals(ChannelCodeEnum.HUAWEI_LIANYUN.getChannelCode())) {
- //华为联运还要退出华为账号
- HuaWeiUtil.signOut(mActivity);
- }
- }
- });
- });
- //隐藏注销按钮,都不要
- mCancellationLayout.setVisibility(View.GONE);
- addUiClickListener(mCancellationLayout, o -> {
- Logger.e("註銷按鈕");
- if (mNickName.hasFocus()) {
- mNickName.clearFocus();
- return;
- }
- PopWindowUtil.showCancellationAccountWindow(mActivity, getRootView(), new PopUtilClickListener() {
- @Override
- public void clickCancel() {
- }
- @Override
- public void clickSubmit(Object obj) {
- CusToast.getInstance(mActivity).show("注销账号", 2000);
- mPresenter.userCancellation();
- }
- });
- });
- addUiClickListener(mBindWeChat, o -> {
- if (mNickName.hasFocus()) {
- mNickName.clearFocus();
- return;
- }
- PopWindowUtil.showBindWeChatWindow(mActivity, getRootView(), null);
- });
- addUiClickListener(mSwitchLayout, o -> {
- if (mNickName.hasFocus()) {
- mNickName.clearFocus();
- return;
- }
- if (Consts.getUMengChannel().equals(ChannelCodeEnum.MISOUND.getChannelCode())) {
- //小米的特殊处理
- PopWindowUtil.miSoundLoginWindow(mActivity, getRootView(), MiSoundSDKUtil.MI_SOUND_QRCODE_UPDATE_USER, new PopWindowPresneter.MISoundLoginCallBack() {
- @Override
- public void success() {
- }
- @Override
- public void closeWindow() {
- Logger.e("closeWindow");
- mPresenter.checkLogin();
- }
- });
- return;
- }
- EfunboxUtil.userLogin(getActivity(), getRootView());
- });
- addUiClickListener(mGenderMale, o -> {
- if (mNickName.hasFocus()) {
- mNickName.clearFocus();
- return;
- }
- mGenderMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_true_bg);
- mGenderFeMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_bg);
- if (Consts.getmConstsUserBean() != null) {
- Consts.getmConstsUserBean().setGender("1");
- mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
- }
- });
- addUiClickListener(mGenderFeMale, o -> {
- if (mNickName.hasFocus()) {
- mNickName.clearFocus();
- return;
- }
- mGenderMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_bg);
- mGenderFeMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_true_bg);
- if (Consts.getmConstsUserBean() != null) {
- Consts.getmConstsUserBean().setGender("0");
- mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
- }
- });
- addUiClickListener(mGrade, o -> {
- try {
- if (mNickName.hasFocus()) {
- mNickName.clearFocus();
- return;
- }
- PopWindowUtil.showSelectGradeWindow(getActivity(), getRootView(), EfunboxUtil.getIndexGradeByEnum(mPresenter.getGradeEnum()), new PopUtilClickListener() {
- @Override
- public void clickCancel() {
- }
- @Override
- public void clickSubmit(Object object) {
- // Toast.makeText(getActivity(), "选择了:" + EfunboxUtil.getEnumByCNGrade(object.toString()), Toast.LENGTH_SHORT).show();
- Consts.getmConstsUserBean().setGrade(EfunboxUtil.getEnumByCNGrade(object.toString()));
- mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
- }
- });
- } catch (Exception e) {
- e.printStackTrace();
- }
- });
- RxView.focusChanges(mNickName).
- subscribe(hasFocus ->
- {
- if (!hasFocus) {
- if (TextUtils.isEmpty(mNickName.getText().toString())) {
- // Toast.makeText(getActivity(), "请输入昵称", Toast.LENGTH_SHORT).show();
- return;
- }
- hideSoftInput();
- if (Consts.mWordFilter.filter_jk_info2(mNickName.getText().toString().trim()).contains("")) {
- CusToast.getInstance(mActivity).show("请文明修改昵称", 2000);
- mNickName.setText(Consts.getmConstsUserBean().getNickName());
- return;
- } else {
- Consts.getmConstsUserBean().setNickName(mNickName.getText().toString().trim());
- mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
- }
- } else {
- mNickName.setFilters(new InputFilter[]{new InputFilter.LengthFilter(6)});
- }
- });
- mNickName.setOnEditorActionListener(new TextView.OnEditorActionListener() {
- @Override
- public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
- if (actionId == KeyEvent.ACTION_DOWN || actionId == EditorInfo.IME_ACTION_DONE) {
- if (TextUtils.isEmpty(mNickName.getText().toString())) {
- // CusToast.getInstance(mActivity).show("请输入昵称", 2000);
- Toast.makeText(mActivity, "请输入昵称", Toast.LENGTH_SHORT).show();
- return true;
- }
- hideSoftInput();
- if (Consts.mWordFilter.filter_jk_info2(mNickName.getText().toString().trim()).contains("")) {
- CusToast.getInstance(mActivity).show("请文明修改昵称", 2000);
- mNickName.setText(Consts.getmConstsUserBean().getNickName());
- return true;
- } else {
- Consts.getmConstsUserBean().setNickName(mNickName.getText().toString().trim());
- mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
- }
- mNickName.clearFocus();
- return true;
- }
- return false;
- }
- });
- if (Consts.getUMengChannel().equals(ChannelCodeEnum.BAIDU)) {
- if (Consts.getmConstsBaiDuUserBean() != null) {
- mUserNum.setText("账号:" + Consts.getmConstsBaiDuUserBean().getUserInfo().getUserId());
- }
- } else {
- mUserNum.setVisibility(View.INVISIBLE);
- }
- addUiClickListener(mTouSuLayout, new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- toNextActivity(ComplaintActivity.class);
- }
- });
- mPresenter.getMyInfo();
- }
- private void hideSoftInput() {
- InputMethodManager manager = ((InputMethodManager) Consts.getmApplicAtion().getSystemService(Context.INPUT_METHOD_SERVICE));
- if (manager != null) {
- manager.hideSoftInputFromWindow(mNickName.getWindowToken(), 0);
- }
- }
- @Override
- public void onGetDisconnect() {
- }
- @Override
- public void onGetMobileConnect() {
- }
- @Override
- public void onGetWifiConnect() {
- }
- @Override
- public void showLoading() {
- }
- @Override
- public void hideLoading() {
- }
- @Override
- public void onError(String errMessage) {
- }
- @Override
- public Activity getActivity() {
- return mActivity;
- }
- @Override
- public void getUserInfoSuccess(UserBean bean) {
- if (bean.getNickName().length() <= 6) {
- mNickName.setFilters(new InputFilter[]{new InputFilter.LengthFilter(6)});
- } else {
- mNickName.setFilters(new InputFilter[]{new InputFilter.LengthFilter(11)});
- }
- mNickName.setText(bean.getNickName());
- mNickName.setTag(bean.getUserId());
- mGrade.setText(EfunboxUtil.getCNGradeByEnum(bean.getGrade()));
- if (!TextUtils.isEmpty(bean.getMobile())) {
- hasBindPhone = true;
- }
- if (bean.getGender().equals("1")) {
- //男孩
- mGenderMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_true_bg);
- mGenderFeMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_bg);
- GlideUtils.loadImage(getActivity(), R.drawable.activity_userinfo_setting_boy, mUserHead);
- } else if (bean.getGender().equals("0")) {
- //女孩
- mGenderMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_bg);
- mGenderFeMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_true_bg);
- GlideUtils.loadImage(getActivity(), R.drawable.activity_userinfo_setting_girl, mUserHead);
- }
- if (bean.getAvatar() == null || bean.getAvatar().equals("")) {
- } else {
- GlideUtils.loadCircleImage(mActivity, bean.getAvatar(), mUserHead);
- }
- }
- @Override
- public void loginOutSuccess() {
- EApplication.reloadApp(-1);
- }
- @Override
- protected void onDestroy() {
- mPresenter.activityDestory();
- super.onDestroy();
- }
- @Override
- protected void botHandleIntent(BotIntent intent, String customData) {
- super.botHandleIntent(intent, customData);
- Logger.e(getLocalClassName() + "botHandleIntent");
- }
- @Override
- protected void botOnClickLink(String url, HashMap<String, String> paramMap) {
- super.botOnClickLink(url, paramMap);
- Logger.e(getLocalClassName() + "botOnClickLink");
- }
- @Override
- protected void botOnHandleScreenNavigatorEvent(int event) {
- super.botOnHandleScreenNavigatorEvent(event);
- Logger.e(getLocalClassName() + "botOnHandleScreenNavigatorEvent");
- }
- @Override
- protected void botOnLinkAccountSucceed(String s, String s1) {
- super.botOnLinkAccountSucceed(s, s1);
- Logger.e(getLocalClassName() + "botOnLinkAccountSucceed");
- // RequestBotSdkUtil.requestBuyProduct();
- }
- @Override
- protected void botOnChargeStatusUpdated(String purchaseResult, AmountInfo authorizationAmount, AmountInfo capturedAmount, long creationTimestamp, String baiduOrderReferenceId, String sellerOrderId, String msg) {
- super.botOnChargeStatusUpdated(purchaseResult, authorizationAmount, capturedAmount, creationTimestamp, baiduOrderReferenceId, sellerOrderId, msg);
- Logger.e(getLocalClassName() + "botOnChargeStatusUpdated");
- }
- @Override
- protected void botOnBuyStatusUpdated(@NonNull String purchaseResult, @NonNull String productId, @NonNull String baiduOrderId, @NonNull String sellerOrderId, @Nullable String msg, String token) {
- super.botOnBuyStatusUpdated(purchaseResult, productId, baiduOrderId, sellerOrderId, msg, token);
- Logger.e(getLocalClassName() + "botOnBuyStatusUpdated");
- }
- @Override
- protected void refUserInfo(UserBean bean) {
- super.refUserInfo(bean);
- getUserInfoSuccess(bean);
- }
- }
|