فهرست منبع

1.学有义方天猫精灵问题协助修改
2.朗读配音天猫精灵活动也0元兑换
3.朗读配音天猫精灵活动也0元兑换接口
4.朗读配音透传参数逻辑重构修改

FailedToRead 2 سال پیش
والد
کامیت
a3973a6fdb
20فایلهای تغییر یافته به همراه319 افزوده شده و 126 حذف شده
  1. 26 0
      app/src/exception/layout/activity_event_pay.xml
  2. 30 1
      app/src/main/java/com/edufound/reader/activity/EventPayActivity.java
  3. 35 44
      app/src/main/java/com/edufound/reader/activity/MainActivity.java
  4. 11 2
      app/src/main/java/com/edufound/reader/activity/WebActivity.java
  5. 2 1
      app/src/main/java/com/edufound/reader/adapter/EventPayItemAdapter.java
  6. 7 0
      app/src/main/java/com/edufound/reader/apiserver/OrderApiServerImpl.java
  7. 16 0
      app/src/main/java/com/edufound/reader/bean/ThroughType.java
  8. 27 0
      app/src/main/java/com/edufound/reader/bean/ThroughTypeA.java
  9. 18 0
      app/src/main/java/com/edufound/reader/bean/ThroughTypeB.java
  10. 3 0
      app/src/main/java/com/edufound/reader/contract/EventPayContract.java
  11. 1 0
      app/src/main/java/com/edufound/reader/contract/WebContract.java
  12. 5 0
      app/src/main/java/com/edufound/reader/jsinterfaces/WebActivityJsInterfaces.java
  13. 2 0
      app/src/main/java/com/edufound/reader/model/TmailPayModel.java
  14. 36 2
      app/src/main/java/com/edufound/reader/presenter/EventPayPresenter.java
  15. 12 1
      app/src/main/java/com/edufound/reader/presenter/RecommendFragmentPresenter.java
  16. 6 4
      app/src/main/java/com/edufound/reader/presenter/RecordPresenter.java
  17. 1 0
      app/src/main/java/com/edufound/reader/presenter/WebPresenter.java
  18. 68 70
      app/src/main/java/com/edufound/reader/tmailsdk/TMailSDKUtil.java
  19. 12 0
      app/src/main/java/com/edufound/reader/util/ThroughUtil.java
  20. 1 1
      app/src/main/res/values/colors.xml

+ 26 - 0
app/src/exception/layout/activity_event_pay.xml

@@ -69,4 +69,30 @@
 
     </FrameLayout>
 
+    <FrameLayout
+        android:id="@+id/activity_event_pay_zero_layout"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:background="@color/translucent_background"
+        android:clickable="false"
+        android:visibility="gone">
+
+        <ImageView
+            android:id="@+id/activity_event_pay_zero_img"
+            android:layout_width="409dp"
+            android:layout_height="391dp"
+            android:layout_gravity="center"
+            android:scaleType="fitXY"></ImageView>
+
+        <ImageView
+            android:id="@+id/activity_event_pay_zero_close"
+            android:layout_width="50dp"
+            android:layout_height="50dp"
+            android:layout_gravity="center"
+            android:layout_marginTop="250dp"
+            android:src="@drawable/close_icon"></ImageView>
+
+    </FrameLayout>
+
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 30 - 1
app/src/main/java/com/edufound/reader/activity/EventPayActivity.java

@@ -3,8 +3,10 @@ package com.edufound.reader.activity;
 import android.app.Activity;
 import android.content.Intent;
 import android.graphics.Rect;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.FrameLayout;
 import android.widget.ImageView;
 
 import androidx.annotation.Nullable;
@@ -36,6 +38,16 @@ public class EventPayActivity extends BaseMvpActivity<EventPayPresenter> impleme
     @BindView(id = R.id.activity_pay_tomyorder)
     ImageView mToMyOrder;
 
+
+    @BindView(id = R.id.activity_event_pay_zero_layout)
+    FrameLayout mZeroLayout;
+
+    @BindView(id = R.id.activity_event_pay_zero_img)
+    ImageView mZeroImage;
+
+    @BindView(id = R.id.activity_event_pay_zero_close)
+    ImageView mZeroClose;
+
     @Override
     public int getLayoutId() {
         return R.layout.activity_event_pay;
@@ -59,6 +71,16 @@ public class EventPayActivity extends BaseMvpActivity<EventPayPresenter> impleme
         addUiClickListener(mToMyOrder, o -> {
             PopWindowUtil.showMyOrderWindow(mActivity, getRootView());
         });
+
+        addUiClickListener(mZeroClose, o -> {
+            mZeroLayout.setVisibility(View.GONE);
+        });
+        mZeroLayout.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                return true;
+            }
+        });
     }
 
     @Override
