package com.edufound.reader.activity; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Color; 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.botsdk.BotRegisterListener; import com.edufound.reader.contract.UserInfoSettingContract; import com.edufound.reader.cusview.CusToast; import com.edufound.reader.listener.PopUtilClickListener; import com.edufound.reader.popwindow.PopWindowUtil; 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.SizeUtils; 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 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_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; @Override public int getLayoutId() { return R.layout.activity_userinfo_setting; } @SuppressLint("AutoDispose") @Override public void initView() { mActivity = this; mPresenter = new UserInfoSettingPresenter(); mPresenter.attachView(this); 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); }); addUiClickListener(mAgreementServices, o -> { if (mNickName.hasFocus()) { mNickName.clearFocus(); return; } Intent intent = new Intent(getActivity(), WebActivity.class); intent.putExtra("loadUrl", Consts.getAgreementServicesUrl()); getActivity().startActivity(intent); }); if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) { //百度渠道,隐藏注销和退出登录按钮 mCancellationLayout.setVisibility(View.GONE); mLoginOut.setVisibility(View.GONE); } else if (Consts.getUmengChannel().equals(ChannelCodeEnum.YIFANG.getChannelCode())) { //义方渠道 mCancellationLayout.setVisibility(View.VISIBLE); mLoginOut.setVisibility(View.VISIBLE); } addUiClickListener(mLoginOut, o -> { Logger.e("mLoginOut"); if (mNickName.hasFocus()) { mNickName.clearFocus(); return; } PopWindowUtil.showExitLoginWindow(mActivity, getRootView(), new PopUtilClickListener() { @Override public void clickCancel() { } @Override public void clickSubmit(Object obj) { Toast.makeText(mActivity, "退出账号", Toast.LENGTH_SHORT).show(); mPresenter.loginOut(); } }); }); 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) { Toast.makeText(mActivity, "注销账号", Toast.LENGTH_SHORT).show(); 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; } EfunboxUtil.userLogin(getActivity()); }); 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); 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); mPresenter.upadteMyInfo(Consts.getmConstsUserBean()); }); addUiClickListener(mGrade, o -> { 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()); } }); }); RxView.focusChanges(mNickName).subscribe(hasFocus -> { if (!hasFocus) { if (TextUtils.isEmpty(mNickName.getText().toString())) { // Toast.makeText(getActivity(), "请输入昵称", Toast.LENGTH_SHORT).show(); return; } hideSoftInput(); 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(); Consts.getmConstsUserBean().setNickName(mNickName.getText().toString().trim()); mPresenter.upadteMyInfo(Consts.getmConstsUserBean()); mNickName.clearFocus(); return true; } return false; } }); if (Consts.getmConstsBaiDuUserBean() != null) { mUserNum.setText("账号:" + Consts.getmConstsBaiDuUserBean().getUserInfo().getUserId()); } 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()); mGrade.setText(EfunboxUtil.getCNGradeByEnum(bean.getGrade())); 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.loadCircleWithBorderImage(getActivity(), bean.getAvatar(), mUserHead, SizeUtils.px2dp(getActivity(), 10), Color.WHITE); } } @Override public void loginOutSuccess() { for (int i = 0; i < EApplication.mActivityList.size(); i++) { EApplication.mActivityList.get(i).finish(); } Intent intent = new Intent(getActivity(), MainActivity.class); intent.putExtra("defaultIndex", 1); startActivity(intent); } @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 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); } }