SplashPresenter.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. package com.edufound.reader.presenter;
  2. import android.content.Intent;
  3. import android.net.Uri;
  4. import android.text.TextUtils;
  5. import com.baidu.duer.membersdk.MemberSdkManager;
  6. import com.baidu.duer.membersdk.constant.MemberSdkConstants;
  7. import com.edufound.reader.activity.MainActivity;
  8. import com.edufound.reader.activity.RecordActivity;
  9. import com.edufound.reader.activity.SmallFullVideoActivity;
  10. import com.edufound.reader.apiserver.ActivityEventServerImpl;
  11. import com.edufound.reader.apiserver.OrderApiServerImpl;
  12. import com.edufound.reader.apiserver.UserApiServerImpl;
  13. import com.edufound.reader.base.BaseActivity;
  14. import com.edufound.reader.base.BasePresenter;
  15. import com.edufound.reader.bean.ActivityEventBean;
  16. import com.edufound.reader.bean.ChannelCodeEnum;
  17. import com.edufound.reader.bean.HttpResultBean;
  18. import com.edufound.reader.bean.SignBean;
  19. import com.edufound.reader.bean.ThroughType;
  20. import com.edufound.reader.bean.ThroughTypeBean;
  21. import com.edufound.reader.bean.UserBean;
  22. import com.edufound.reader.contract.SplashContract;
  23. import com.edufound.reader.cusview.CusToast;
  24. import com.edufound.reader.listener.PopUtilClickListener;
  25. import com.edufound.reader.popwindow.PopWindowUtil;
  26. import com.edufound.reader.util.Consts;
  27. import com.edufound.reader.util.DeviceUuidFactory;
  28. import com.edufound.reader.util.EfunboxUtil;
  29. import com.edufound.reader.util.MMKVEncodeKey;
  30. import com.edufound.reader.util.MMKVUtil;
  31. import com.edufound.reader.util.ThroughUtil;
  32. import com.google.gson.reflect.TypeToken;
  33. import com.okhttplib.HttpInfo;
  34. import com.okhttplib.callback.Callback;
  35. import com.orhanobut.logger.Logger;
  36. import org.json.JSONException;
  37. import org.json.JSONObject;
  38. import java.io.IOException;
  39. public class SplashPresenter extends BasePresenter implements SplashContract.Presenter {
  40. UserApiServerImpl mUserApi;
  41. OrderApiServerImpl mOrderApi;
  42. ActivityEventServerImpl mEventApi;
  43. public SplashPresenter() {
  44. mUserApi = new UserApiServerImpl();
  45. mOrderApi = new OrderApiServerImpl();
  46. mEventApi = new ActivityEventServerImpl();
  47. }
  48. private void getScheme(Intent intent) {
  49. Uri getIntentUri = null;
  50. if (intent != null) {
  51. //有intent或者scheme
  52. if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
  53. //判断是百度渠道
  54. if (intent != null && intent.hasExtra(MemberSdkConstants.BOTAPP_OPEN_PARAMS_ACTIVE_INFO)) {
  55. String infoData = intent.getStringExtra(MemberSdkConstants.BOTAPP_OPEN_PARAMS_ACTIVE_INFO);
  56. MemberSdkManager.getInstance().setShowParameter(infoData);
  57. }
  58. if (intent.getStringExtra("url") != null && !intent.getStringExtra("url").equals("")) {
  59. getIntentUri = Uri.parse(intent.getStringExtra("url"));
  60. }
  61. //efunbox://com.edufound.reader/splash?resid=11132
  62. } else if (Consts.getUmengChannel().equals(ChannelCodeEnum.TMAIL.getChannelCode())) {
  63. //天猫渠道
  64. getIntentUri = intent.getData();
  65. }
  66. }
  67. //efunbox://com.edufound.reader/splash?exampleId=103126003&backModel=home&type=typeA (直接去朗读页面参数)
  68. //efunbox://com.edufound.reader/splash?userReadId=1610706272358766&backModel=home&type=typeB (根据id把视频提前)
  69. //efunbox://com.edufound.reader/splash?userReadId=1610706272358766&backModel=home&type=typeC (根据id把视频提前)
  70. // getIntentUri = Uri.parse("efunbox://com.edufound.reader/splash?exampleId=103126003&backModel=home&type=typeA");
  71. //判断获取的uri是不是空的
  72. if (getIntentUri != null) {
  73. String type = getIntentUri.getQueryParameter("type");
  74. if (getIntentUri.getQueryParameter("type") != null) {
  75. ThroughUtil.mThroughTypeBean = new ThroughTypeBean();
  76. if (type.equals(ThroughType.TYPEA.getTypeCode())) {
  77. //typeA类型,直接进入朗读界面
  78. Logger.e("进入了TypeA类型");
  79. ThroughUtil.mThroughTypeBean.setmThroughType(ThroughType.TYPEA.getTypeCode());
  80. ThroughUtil.mThroughTypeBean.setExampleId(getIntentUri.getQueryParameter("exampleId"));
  81. //backModel只有app和home两个值,app是直接退出应用,home是返回首页
  82. ThroughUtil.mThroughTypeBean.setBackModel(getIntentUri.getQueryParameter("backModel"));
  83. Logger.e("getIntentUri.getQueryParameter(\"exampleId\"):" + getIntentUri.getQueryParameter("exampleId"));
  84. Logger.e("getIntentUri.getQueryParameter(\"backModel\"):" + getIntentUri.getQueryParameter("backModel"));
  85. //暂时还没处理defaultIndex
  86. // String defaultIndex = getIntentUri.getQueryParameter("backDefaultIndex");
  87. // if (!TextUtils.isEmpty(defaultIndex)) {
  88. // ThroughUtil.mThroughTypeBean.setBackDefaultIndex(getIntentUri.getQueryParameter("backDefaultIndex"));
  89. // } else {
  90. // ThroughUtil.mThroughTypeBean.setBackDefaultIndex("0");
  91. // }
  92. ((BaseActivity) mView.getActivity()).toNextActivity(RecordActivity.class);
  93. } else if (type.equals(ThroughType.TYPEB.getTypeCode())) {
  94. Logger.e("进入了TypeB类型");
  95. //把收到的ID视频提到第一个
  96. ThroughUtil.mThroughTypeBean.setmThroughType(ThroughType.TYPEB.getTypeCode());
  97. ThroughUtil.mThroughTypeBean.setUserReadId(getIntentUri.getQueryParameter("userReadId"));
  98. } else if (type.equals(ThroughType.TYPEC.getTypeCode())) {
  99. ThroughUtil.mThroughTypeBean.setmThroughType(ThroughType.TYPEC.getTypeCode());
  100. ThroughUtil.mThroughTypeBean.setUserReadId(getIntentUri.getQueryParameter("userReadId"));
  101. ThroughUtil.mThroughTypeBean.setBackModel(getIntentUri.getQueryParameter("backModel"));
  102. ((BaseActivity) mView.getActivity()).toNextActivity(SmallFullVideoActivity.class);
  103. }
  104. }
  105. } else {
  106. //如果什么都没有得到,就默认跳转首页
  107. ((BaseActivity) mView.getActivity()).toNextActivity(MainActivity.class);
  108. }
  109. mView.getActivity().finish();
  110. }
  111. public void getUserInfo(Intent intent) {
  112. mUserApi.isLogin(mView.getActivity(), DeviceUuidFactory.getUuid(), new Callback() {
  113. @Override
  114. public void onSuccess(HttpInfo info) throws IOException {
  115. try {
  116. JSONObject object = new JSONObject(info.getRetDetail());
  117. if (object.getString("code").equals("300") || object.getInt("code") == 300) {
  118. //没有用户数据
  119. if (TextUtils.isEmpty(MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE))) {
  120. //没有选择过年纪,选择年纪
  121. Logger.e("TextUtils.isEmpty(MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE)");
  122. // showSelectGradeWindow();
  123. } else {
  124. Logger.e("TextUtils.isEmpty(MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE)--else");
  125. //选择过年纪。无处理
  126. }
  127. // registerMobile("18655365222");
  128. getYFVip();
  129. } else {
  130. HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
  131. }.getType());
  132. Consts.setUID(bean.getData().getUid());
  133. //用户是否登录,登录了,创建Consts的userbean
  134. Consts.setmConstsUserBean(bean.getData());
  135. mUserApi.loginSign(mView.getActivity(), new Callback() {
  136. @Override
  137. public void onSuccess(HttpInfo info) throws IOException {
  138. try {
  139. HttpResultBean<SignBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<SignBean>>() {
  140. }.getType());
  141. if (bean.getData() != null) {
  142. if (bean.getData().getIsSign()) {
  143. CusToast.getInstance(mView.getActivity()).show("恭喜签到成功\n奖励" + bean.getData().getCount() + "朵小红花", 2000);
  144. }
  145. } else {
  146. Logger.e("签到参数 isSign是空的");
  147. }
  148. } catch (Exception e) {
  149. e.printStackTrace();
  150. } finally {
  151. getYFVip();
  152. }
  153. }
  154. @Override
  155. public void onFailure(HttpInfo info) throws IOException {
  156. Logger.e("info:" + info.getRetDetail());
  157. }
  158. });
  159. }
  160. } catch (JSONException e) {
  161. e.printStackTrace();
  162. } finally {
  163. //无论如何最后走判断
  164. getScheme(intent);
  165. }
  166. }
  167. @Override
  168. public void onFailure(HttpInfo info) throws IOException {
  169. if (TextUtils.isEmpty(MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE))) {
  170. //没有选择过年纪,选择年纪
  171. // showSelectGradeWindow();
  172. } else {
  173. //选择过年纪。无处理
  174. }
  175. }
  176. });
  177. }
  178. private void getYFVip() {
  179. if (!Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
  180. //不是百度渠道,检查是否是义方VIP
  181. if (Consts.getmConstsUserBean() != null) {
  182. mOrderApi.getAuth(mView.getActivity(), new Callback() {
  183. @Override
  184. public void onSuccess(HttpInfo info) throws IOException {
  185. HttpResultBean<String> bean = info.getRetDetail(new TypeToken<HttpResultBean<String>>() {
  186. }.getType());
  187. if (!TextUtils.isEmpty(bean.getData())) {
  188. Consts.setIsYFVip(true);
  189. }
  190. }
  191. @Override
  192. public void onFailure(HttpInfo info) throws IOException {
  193. }
  194. });
  195. }
  196. }
  197. }
  198. }