@@ -112,10 +134,17 @@ public class EventPayActivity extends BaseMvpActivity<EventPayPresenter> impleme
     @Override
     public void getProductListSuccess(EventPayItemAdapter adapter) {
         mRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity, LinearLayoutManager.HORIZONTAL, false));
-        mRecyclerView.addItemDecoration(new SpacesItemDecoration(SizeUtils.dp2px(mActivity, 21)));
+        if (mRecyclerView.getItemDecorationCount() <= 0) {
+            mRecyclerView.addItemDecoration(new SpacesItemDecoration(SizeUtils.dp2px(mActivity, 21)));
+        }
         mRecyclerView.setAdapter(adapter);
     }
 
+    @Override
+    public ImageView getZeroImg() {
+        return mZeroImage;
+    }
+
     class SpacesItemDecoration extends RecyclerView.ItemDecoration {
         private int space;
 

+ 35 - 44
app/src/main/java/com/edufound/reader/activity/MainActivity.java

@@ -8,14 +8,12 @@ import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.res.Configuration;
 import android.net.Uri;
-import android.os.Bundle;
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
-import android.widget.TextView;
 
 import com.baidu.duer.bot.directive.payload.AmountInfo;
 import com.baidu.duer.botsdk.BotIntent;
@@ -27,14 +25,15 @@ import com.edufound.reader.application.EApplication;
 import com.edufound.reader.base.BaseActivity;
 import com.edufound.reader.base.BaseMvpActivity;
 import com.edufound.reader.bean.ChannelCodeEnum;
-import com.edufound.reader.bean.UserEventEnum;
+import com.edufound.reader.bean.ThroughType;
+import com.edufound.reader.bean.ThroughTypeA;
+import com.edufound.reader.bean.ThroughTypeB;
 import com.edufound.reader.contract.MainContract;
-import com.edufound.reader.listener.PopUtilClickListener;
 import com.edufound.reader.popwindow.PopWindowUtil;
 import com.edufound.reader.presenter.MainPresenter;
 import com.edufound.reader.receiver.BackPageReceiver;
 import com.edufound.reader.util.Consts;
-import com.edufound.reader.util.EfunboxUtil;
+import com.edufound.reader.util.ThroughUtil;
 import com.orhanobut.logger.Logger;
 
 import java.util.HashMap;
@@ -90,53 +89,45 @@ public class MainActivity extends BaseMvpActivity<MainPresenter> implements Main
         mPresenter.checkModelIsDebug();
 
 
-        if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
-            if (getIntent() != null && getIntent().hasExtra(MemberSdkConstants.BOTAPP_OPEN_PARAMS_ACTIVE_INFO)) {
-                String infoData = getIntent().getStringExtra(MemberSdkConstants.BOTAPP_OPEN_PARAMS_ACTIVE_INFO);
-                MemberSdkManager.getInstance().setShowParameter(infoData);
-            }
-
-            //走百度的逻辑
-            if (getIntent() != null && getIntent().getStringExtra("url") != null && !getIntent().getStringExtra("url").equals("")) {
+        Uri getIntentUri = null;
+        if (getIntent() != null && getIntent().getStringExtra("url") != null && !getIntent().getStringExtra("url").equals("")) {
+            //有intent或者scheme
+            if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
+                //判断是百度渠道
+                if (getIntent() != null && getIntent().hasExtra(MemberSdkConstants.BOTAPP_OPEN_PARAMS_ACTIVE_INFO)) {
+                    String infoData = getIntent().getStringExtra(MemberSdkConstants.BOTAPP_OPEN_PARAMS_ACTIVE_INFO);
+                    MemberSdkManager.getInstance().setShowParameter(infoData);
+                }
+                getIntentUri = Uri.parse(getIntent().getStringExtra("url"));
                 //efunbox://com.edufound.reader/main?resid=11132
-                Uri uri = Uri.parse(getIntent().getStringExtra("url"));
-                String exampleId = uri.getQueryParameter("exampleId");
-                String backModel = uri.getQueryParameter("backModel");
-                Logger.e("从百度获取的url:" + uri);
-                if (exampleId == null || exampleId.equals("")) {
-
-                } else {
-                    Bundle bundle = new Bundle();
-                    bundle.putString("exampleId", exampleId);
-                    bundle.putString("backModel", backModel);
-                    toNextActivity(RecordActivity.class, bundle);
+            } else if (Consts.getUmengChannel().equals(ChannelCodeEnum.TMAIL.getChannelCode())) {
+                //天猫渠道
+                getIntentUri = getIntent().getData();
 
-                }
             }
-        } else if (Consts.getUmengChannel().equals(ChannelCodeEnum.TMAIL.getChannelCode())) {
-            //走天猫的逻辑
-            Uri uri = getIntent().getData();
-//            uri = Uri.parse("efunbox://com.edufound.reader/main?pkg=com.edufound.reader&spm_url=a1z3lt.93871__5.113990__1__113993__3.1&src_page_id=32EBE680BE5914F6240E4CD941CA77B01650506084917&src_click_id=32EBE680BE5914F6240E4CD941CA77B01650506089830&exampleId=103126001&backModel=home");
-            if (uri != null) {
-                Logger.e("从天猫获取的:" + uri);
-                String exampleId = uri.getQueryParameter("exampleId");
-                String backModel = uri.getQueryParameter("backModel");
-                if (exampleId == null || exampleId.equals("")) {
-
-                } else {
-                    Bundle bundle = new Bundle();
-                    bundle.putString("exampleId", exampleId);
-                    bundle.putString("backModel", backModel);
-                    toNextActivity(RecordActivity.class, bundle);
-
-                }
+        }
+        getIntentUri = Uri.parse("efunbox://com.edufound.reader/main?pkg=com.edufound.reader&spm_url=a1z3lt.93871__5.113990__1__113993__3.1&src_page_id=32EBE680BE5914F6240E4CD941CA77B01650506084917&src_click_id=32EBE680BE5914F6240E4CD941CA77B01650506089830&exampleId=103126001&backModel=home&type=typeB");
+        //判断获取的uri是不是空的
+        if (getIntentUri != null) {
+            String type = getIntentUri.getQueryParameter("type");
+            if (type.equals(ThroughType.TYPEA.getTypeCode())) {
+                //typeA类型,直接进入朗读界面
+                ThroughUtil.mThroughTypeA = new ThroughTypeA();
+                ThroughUtil.mThroughType = ThroughType.TYPEA;
+                ThroughUtil.mThroughTypeA.setExampleId(getIntentUri.getQueryParameter("exampleId"));
+                //backModel只有app和home两个值,app是直接退出应用,home是返回首页
+                ThroughUtil.mThroughTypeA.setBackModel(getIntentUri.getQueryParameter("backModel"));
+                toNextActivity(RecordActivity.class);
+            } else if (type.equals(ThroughType.TYPEB.getTypeCode())) {
+                //把收到的ID视频提到第一个
+                ThroughUtil.mThroughTypeB = new ThroughTypeB();
+                ThroughUtil.mThroughType = ThroughType.TYPEB;
+                ThroughUtil.mThroughTypeB.setExampleId(getIntentUri.getQueryParameter("exampleId"));
             }
 
-
         }
 
 
-
     }
 
     @Override

+ 11 - 2
app/src/main/java/com/edufound/reader/activity/WebActivity.java

@@ -36,8 +36,7 @@ public class WebActivity extends BaseMvpActivity<WebPresenter> implements WebCon
         mPresenter.attachView(this);
         mWebFrame.addView(mPresenter.initWebView(getIntent()));
         addUiClickListener(mBack, o -> {
-            android.os.Process.killProcess(Process.myPid());
-            finish();
+            closeWebActivity();
         });
     }
 
