UserInfoSettingActivity.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. package com.edufound.reader.activity;
  2. import android.annotation.SuppressLint;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.graphics.Color;
  7. import android.text.InputFilter;
  8. import android.text.TextUtils;
  9. import android.view.KeyEvent;
  10. import android.view.View;
  11. import android.view.inputmethod.EditorInfo;
  12. import android.view.inputmethod.InputMethodManager;
  13. import android.widget.EditText;
  14. import android.widget.FrameLayout;
  15. import android.widget.ImageView;
  16. import android.widget.LinearLayout;
  17. import android.widget.TextView;
  18. import android.widget.Toast;
  19. import com.baidu.duer.bot.directive.payload.AmountInfo;
  20. import com.baidu.duer.botsdk.BotIntent;
  21. import com.edufound.reader.R;
  22. import com.edufound.reader.annotation.BindView;
  23. import com.edufound.reader.application.EApplication;
  24. import com.edufound.reader.base.BaseMvpActivity;
  25. import com.edufound.reader.bean.ChannelCodeEnum;
  26. import com.edufound.reader.bean.UserBean;
  27. import com.edufound.reader.botsdk.BotRegisterListener;
  28. import com.edufound.reader.contract.UserInfoSettingContract;
  29. import com.edufound.reader.listener.PopUtilClickListener;
  30. import com.edufound.reader.popwindow.PopWindowUtil;
  31. import com.edufound.reader.presenter.UserInfoSettingPresenter;
  32. import com.edufound.reader.util.Consts;
  33. import com.edufound.reader.util.EfunboxUtil;
  34. import com.edufound.reader.util.GlideUtils;
  35. import com.edufound.reader.util.SizeUtils;
  36. import com.jakewharton.rxbinding4.view.RxView;
  37. import com.orhanobut.logger.Logger;
  38. import java.util.HashMap;
  39. import androidx.annotation.NonNull;
  40. import io.reactivex.rxjava3.annotations.Nullable;
  41. public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPresenter> implements UserInfoSettingContract.View {
  42. Activity mActivity;
  43. @BindView(id = R.id.activity_userinfo_setting_back)
  44. ImageView mBack;
  45. @BindView(id = R.id.activity_userinfo_setting_loginout_layout)
  46. LinearLayout mLoginOut;
  47. @BindView(id = R.id.activity_userinfo_setting_privservices_layout)
  48. LinearLayout mPrivServices;
  49. @BindView(id = R.id.activity_userinfo_setting_services_layout)
  50. LinearLayout mAgreementServices;
  51. @BindView(id = R.id.activity_userinfo_setting_cancellation_layout)
  52. LinearLayout mCancellationLayout;
  53. @BindView(id = R.id.activity_userinfo_setting_bindwechat_layout)
  54. LinearLayout mBindWeChat;
  55. @BindView(id = R.id.activity_userinfo_setting_switchuser_layout)
  56. LinearLayout mSwitchLayout;
  57. @BindView(id = R.id.activity_userinfo_setting_nickname)
  58. EditText mNickName;
  59. @BindView(id = R.id.activity_userinfo_setting_gender_male)
  60. FrameLayout mGenderMale;
  61. @BindView(id = R.id.activity_userinfo_setting_gender_female)
  62. FrameLayout mGenderFeMale;
  63. @BindView(id = R.id.activity_userinfo_setting_grade)
  64. TextView mGrade;
  65. @BindView(id = R.id.activity_userinfo_setting_userhead)
  66. ImageView mUserHead;
  67. @Override
  68. public int getLayoutId() {
  69. return R.layout.activity_userinfo_setting;
  70. }
  71. @SuppressLint("AutoDispose")
  72. @Override
  73. public void initView() {
  74. mActivity = this;
  75. mPresenter = new UserInfoSettingPresenter();
  76. mPresenter.attachView(this);
  77. addUiClickListener(mBack, o -> {
  78. hideSoftInput();
  79. mActivity.finish();
  80. });
  81. addUiClickListener(mLoginOut, o -> {
  82. PopWindowUtil.showExitLoginWindow(mActivity, getRootView(), new PopUtilClickListener() {
  83. @Override
  84. public void clickCancel() {
  85. }
  86. @Override
  87. public void clickSubmit(Object obj) {
  88. Toast.makeText(mActivity, "退出账号", Toast.LENGTH_SHORT).show();
  89. mPresenter.loginOut();
  90. }
  91. });
  92. });
  93. addUiClickListener(mPrivServices, o -> {
  94. Intent intent = new Intent(getActivity(), WebActivity.class);
  95. intent.putExtra("loadUrl", Consts.getPrivServiceUrl());
  96. getActivity().startActivity(intent);
  97. });
  98. addUiClickListener(mAgreementServices, o -> {
  99. Intent intent = new Intent(getActivity(), WebActivity.class);
  100. intent.putExtra("loadUrl", Consts.getAgreementServicesUrl());
  101. getActivity().startActivity(intent);
  102. });
  103. if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
  104. //百度渠道,隐藏注销和退出登录按钮
  105. mCancellationLayout.setVisibility(View.GONE);
  106. mLoginOut.setVisibility(View.GONE);
  107. } else if (Consts.getUmengChannel().equals(ChannelCodeEnum.YIFANG.getChannelCode())) {
  108. //义方渠道
  109. mCancellationLayout.setVisibility(View.VISIBLE);
  110. mLoginOut.setVisibility(View.VISIBLE);
  111. }
  112. addUiClickListener(mCancellationLayout, o -> {
  113. PopWindowUtil.showCancellationAccountWindow(mActivity, getRootView(), new PopUtilClickListener() {
  114. @Override
  115. public void clickCancel() {
  116. }
  117. @Override
  118. public void clickSubmit(Object obj) {
  119. Toast.makeText(mActivity, "注销账号", Toast.LENGTH_SHORT).show();
  120. }
  121. });
  122. });
  123. addUiClickListener(mBindWeChat, o -> {
  124. PopWindowUtil.showBindWeChatWindow(mActivity, getRootView(), new PopUtilClickListener() {
  125. @Override
  126. public void clickCancel() {
  127. }
  128. @Override
  129. public void clickSubmit(Object object) {
  130. }
  131. });
  132. });
  133. addUiClickListener(mSwitchLayout, o -> {
  134. // BotRegisterListener.BaiDuLogin();
  135. if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
  136. //百度渠道调用百度的授权
  137. BotRegisterListener.getBaiDuVipInfo();
  138. } else if (Consts.getUmengChannel().equals(ChannelCodeEnum.YIFANG.getChannelCode())) {
  139. //义方调用普通版登录
  140. Intent tologin = new Intent(getActivity(), LoginAlertActivity.class);
  141. getActivity().startActivity(tologin);
  142. }
  143. });
  144. addUiClickListener(mGenderMale, o -> {
  145. mGenderMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_true_bg);
  146. mGenderFeMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_bg);
  147. Consts.getmConstsUserBean().setGender("1");
  148. mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
  149. });
  150. addUiClickListener(mGenderFeMale, o -> {
  151. mGenderMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_bg);
  152. mGenderFeMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_true_bg);
  153. Consts.getmConstsUserBean().setGender("0");
  154. mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
  155. });
  156. addUiClickListener(mGrade, o -> {
  157. PopWindowUtil.showSelectGradeWindow(getActivity(), getRootView(), EfunboxUtil.getIndexGradeByEnum(mPresenter.getGradeEnum()), new PopUtilClickListener() {
  158. @Override
  159. public void clickCancel() {
  160. }
  161. @Override
  162. public void clickSubmit(Object object) {
  163. Toast.makeText(getActivity(), "选择了:" + EfunboxUtil.getEnumByCNGrade(object.toString()), Toast.LENGTH_SHORT).show();
  164. Consts.getmConstsUserBean().setGrade(EfunboxUtil.getEnumByCNGrade(object.toString()));
  165. mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
  166. }
  167. });
  168. });
  169. RxView.focusChanges(mNickName).subscribe(hasFocus -> {
  170. if (!hasFocus) {
  171. if (TextUtils.isEmpty(mNickName.getText().toString())) {
  172. // Toast.makeText(getActivity(), "请输入昵称", Toast.LENGTH_SHORT).show();
  173. return;
  174. }
  175. hideSoftInput();
  176. Consts.getmConstsUserBean().setNickName(mNickName.getText().toString().trim());
  177. mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
  178. } else {
  179. mNickName.setFilters(new InputFilter[]{new InputFilter.LengthFilter(6)});
  180. }
  181. });
  182. mNickName.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  183. @Override
  184. public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
  185. if (actionId == KeyEvent.ACTION_DOWN || actionId == EditorInfo.IME_ACTION_DONE) {
  186. if (TextUtils.isEmpty(mNickName.getText().toString())) {
  187. Toast.makeText(getActivity(), "请输入昵称", Toast.LENGTH_SHORT).show();
  188. return true;
  189. }
  190. hideSoftInput();
  191. Consts.getmConstsUserBean().setNickName(mNickName.getText().toString().trim());
  192. mPresenter.upadteMyInfo(Consts.getmConstsUserBean());
  193. mNickName.clearFocus();
  194. return true;
  195. }
  196. return false;
  197. }
  198. });
  199. mPresenter.getMyInfo();
  200. }
  201. private void hideSoftInput() {
  202. InputMethodManager manager = ((InputMethodManager) Consts.getmApplicAtion().getSystemService(Context.INPUT_METHOD_SERVICE));
  203. if (manager != null) {
  204. manager.hideSoftInputFromWindow(mNickName.getWindowToken(), 0);
  205. }
  206. }
  207. @Override
  208. public void onGetDisconnect() {
  209. }
  210. @Override
  211. public void onGetMobileConnect() {
  212. }
  213. @Override
  214. public void onGetWifiConnect() {
  215. }
  216. @Override
  217. public void showLoading() {
  218. }
  219. @Override
  220. public void hideLoading() {
  221. }
  222. @Override
  223. public void onError(String errMessage) {
  224. }
  225. @Override
  226. public Activity getActivity() {
  227. return mActivity;
  228. }
  229. @Override
  230. public void getUserInfoSuccess(UserBean bean) {
  231. if (bean.getNickName().length() <= 6) {
  232. mNickName.setFilters(new InputFilter[]{new InputFilter.LengthFilter(6)});
  233. }
  234. mNickName.setText(bean.getNickName());
  235. mGrade.setText(EfunboxUtil.getCNGradeByEnum(bean.getGrade()));
  236. if (bean.getGender().equals("1")) {
  237. //男孩子
  238. mGenderMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_true_bg);
  239. mGenderFeMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_bg);
  240. mUserHead.setImageResource(R.drawable.activity_userinfo_setting_boy);
  241. } else if (bean.getGender().equals("0")) {
  242. //女孩子
  243. mGenderMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_bg);
  244. mGenderFeMale.setBackgroundResource(R.drawable.activity_userinfo_setting_item_sex_true_bg);
  245. mUserHead.setImageResource(R.drawable.activity_userinfo_setting_girl);
  246. }
  247. if (bean.getAvatar() == null || bean.getAvatar().equals("")) {
  248. } else {
  249. GlideUtils.loadCircleWithBorderImage(getActivity(), bean.getAvatar(), mUserHead, SizeUtils.px2dp(getActivity(), 10), Color.WHITE);
  250. }
  251. }
  252. @Override
  253. public void loginOutSuccess() {
  254. for (int i = 0; i < EApplication.mActivityList.size(); i++) {
  255. EApplication.mActivityList.get(i).finish();
  256. }
  257. Intent intent = new Intent(getActivity(), MainActivity.class);
  258. intent.putExtra("defaultIndex", 1);
  259. startActivity(intent);
  260. }
  261. @Override
  262. protected void onDestroy() {
  263. mPresenter.activityDestory();
  264. super.onDestroy();
  265. }
  266. @Override
  267. protected void botHandleIntent(BotIntent intent, String customData) {
  268. super.botHandleIntent(intent, customData);
  269. Logger.e(getLocalClassName() + "botHandleIntent");
  270. }
  271. @Override
  272. protected void botOnClickLink(String url, HashMap<String, String> paramMap) {
  273. super.botOnClickLink(url, paramMap);
  274. Logger.e(getLocalClassName() + "botOnClickLink");
  275. }
  276. @Override
  277. protected void botOnHandleScreenNavigatorEvent(int event) {
  278. super.botOnHandleScreenNavigatorEvent(event);
  279. Logger.e(getLocalClassName() + "botOnHandleScreenNavigatorEvent");
  280. }
  281. @Override
  282. protected void botOnLinkAccountSucceed(String s, String s1) {
  283. super.botOnLinkAccountSucceed(s, s1);
  284. Logger.e(getLocalClassName() + "botOnLinkAccountSucceed");
  285. // RequestBotSdkUtil.requestBuyProduct();
  286. }
  287. @Override
  288. protected void botOnChargeStatusUpdated(String purchaseResult, AmountInfo authorizationAmount, AmountInfo capturedAmount, long creationTimestamp, String baiduOrderReferenceId, String sellerOrderId, String msg) {
  289. super.botOnChargeStatusUpdated(purchaseResult, authorizationAmount, capturedAmount, creationTimestamp, baiduOrderReferenceId, sellerOrderId, msg);
  290. Logger.e(getLocalClassName() + "botOnChargeStatusUpdated");
  291. }
  292. @Override
  293. protected void botOnBuyStatusUpdated(@NonNull String purchaseResult, @NonNull String productId, @NonNull String baiduOrderId, @NonNull String sellerOrderId, @Nullable String msg, String token) {
  294. super.botOnBuyStatusUpdated(purchaseResult, productId, baiduOrderId, sellerOrderId, msg, token);
  295. Logger.e(getLocalClassName() + "botOnBuyStatusUpdated");
  296. }
  297. @Override
  298. protected void refUserInfo(UserBean bean) {
  299. super.refUserInfo(bean);
  300. getUserInfoSuccess(bean);
  301. }
  302. }