@@ -72,6 +71,11 @@ public class WebActivity extends BaseMvpActivity<WebPresenter> implements WebCon
     }
 
     @Override
+    protected void onResume() {
+        super.onResume();
+    }
+
+    @Override
     public Activity getActivity() {
         return mActivity;
     }
@@ -81,4 +85,9 @@ public class WebActivity extends BaseMvpActivity<WebPresenter> implements WebCon
         return findViewById(android.R.id.content);
     }
 
+    @Override
+    public void closeWebActivity() {
+        android.os.Process.killProcess(Process.myPid());
+        finish();
+    }
 }

+ 2 - 1
app/src/main/java/com/edufound/reader/adapter/EventPayItemAdapter.java

@@ -55,7 +55,8 @@ public class EventPayItemAdapter extends RecyclerView.Adapter<EventPayItemHolder
 
         holder.mMoney.setText(df.format(Double.parseDouble(mListData.get(position).getFinalAmount()) / 100));
         holder.mDetail.setText("原价:" + df.format(Double.parseDouble(mListData.get(position).getProduct().getOriginPrice()) / 100) + ",现价:" + df.format(Double.parseDouble(mListData.get(position).getProduct().getPrice()) / 100) + "元");
-        holder.mRFDetail.setText("抵用券减" + (mListData.get(position).getVoucherAmount() + "元  剩余小红花" + mListData.get(position).getRedFlower() + "朵"));
+        holder.mRFDetail.setText("抵用券减" + df.format(Double.parseDouble(mListData.get(position).getVoucherAmount()) / 100) + "元  剩余小红花" + mListData.get(position).getRedFlower() + "朵");
+        ;
         holder.mTitle.setText(mListData.get(position).getProduct().getTitle());
         RxView.clicks(holder.itemView).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
             if (mItemClickListener != null) {

+ 7 - 0
app/src/main/java/com/edufound/reader/apiserver/OrderApiServerImpl.java

@@ -46,6 +46,11 @@ public class OrderApiServerImpl implements OrderApiServer {
     }
 
     @Override
+    public void zeroPay(Activity activity, String orderId, Callback callback) {
+        OkHttpClient.doPostAsync(activity, new HttpInfo.Builder().setUrl(API + "/order/genie/activity/pay").addParam("orderId", orderId), callback);
+    }
+
+    @Override
     public void getAuth(Activity activity, Callback callback) {
         OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/auth"), callback);
     }
@@ -67,4 +72,6 @@ interface OrderApiServer {
     void getAuth(Callback callback);
 
     void getFlowerEventProductList(Activity activity, Callback callback);
+
+    void zeroPay(Activity activity, String orderId, Callback callback);
 }

+ 16 - 0
app/src/main/java/com/edufound/reader/bean/ThroughType.java

@@ -0,0 +1,16 @@
+package com.edufound.reader.bean;
+
+public enum ThroughType {
+    TYPEA {
+        public String getTypeCode() {//枚举对象实现抽象方法
+            return "typeA";
+        }
+    },
+    TYPEB {
+        public String getTypeCode() {//枚举对象实现抽象方法
+            return "typeB";
+        }
+    };
+
+    public abstract String getTypeCode();//定义抽象方法
+}

+ 27 - 0
app/src/main/java/com/edufound/reader/bean/ThroughTypeA.java

@@ -0,0 +1,27 @@
+package com.edufound.reader.bean;
+
+/**
+ * 通过scheme或者intent打开应用透传参数进行相应操作(Type=A)
+ * 直接进入朗读页面
+ * */
+public class ThroughTypeA {
+
+    private String exampleId;
+    private String backModel;
+
+    public String getExampleId() {
+        return exampleId;
+    }
+
+    public void setExampleId(String exampleId) {
+        this.exampleId = exampleId;
+    }
+
+    public String getBackModel() {
+        return backModel;
+    }
+
+    public void setBackModel(String backModel) {
+        this.backModel = backModel;
+    }
+}

+ 18 - 0
app/src/main/java/com/edufound/reader/bean/ThroughTypeB.java

@@ -0,0 +1,18 @@
+package com.edufound.reader.bean;
+
+/**
+ * 通过scheme或者intent打开应用透传参数进行相应操作(Type=B)
+ * 进入首页,把收到的id在list里面循环找到提到第一位
+ * */
+public class ThroughTypeB {
+
+    private String exampleId;
+
+    public String getExampleId() {
+        return exampleId;
+    }
+
+    public void setExampleId(String exampleId) {
+        this.exampleId = exampleId;
+    }
+}

+ 3 - 0
app/src/main/java/com/edufound/reader/contract/EventPayContract.java

@@ -1,6 +1,7 @@
 package com.edufound.reader.contract;
 
 import android.content.Intent;
+import android.widget.ImageView;
 
 import com.edufound.reader.adapter.EventPayItemAdapter;
 import com.edufound.reader.base.BaseView;
@@ -14,6 +15,8 @@ public interface EventPayContract {
 
     interface View extends BaseView {
         void getProductListSuccess(EventPayItemAdapter adapter);
+
+        ImageView getZeroImg();
     }
 
     interface Presenter {

+ 1 - 0
app/src/main/java/com/edufound/reader/contract/WebContract.java

@@ -12,6 +12,7 @@ public interface WebContract {
     }
 
     interface View extends BaseView {
+        void closeWebActivity();
     }
 
     interface Presenter {

+ 5 - 0
app/src/main/java/com/edufound/reader/jsinterfaces/WebActivityJsInterfaces.java

@@ -20,4 +20,9 @@ public class WebActivityJsInterfaces {
         Intent intent = new Intent(mView.getActivity(), EventPayActivity.class);
         mView.getActivity().startActivity(intent);
     }
+
+    @JavascriptInterface
+    public void closeWebActivity() {
+        mView.closeWebActivity();
+    }
 }

+ 2 - 0
app/src/main/java/com/edufound/reader/model/TmailPayModel.java

@@ -23,6 +23,8 @@ public class TmailPayModel implements TmailPayContract.Model {
     }
 
 
+
+
 //    @Override
 //    public void isPay(Activity activity, String orderId, Callback callback) {
 //        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/order/info/" + orderId), callback);

+ 36 - 2
app/src/main/java/com/edufound/reader/presenter/EventPayPresenter.java

@@ -4,6 +4,7 @@ import android.app.Activity;
 import android.content.Intent;
 import android.graphics.Rect;
 import android.view.View;
+import android.widget.FrameLayout;
 import android.widget.Toast;
 
 import androidx.recyclerview.widget.RecyclerView;
@@ -22,7 +23,9 @@ import com.edufound.reader.model.EventPayModel;
 import com.edufound.reader.model.TmailPayModel;
 import com.edufound.reader.tmailsdk.TMailSDKUtil;
 import com.edufound.reader.util.Consts;
+import com.edufound.reader.util.GlideUtils;
 import com.google.gson.reflect.TypeToken;
+import com.jakewharton.rxbinding4.view.RxView;
 import com.okhttplib.HttpInfo;
 import com.okhttplib.callback.Callback;
 import com.orhanobut.logger.Logger;
@@ -34,6 +37,7 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 public class EventPayPresenter extends BasePresenter<EventPayContract.View> implements EventPayContract.Presenter {
     TmailPayModel mTMailModel;
@@ -92,12 +96,42 @@ public class EventPayPresenter extends BasePresenter<EventPayContract.View> impl
                 @Override
                 public void onSuccess(HttpInfo info) throws IOException {
                     Logger.e("创建订单返回信息成功:" + info.getRetDetail());
-                    Logger.e("创建订单返回信息成功:getParamJson-" + info.getParamJson());
+                    Logger.e(info.getParamJson());
                     try {
                         JSONObject object = new JSONObject(info.getRetDetail());
                         JSONObject json = object.getJSONObject("data");
                         Logger.e("json:" + json);
-                        TMailSDKUtil.tmailPay(mView.getActivity(), json.toString());
+                        String content = json.getString("content");
+                        content.replace("\\", "");
+                        JSONObject contentObject = new JSONObject(content);
+                        String orderid = contentObject.getString("outOrderId");
+                        if (Integer.valueOf(contentObject.getString("amount")) > 0) {
+                            TMailSDKUtil.tmailPay(mView.getActivity(), json.toString());
+                        } else {
+                            Logger.e("0元购买");
+                            ((FrameLayout) mView.getZeroImg().getParent()).setVisibility(View.VISIBLE);
+                            GlideUtils.loadImageSizeKipMemoryCache(mView.getActivity(), "http://reader-apk.ai160.com/reader-apk/res/zero.png", mView.getZeroImg());
+                            RxView.clicks(mView.getZeroImg()).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
+                                mOrderApi.zeroPay(mView.getActivity(), orderid, new Callback() {
+                                    @Override
+                                    public void onSuccess(HttpInfo info) throws IOException {
+                                        Logger.e("零元购成功:" + info.getRetDetail());
+                                        Logger.e("零元购成功:" + info.getParams());
+                                        Toast.makeText(mView.getActivity(), "兑换成功", Toast.LENGTH_SHORT).show();
+                                        ((FrameLayout) mView.getZeroImg().getParent()).setVisibility(View.GONE);
+                                        getProductListInfo();
+                                    }
+
+                                    @Override
+                                    public void onFailure(HttpInfo info) throws IOException {
+                                        Logger.e("零元购失败:" + info.getRetDetail());
+                                        Logger.e("零元购失败:" + info.getParams());
+                                        Toast.makeText(mView.getActivity(), "兑换失败", Toast.LENGTH_SHORT).show();
+                                    }
+                                });
+                            });
+                        }
+
                     } catch (JSONException e) {
                         e.printStackTrace();
                     }

+ 12 - 1
app/src/main/java/com/edufound/reader/presenter/RecommendFragmentPresenter.java

@@ -19,6 +19,7 @@ import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.bean.FavoritesBean;
 import com.edufound.reader.bean.HttpResultBean;
 import com.edufound.reader.bean.HttpResultDataListBean;
+import com.edufound.reader.bean.ThroughType;
 import com.edufound.reader.bean.UserRecordBean;
 import com.edufound.reader.contract.RecommendFragmentContract;
 import com.edufound.reader.cusview.CusToast;
@@ -30,6 +31,7 @@ import com.edufound.reader.util.EfunboxUtil;
 import com.edufound.reader.util.MMKVEncodeKey;
 import com.edufound.reader.util.MMKVUtil;
 import com.edufound.reader.util.SizeUtils;
+import com.edufound.reader.util.ThroughUtil;
 import com.edufound.reader.videoutil.OnViewPagerListener;
 import com.edufound.reader.videoutil.ViewPagerLayoutManager;
 import com.google.gson.reflect.TypeToken;
@@ -134,7 +136,6 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
 
 
     public void initVideoDate(RecyclerView rv, int startPosition) {
-
         rv.setLayoutManager(new LinearLayoutManager(mView.getActivity()));
         rv.setNestedScrollingEnabled(false);
         mViewPagerLayoutManager = new ViewPagerLayoutManager(mView.getActivity(), OrientationHelper.VERTICAL);
@@ -284,6 +285,16 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
             public void onSuccess(HttpInfo info) throws IOException {
                 HttpResultBean<HttpResultDataListBean<UserRecordBean>> bean = info.getRetDetail(new TypeToken<HttpResultBean<HttpResultDataListBean<UserRecordBean>>>() {
                 }.getType());
+
+                if (ThroughUtil.mThroughType.equals(ThroughType.TYPEB.getTypeCode())) {
+                    //要根据ID获取视频并且放到第一个
+                    for (int i = 0; i < bean.getData().getList().size(); i++) {
+                        if (bean.getData().getList().get(i).getUserRead().getId().equals(ThroughUtil.mThroughTypeB.getExampleId())) {
+                            //找到了。要放到第一个
+                            Logger.e("bean.getData().getList().get(i).getUserRead().getId()");
+                        }
+                    }
+                }
                 mAdapter.addMored(bean.getData().getList());
 //                    mDataList.addAll(bean.getData().getList());
                 mTotalSize = Integer.valueOf(bean.getData().getTotalSize());

+ 6 - 4
app/src/main/java/com/edufound/reader/presenter/RecordPresenter.java

@@ -17,6 +17,7 @@ import com.edufound.reader.base.BasePresenter;
 import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.bean.HttpResultBean;
 import com.edufound.reader.bean.RecordResultBean;
+import com.edufound.reader.bean.ThroughType;
 import com.edufound.reader.bean.UserEventEnum;
 import com.edufound.reader.bean.UserRecordBean;
 import com.edufound.reader.botsdk.BotRegisterListener;
@@ -29,6 +30,7 @@ import com.edufound.reader.services.RecordServices;
 import com.edufound.reader.util.Consts;
 import com.edufound.reader.util.DataCleanManager;
 import com.edufound.reader.util.GlideUtils;
+import com.edufound.reader.util.ThroughUtil;
 import com.edufound.reader.videoutil.JZMediaIjk;
 import com.google.gson.reflect.TypeToken;
 import com.okhttplib.HttpInfo;
@@ -87,10 +89,10 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
 
     @Override
     public void getReadInfo(Intent intent) {
-        Logger.e("getReadInfo---------------");
-        Bundle params = intent.getBundleExtra("params_bundle");
-        mReadId = params.getString("exampleId");
-        backModel = params.getString("backModel");
+        if (ThroughUtil.mThroughType.equals(ThroughType.TYPEA)) {
+            mReadId = ThroughUtil.mThroughTypeA.getExampleId();
+            backModel = ThroughUtil.mThroughTypeA.getBackModel();
+        }
         if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
             BotRegisterListener.uploadUsage("1", mReadId, "record", "vip");
         }

+ 1 - 0
app/src/main/java/com/edufound/reader/presenter/WebPresenter.java

@@ -159,6 +159,7 @@ public class WebPresenter extends BasePresenter<WebContract.View> implements Web
         return webview;
     }
 
+
     class WebParams {
         private String channelCode;
         private String uid;

+ 68 - 70
app/src/main/java/com/edufound/reader/tmailsdk/TMailSDKUtil.java

@@ -60,89 +60,87 @@ public class TMailSDKUtil {
         Logger.e("requestPermissions==null???---" + (requestPermissions == null));
         if (requestPermissions == null) {
             Logger.e("没有授权服务模块,请升级系统版本");
+            Intent tologin = new Intent(context, LoginAlertActivity.class);
+            context.startActivity(tologin);
             return;
         }
         //Step2 调用查询授权接口
         AuthProtocolParameters authProtocolParameters = new AuthProtocolParameters(genieAppType, genieAppIdentifier, permissions);
-        if (requestPermissions != null) {
-            Logger.e("不是空的,调用了");
-            try {
-                requestPermissions.requestPermissions(authProtocolParameters, new IRequestPermissionListener() {
-                    @Override
-                    public void authServiceResponse(AuthResponse authResponse) {
-                        Logger.e(" authResponse = " + authResponse);
-                        if (authResponse.isSuccess()) {
-                            //这里返回的token就是API访问令牌
-                            String token = authResponse.getData().getApiAccessToken();
-                            Logger.e("token:" + token);
-                            Gson gson = new Gson();
-                            Map<String, String> map = new HashMap<>();
-                            map.put("accessToken", token);
-                            map.put("deviceOpenId", Consts.getTmailDeviceId());
-                            map.put("userOpenId", Consts.getTmailUserId());
-                            map.put("packageName", Consts.getmApplicAtion().getPackageName());
-                            map.put("deviceCode", DeviceUuidFactory.getUuid());
-                            if (MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE).equals("") || MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE) == null) {
-                                //如果没有,默认给一年级
-                                map.put("grade", "PRIMARY_FIRST_GRADE");
-                            } else {
-                                map.put("grade", MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE));
-                            }
-                            mUserApi.getTMailPhone(gson.toJson(map), new Callback() {
-                                @Override
-                                public void onSuccess(HttpInfo info) throws IOException {
-                                    Logger.e("获取天猫手机号成功哦--info:" + info.getRetDetail());
-                                    HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
-                                    }.getType());
-                                    Consts.setmConstsUserBean(bean.getData());
-                                    Consts.setUID(bean.getData().getUid());
-                                    Toast.makeText(context, "登录成功", Toast.LENGTH_SHORT).show();
-                                    OrderApiServerImpl orderApiServer = new OrderApiServerImpl();
-                                    orderApiServer.getAuth(new Callback() {
-                                        @Override
-                                        public void onSuccess(HttpInfo info) throws IOException {
-                                            HttpResultBean<String> bean = info.getRetDetail(new TypeToken<HttpResultBean<String>>() {
-                                            }.getType());
-                                            Logger.e("获取是否有权限info.getRetDetail():" + info.getRetDetail());
-                                            Logger.e("bean.getData():" + bean.getData());
-                                            if (!TextUtils.isEmpty(bean.getData())) {
-                                                Consts.setIsYFVip(true);
-                                            }
+        try {
+            requestPermissions.requestPermissions(authProtocolParameters, new IRequestPermissionListener() {
+                @Override
+                public void authServiceResponse(AuthResponse authResponse) {
+                    Logger.e(" authResponse = " + authResponse);
+                    if (authResponse.isSuccess()) {
+                        //这里返回的token就是API访问令牌
+                        String token = authResponse.getData().getApiAccessToken();
+                        Logger.e("token:" + token);
+                        Gson gson = new Gson();
+                        Map<String, String> map = new HashMap<>();
+                        map.put("accessToken", token);
+                        map.put("deviceOpenId", Consts.getTmailDeviceId());
+                        map.put("userOpenId", Consts.getTmailUserId());
+                        map.put("packageName", Consts.getmApplicAtion().getPackageName());
+                        map.put("deviceCode", DeviceUuidFactory.getUuid());
+                        if (MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE).equals("") || MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE) == null) {
+                            //如果没有,默认给一年级
+                            map.put("grade", "PRIMARY_FIRST_GRADE");
+                        } else {
+                            map.put("grade", MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE));
+                        }
+                        mUserApi.getTMailPhone(gson.toJson(map), new Callback() {
+                            @Override
+                            public void onSuccess(HttpInfo info) throws IOException {
+                                Logger.e("获取天猫手机号成功哦--info:" + info.getRetDetail());
+                                HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
+                                }.getType());
+                                Consts.setmConstsUserBean(bean.getData());
+                                Consts.setUID(bean.getData().getUid());
+                                Toast.makeText(context, "登录成功", Toast.LENGTH_SHORT).show();
+                                OrderApiServerImpl orderApiServer = new OrderApiServerImpl();
+                                orderApiServer.getAuth(new Callback() {
+                                    @Override
+                                    public void onSuccess(HttpInfo info) throws IOException {
+                                        HttpResultBean<String> bean = info.getRetDetail(new TypeToken<HttpResultBean<String>>() {
+                                        }.getType());
+                                        Logger.e("获取是否有权限info.getRetDetail():" + info.getRetDetail());
+                                        Logger.e("bean.getData():" + bean.getData());
+                                        if (!TextUtils.isEmpty(bean.getData())) {
+                                            Consts.setIsYFVip(true);
                                         }
+                                    }
 
-                                        @Override
-                                        public void onFailure(HttpInfo info) throws IOException {
+                                    @Override
+                                    public void onFailure(HttpInfo info) throws IOException {
 
-                                        }
-                                    });
-                                    //检查活动
-                                    EfunboxUtil.checkEvents(context, ((BaseActivity) context).getRootView(), true);
-                                }
-
-                                @Override
-                                public void onFailure(HttpInfo info) throws IOException {
-                                    Logger.e("info.params:" + info.getParamJson());
-                                    Logger.e("获取天猫手机号失败--info:" + info.getRetDetail());
-                                }
-                            });
-                        } else {
-                            Logger.e("用户拒绝天猫精灵授权,调用自己的手机号登录");
-                            Intent tologin = new Intent(context, LoginAlertActivity.class);
-                            context.startActivity(tologin);
-                        }
+                                    }
+                                });
+                                //检查活动
+                                EfunboxUtil.checkEvents(context, ((BaseActivity) context).getRootView(), true);
+                            }
+
+                            @Override
+                            public void onFailure(HttpInfo info) throws IOException {
+                                Logger.e("info.params:" + info.getParamJson());
+                                Logger.e("获取天猫手机号失败--info:" + info.getRetDetail());
+                            }
+                        });
+                    } else {
+                        Logger.e("用户拒绝天猫精灵授权,调用自己的手机号登录");
+                        Intent tologin = new Intent(context, LoginAlertActivity.class);
+                        context.startActivity(tologin);
                     }
+                }
 
 
-                });
+            });
 
-            } catch (Exception e) {
-                e.printStackTrace();
-                Logger.e("不是空的,但是异常了=" + e.getMessage());
-            }
-        } else {
-            Logger.e("空的,别调用了");
+        } catch (Exception e) {
+            e.printStackTrace();
+            Logger.e("不是空的,但是异常了=" + e.getMessage());
         }
 
+
         Intent intent = new Intent();
         intent.setPackage("com.alibaba.ailabs.genie.smartapp");
         intent.setAction("com.alibaba.ailabs.genie.authservice.intent.action.AuthPermissionService");

+ 12 - 0
app/src/main/java/com/edufound/reader/util/ThroughUtil.java

@@ -0,0 +1,12 @@
+package com.edufound.reader.util;
+
+import com.edufound.reader.bean.ThroughType;
+import com.edufound.reader.bean.ThroughTypeA;
+import com.edufound.reader.bean.ThroughTypeB;
+
+public class ThroughUtil {
+
+    public static ThroughType mThroughType;
+    public static ThroughTypeA mThroughTypeA;
+    public static ThroughTypeB mThroughTypeB;
+}

+ 1 - 1
app/src/main/res/values/colors.xml

@@ -282,7 +282,7 @@
     <color name="grassgreen">#99cc33</color><!--草绿色 -->
     <color name="gray_cc">#cccccc</color><!--灰色cc -->
     <color name="gray_8f">#8f8f8f</color><!--灰色8f -->
-    <color name="translucent_background">#80000000</color><!--半透明 -->
+    <color name="translucent_background">#90000000</color><!--半透明 -->
     <color name="colorPrimary">#008577</color>
     <color name="colorPrimaryDark">#00574B</color>
     <color name="colorAccent">#D81B60</color>