Parcourir la source

1.首页app退出按钮
2.小vip图片
3.点击去录音时,无权限则调用登录
4.修改推荐和关注逻辑(滑动到最后一个给出提示,取消无限循环)
5.百度资源上报
6.百度跳转支付页

FailedToRead il y a 3 ans
Parent
commit
7fbd0b4381
26 fichiers modifiés avec 348 ajouts et 180 suppressions
  1. 4 4
      .idea/misc.xml
  2. 48 33
      app/src/fragmentRecommend/layout/fragment_main_recommend.xml
  3. 0 3
      app/src/main/AndroidManifest.xml
  4. 6 0
      app/src/main/java/com/edufound/reader/activity/CustomerServiceActivity.java
  5. 11 2
      app/src/main/java/com/edufound/reader/activity/MainActivity.java
  6. 5 0
      app/src/main/java/com/edufound/reader/activity/RecordActivity.java
  7. 2 0
      app/src/main/java/com/edufound/reader/activity/UserInfoSettingActivity.java
  8. 1 1
      app/src/main/java/com/edufound/reader/application/EApplication.java
  9. 46 15
      app/src/main/java/com/edufound/reader/base/BaseActivity.java
  10. 14 8
      app/src/main/java/com/edufound/reader/base/BaseFragment.java
  11. 12 3
      app/src/main/java/com/edufound/reader/botsdk/BotRegisterListener.java
  12. 9 2
      app/src/main/java/com/edufound/reader/cusview/RvListJzvdStd.java
  13. 13 1
      app/src/main/java/com/edufound/reader/fragment/MyTabFragment.java
  14. 24 6
      app/src/main/java/com/edufound/reader/fragment/RecommendFragment.java
  15. 1 1
      app/src/main/java/com/edufound/reader/model/RecommendFragmentModel.java
  16. 9 2
      app/src/main/java/com/edufound/reader/presenter/MyTabFragmentPresenter.java
  17. 26 32
      app/src/main/java/com/edufound/reader/presenter/RecommendFragmentPresenter.java
  18. 5 0
      app/src/main/java/com/edufound/reader/presenter/RecordPresenter.java
  19. 12 0
      app/src/main/java/com/edufound/reader/util/Consts.java
  20. 0 1
      app/src/main/java/com/edufound/reader/util/OkHttpClient.java
  21. 18 0
      app/src/main/java/com/edufound/reader/util/TimeUtil.java
  22. BIN
      app/src/main/res/drawable/app_exit_icon.png
  23. BIN
      app/src/main/res/drawable/app_isvip_icon.png
  24. 1 0
      app/src/main/res/layout/activity_customerservice.xml
  25. 79 59
      app/src/main/res/layout/activity_main.xml
  26. 2 7
      app/src/main/res/layout/fragment_main_user.xml

+ 4 - 4
.idea/misc.xml

@@ -26,7 +26,7 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/drawable/slidevideo_switch_track_s.xml" value="0.37890625" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/drawable/slidevideo_switch_track_selector.xml" value="0.32734375" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/drawable/switch_thumb.xml" value="0.37890625" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/fragment_main_recommend.xml" value="1.0" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/fragment_main_recommend.xml" value="0.75" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/popup_myorder.xml" value="0.2889294403892944" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/popupwindow_myorder.xml" value="0.2889294403892944" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentRecommend/layout/popupwindow_record_remove.xml" value="0.2980535279805353" />
@@ -61,7 +61,7 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_comment.xml" value="0.33" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_crash_dialog.xml" value="0.12" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_customerservice.xml" value="0.33" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_main.xml" value="0.15" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_main.xml" value="0.9" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_message.xml" value="0.14" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_otherrecord.xml" value="0.303125" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_pay.xml" value="0.2" />
@@ -81,13 +81,13 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_record.xml" value="0.4539641943734015" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_record_user.xml" value="0.67" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_safflower.xml" value="0.67" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_slidevideo.xml" value="3.0" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/adapter_item_slidevideo.xml" value="0.14001692047377326" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/anim_getfollow.xml" value="0.33" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/curjzplayer_controller.xml" value="0.16" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/cusjzplayer_controller.xml" value="0.5029154518950437" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_main_character.xml" value="0.18" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_main_recommend.xml" value="0.2" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_main_user.xml" value="0.5" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_main_user.xml" value="0.9" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_user_rv_bottom.xml" value="0.30103359173126615" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/fragment_user_rv_header.xml" value="0.2" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/lifecycle_exception.xml" value="0.2396593673965937" />

+ 48 - 33
app/src/fragmentRecommend/layout/fragment_main_recommend.xml

@@ -289,48 +289,63 @@
 
         </LinearLayout>
 
-        <LinearLayout
-                android:id="@+id/fragment_recommend_to_record_layout"
+        <FrameLayout
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_gravity="bottom|right"
-                android:orientation="vertical">
+                android:layout_gravity="bottom|right">
 
-            <FrameLayout
-                    android:layout_width="121dp"
-                    android:layout_height="121dp">
+            <LinearLayout
+                    android:id="@+id/fragment_recommend_to_record_layout"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical">
 
-                <ImageView
-                        android:id="@+id/fragment_recommend_to_record_bg"
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:layout_gravity="center"
-                        android:src="@drawable/to_record_bg"></ImageView>
+                <FrameLayout
+                        android:layout_width="121dp"
+                        android:layout_height="121dp">
 
-                <ImageView
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:layout_gravity="center"
-                        android:padding="10dp"
-                        android:src="@drawable/to_record_icon"></ImageView>
+                    <ImageView
+                            android:id="@+id/fragment_recommend_to_record_bg"
+                            android:layout_width="match_parent"
+                            android:layout_height="match_parent"
+                            android:layout_gravity="center"
+                            android:src="@drawable/to_record_bg"></ImageView>
 
-                <ImageView
-                        android:id="@+id/fragment_recommend_to_record_icon"
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:layout_gravity="center"
-                        android:padding="38dp"
-                        android:src="@drawable/to_record_icon_mike"></ImageView>
+                    <ImageView
+                            android:layout_width="match_parent"
+                            android:layout_height="match_parent"
+                            android:layout_gravity="center"
+                            android:padding="10dp"
+                            android:src="@drawable/to_record_icon"></ImageView>
 
-            </FrameLayout>
+                    <ImageView
+                            android:id="@+id/fragment_recommend_to_record_icon"
+                            android:layout_width="match_parent"
+                            android:layout_height="match_parent"
+                            android:layout_gravity="center"
+                            android:padding="38dp"
+                            android:src="@drawable/to_record_icon_mike"></ImageView>
+
+
+                </FrameLayout>
+
+                <ImageView
+                        android:layout_width="105dp"
+                        android:layout_height="40dp"
+                        android:layout_gravity="center|top"
+                        android:layout_marginBottom="15dp"
+                        android:src="@drawable/to_record"></ImageView>
+            </LinearLayout>
 
             <ImageView
-                    android:layout_width="105dp"
-                    android:layout_height="40dp"
-                    android:layout_gravity="center|top"
-                    android:layout_marginBottom="15dp"
-                    android:src="@drawable/to_record"></ImageView>
-        </LinearLayout>
+                    android:id="@+id/fragment_recommend_app_user_isvip"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center|right"
+                    android:layout_marginTop="30dp"
+                    android:layout_marginRight="10dp"
+                    android:src="@drawable/app_isvip_icon"></ImageView>
+        </FrameLayout>
     </FrameLayout>
 
 </LinearLayout>

+ 0 - 3
app/src/main/AndroidManifest.xml

@@ -54,10 +54,7 @@
             <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
                 <action android:name="com.edufound.reader.MAIN"></action>
-
-                <!--                            <category android:name="android.intent.category.DEFAULT" />-->
                 <category android:name="android.intent.category.BROWSABLE" />
-
                 <data
                         android:host="com.edufound.reader"
                         android:path="/main"

+ 6 - 0
app/src/main/java/com/edufound/reader/activity/CustomerServiceActivity.java

@@ -12,6 +12,7 @@ import com.edufound.reader.base.BaseActivity;
 import com.edufound.reader.base.BaseMvpActivity;
 import com.edufound.reader.contract.CustomerServiceContract;
 import com.edufound.reader.presenter.CustomerServicePresenter;
+import com.edufound.reader.util.GlideUtils;
 
 import java.util.HashMap;
 
@@ -25,6 +26,9 @@ public class CustomerServiceActivity extends BaseMvpActivity<CustomerServicePres
     @BindView(id = R.id.activity_customerservice_back)
     ImageView mBack;
 
+    @BindView(id = R.id.activity_customerservice_qrcode)
+    ImageView mQRCodeImage;
+
     @Override
     public int getLayoutId() {
         return R.layout.activity_customerservice;
@@ -38,6 +42,8 @@ public class CustomerServiceActivity extends BaseMvpActivity<CustomerServicePres
         addUiClickListener(mBack, o -> {
             mActivity.finish();
         });
+
+        GlideUtils.loadImageSizeKipMemoryCache(mActivity, "http://reader-apk.ai160.com/reader-apk/res/customer.png", mQRCodeImage);
     }
 
     @Override

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

@@ -9,6 +9,7 @@ import android.content.IntentFilter;
 import android.net.Uri;
 import android.view.KeyEvent;
 import android.view.ViewGroup;
+import android.widget.ImageView;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
 
@@ -18,6 +19,7 @@ import com.edufound.reader.R;
 import com.edufound.reader.annotation.BindView;
 import com.edufound.reader.base.BaseMvpActivity;
 import com.edufound.reader.contract.MainContract;
+import com.edufound.reader.popwindow.PopWindowUtil;
 import com.edufound.reader.presenter.MainPresenter;
 import com.edufound.reader.receiver.BackPageReceiver;
 import com.orhanobut.logger.Logger;
@@ -37,6 +39,8 @@ public class MainActivity extends BaseMvpActivity<MainPresenter> implements Main
     @BindView(id = R.id.main_left_tab_layout)
     RadioGroup mRadioGroupTab;
 
+    @BindView(id = R.id.activity_main_exitapp_icon)
+    ImageView mExitApp;
 
     @Override
     public int getLayoutId() {
@@ -57,14 +61,19 @@ public class MainActivity extends BaseMvpActivity<MainPresenter> implements Main
                 mPresenter.onRadioChecked(radioGroup, id);
             }
         });
+
+        addUiClickListener(mExitApp, o -> {
+            PopWindowUtil.showExitAppWindow(getActivity(), getRootView());
+        });
         mPresenter.userIsLogin();
         mPresenter.checkModelIsDebug();
-//        setTheme(R.style.Theme_AppCompat_Light_NoActionBar_FullScreen);
 
         if (getIntent() != null && getIntent().getStringExtra("url") != null && !getIntent().getStringExtra("url").equals("")) {
+            //efunbox://com.edufound.reader/main?resid=11132
             Uri baiduurl = Uri.parse(getIntent().getStringExtra("url"));
             String resid = baiduurl.getQueryParameter("resid");
-            Logger.e("从百度获取的url:" + resid);
+            Logger.e("从百度获取的url:" + baiduurl);
+            Logger.e("从百度获取的url-resid:" + resid);
         }
 
         //efunbox://com.edufound.reader/main?

+ 5 - 0
app/src/main/java/com/edufound/reader/activity/RecordActivity.java

@@ -9,15 +9,18 @@ import android.view.animation.AnimationUtils;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 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.base.BaseMvpActivity;
+import com.edufound.reader.botsdk.BotRegisterListener;
 import com.edufound.reader.contract.RecordContract;
 import com.edufound.reader.cusview.RvListJzvdStd;
 import com.edufound.reader.presenter.RecordPresenter;
+import com.edufound.reader.util.Consts;
 import com.edufound.reader.util.EfunboxUtil;
 
 import java.util.HashMap;
@@ -65,6 +68,7 @@ public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements
         mPresenter.bindRecordServices();
         mPresenter.createVideoPlayer();
         mPresenter.getReadInfo(getIntent());
+        mJzVideoViwe.setCanPause(false);
         addUiClickListener(mBack, o -> {
             mActivity.finish();
         });
@@ -82,6 +86,7 @@ public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements
             mDemonsIcon.startAnimation(animation);
             mPresenter.clickExampleUI();
         });
+
     }
 
     @Override

+ 2 - 0
app/src/main/java/com/edufound/reader/activity/UserInfoSettingActivity.java

@@ -275,6 +275,8 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
     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()));

+ 1 - 1
app/src/main/java/com/edufound/reader/application/EApplication.java

@@ -52,7 +52,7 @@ public class EApplication extends Application {
     public void onCreate() {
         super.onCreate();
         try {
-            Consts.setIsDebug(true);
+            Consts.setIsDebug(false);
             Consts.setmApplicAtion(this);
 
             //初始化异常监听

+ 46 - 15
app/src/main/java/com/edufound/reader/base/BaseActivity.java

@@ -32,6 +32,7 @@ import com.edufound.reader.annotation.BindView;
 import com.edufound.reader.apiserver.UserApiServerImpl;
 import com.edufound.reader.application.EApplication;
 import com.edufound.reader.bean.BaiDuUserInfo;
+import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.bean.HttpResultBean;
 import com.edufound.reader.bean.UserBean;
 import com.edufound.reader.botsdk.BotRegisterListener;
@@ -77,9 +78,6 @@ public abstract class BaseActivity extends AppCompatActivity {
     //Gson
     Gson mGson;
 
-    ShowFollowReceiver mFollowReceiver;
-
-
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -239,11 +237,6 @@ public abstract class BaseActivity extends AppCompatActivity {
         }
     };
 
-    @Override
-    protected void onResume() {
-        super.onResume();
-
-    }
 
     protected void onLoginSuccess() {
     }
@@ -363,20 +356,30 @@ public abstract class BaseActivity extends AppCompatActivity {
     IBotIntentCallback mBotIntentCallBack = new IBotIntentCallback() {
         @Override
         public void handleIntent(BotIntent intent, String customData) {
+            Logger.e("fragment---intent.name:" + intent.name);
             if (intent.name.equals("all_login")) {
                 //用户主动要求登录
+                Consts.setIsNeedLogin(true);
                 EfunboxUtil.userLogin(EApplication.mActivityList.get(EApplication.mActivityList.size() - 1));
                 return;
             } else if (intent.name.equals("user_info")) {
                 //获取是不是百度VIP
                 Consts.setmConstsBaiDuUserBean(mGson.fromJson(customData, BaiDuUserInfo.class));
-                BotRegisterListener.BaiDuLogin();
+                Logger.e("json----" + mGson.toJson(Consts.getmConstsBaiDuUserBean()));
+                if (Consts.getIsNeedLogin()) {
+                    BotRegisterListener.BaiDuLogin();
+                } else {
+                    Consts.setIsNeedLogin(true);
+                }
+                botHandleIntent(intent, customData);
                 return;
             }
             if (BotRegisterListener.isNoLoginIntent(intent)) {
                 //不是获取手机号
+                Logger.e("不是获取手机号--不是获取手机号:" + intent.name + "---" + intent.slots.toString());
                 botHandleIntent(intent, customData);
             } else {
+                Logger.e("是获取手机号--是获取手机号");
                 //是获取手机号
                 if (intent.slots.get(0).value.equals("SUCCESS")) {
                     //获取手机号Token成功
@@ -388,12 +391,14 @@ public abstract class BaseActivity extends AppCompatActivity {
                         public void onSuccess(HttpInfo info) throws IOException {
                             JSONObject object = JSONObject.parseObject(info.getRetDetail().toString());
                             String phone = JSONObject.parseObject(object.getString("data")).getString("phone");
+                            Logger.e("获取的手机号:" + phone);
                             if (EfunboxUtil.isMobileNO(phone)) {
                                 Map<String, String> map = new HashMap<>();
                                 map.put("deviceCode", DeviceUuidFactory.getUuid());
                                 map.put("channel", Consts.getUmengChannel());
                                 map.put("mobileNo", phone);
                                 map.put("nickName", EfunboxUtil.setPhoneMiddle(phone));
+                                Logger.e("Consts.getmConstsBaiDuUserBean().getUserInfo().getUserId():" + Consts.getmConstsBaiDuUserBean().getUserInfo().getUserId());
                                 map.put("userId", Consts.getmConstsBaiDuUserBean().getUserInfo().getUserId());
                                 if (MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE).equals("") || MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE) == null) {
                                     //如果没有,默认给一年级
@@ -401,18 +406,23 @@ public abstract class BaseActivity extends AppCompatActivity {
                                 } else {
                                     map.put("grade", MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE));
                                 }
-                                String json = getGson().toJson(map);
+
+                                String json = mGson.toJson(map);
+                                Logger.e("json:" + json);
                                 userApiServer.registerUserId(topActivity, json, new Callback() {
                                     @Override
                                     public void onSuccess(HttpInfo info) throws IOException {
+                                        Logger.e("手机号注册成功:" + info.getRetDetail());
+
                                         HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
                                         }.getType());
+
                                         Consts.setUID(bean.getData().getUid());
                                         //用户是否登录,登录了,创建Consts的userbean
-//                                        String nickName = EfunboxUtil.setPhoneMiddle(bean.getData().getMobile());
-//                                        bean.getData().setNickName(nickName);
+                                        String nickName = EfunboxUtil.setPhoneMiddle(bean.getData().getMobile());
+                                        bean.getData().setNickName(nickName);
                                         Consts.setmConstsUserBean(bean.getData());
-                                        Logger.e("看看到底对没有:" + getGson().toJson(Consts.getmConstsUserBean()));
+                                        Logger.e("看看到底对没有:" + mGson.toJson(Consts.getmConstsUserBean()));
                                         refUserInfo(Consts.getmConstsUserBean());
                                     }
 
@@ -434,7 +444,6 @@ public abstract class BaseActivity extends AppCompatActivity {
                     });
                 } else if (intent.slots.get(0).value.equals("FAIL")) {
                     //获取手机号Token失败
-                    Logger.e("获取手机号失败");
                 }
             }
 
@@ -470,12 +479,34 @@ public abstract class BaseActivity extends AppCompatActivity {
                                        @NonNull final String productId,
                                        @NonNull final String baiduOrderId,
                                        @NonNull final String sellerOrderId, @Nullable final String msg, String token) {
-            Logger.e("baseActivity---onBuyStatusUpdated");
+
+            Consts.setIsNeedLogin(false);
+            //处理支付回调
+            Logger.e("purchaseResult:" + purchaseResult);
+            Logger.e("productId:" + productId);
+            Logger.e("baiduOrderId:" + baiduOrderId);
+            Logger.e("sellerOrderId:" + sellerOrderId);
+            Logger.e("msg:" + msg);
+            Logger.e("token:" + token);
+            if (purchaseResult.equals("SUCCESS")) {
+                //成功
+            } else if (purchaseResult.equals("ERROR")) {
+                //支付失败
+            }
             botOnBuyStatusUpdated(purchaseResult, productId, baiduOrderId, sellerOrderId, msg, token);
 
         }
     };
 
+    @Override
+    protected void onResume() {
+        super.onResume();
+        if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
+            if (!Consts.getIsNeedLogin()) {
+                BotRegisterListener.getBaiDuVipInfo();
+            }
+        }
+    }
 
     ShowFollowReceiver.ShowFollow showFollow = new ShowFollowReceiver.ShowFollow() {
         @Override

+ 14 - 8
app/src/main/java/com/edufound/reader/base/BaseFragment.java

@@ -18,6 +18,7 @@ import com.baidu.duer.botsdk.IAccountChargeMsgListener;
 import com.edufound.reader.apiserver.UserApiServerImpl;
 import com.edufound.reader.application.EApplication;
 import com.edufound.reader.bean.BaiDuUserInfo;
+import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.bean.HttpResultBean;
 import com.edufound.reader.bean.UserBean;
 import com.edufound.reader.botsdk.BotRegisterListener;
@@ -51,7 +52,6 @@ public abstract class BaseFragment extends Fragment {
 
     public CompositeDisposable mCompositeDisposable;
     Gson mGson;
-    private boolean isNeedLogin = true;
 
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
@@ -160,6 +160,9 @@ public abstract class BaseFragment extends Fragment {
         }
     };
 
+    protected void refUserInfo(UserBean bean) {
+        
+    }
 
     //百度的回调逻辑代码块
     protected void botHandleIntent(BotIntent intent, String customData) {
@@ -187,24 +190,25 @@ public abstract class BaseFragment extends Fragment {
                                          @NonNull final String sellerOrderId, @Nullable final String msg, String token) {
     }
 
-
     IBotIntentCallback mBotIntentCallBack = new IBotIntentCallback() {
         @Override
         public void handleIntent(BotIntent intent, String customData) {
             Logger.e("fragment---intent.name:" + intent.name);
             if (intent.name.equals("all_login")) {
                 //用户主动要求登录
+                Consts.setIsNeedLogin(true);
                 EfunboxUtil.userLogin(EApplication.mActivityList.get(EApplication.mActivityList.size() - 1));
                 return;
             } else if (intent.name.equals("user_info")) {
                 //获取是不是百度VIP
                 Consts.setmConstsBaiDuUserBean(mGson.fromJson(customData, BaiDuUserInfo.class));
                 Logger.e("json----" + mGson.toJson(Consts.getmConstsBaiDuUserBean()));
-                if (isNeedLogin) {
+                if (Consts.getIsNeedLogin()) {
                     BotRegisterListener.BaiDuLogin();
                 } else {
-                    isNeedLogin = true;
+                    Consts.setIsNeedLogin(true);
                 }
+                botHandleIntent(intent, customData);
                 return;
             }
             if (BotRegisterListener.isNoLoginIntent(intent)) {
@@ -256,6 +260,7 @@ public abstract class BaseFragment extends Fragment {
                                         bean.getData().setNickName(nickName);
                                         Consts.setmConstsUserBean(bean.getData());
                                         Logger.e("看看到底对没有:" + mGson.toJson(Consts.getmConstsUserBean()));
+                                        refUserInfo(Consts.getmConstsUserBean());
                                     }
 
                                     @Override
@@ -312,7 +317,7 @@ public abstract class BaseFragment extends Fragment {
                                        @NonNull final String baiduOrderId,
                                        @NonNull final String sellerOrderId, @Nullable final String msg, String token) {
 
-            isNeedLogin = false;
+            Consts.setIsNeedLogin(false);
             //处理支付回调
             Logger.e("purchaseResult:" + purchaseResult);
             Logger.e("productId:" + productId);
@@ -333,9 +338,10 @@ public abstract class BaseFragment extends Fragment {
     @Override
     public void onResume() {
         super.onResume();
-
-        if (!isNeedLogin) {
-            BotRegisterListener.getBaiDuVipInfo();
+        if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
+            if (!Consts.getIsNeedLogin()) {
+                BotRegisterListener.getBaiDuVipInfo();
+            }
         }
     }
 

+ 12 - 3
app/src/main/java/com/edufound/reader/botsdk/BotRegisterListener.java

@@ -54,7 +54,7 @@ public class BotRegisterListener {
     public static void getBaiDuVipInfo() {
         Logger.e("获取是否是百度VIP权限");
         LinkClickedEventPayload linkClickedEventPayload = new LinkClickedEventPayload();
-        linkClickedEventPayload.url = String.format("dueros://%s/getVipInfo", BotConstants.BOTID);
+        linkClickedEventPayload.url = String.format("dueros://%s/getVipInfo" + "?channel_type=bot_child&from=wutong|show|yifang|ldpy", BotConstants.BOTID);
         BotSdk.getInstance().uploadLinkClickedEvent(linkClickedEventPayload);
     }
 
@@ -64,6 +64,7 @@ public class BotRegisterListener {
      */
     public static void payBaiDuVip() {
         //dueros://{bot_id}/buyXiaoduVIP?channel_type={channel_type}&from={from},
+        Consts.setIsNeedLogin(true);
         LinkClickedEventPayload linkClickedEventPayload = new LinkClickedEventPayload();
         linkClickedEventPayload.url = "dueros://" + BotConstants.BOTID + "/buyXiaoduVIP";
         BotSdk.getInstance().uploadLinkClickedEvent(linkClickedEventPayload);
@@ -72,10 +73,18 @@ public class BotRegisterListener {
     /**
      * 上报使用了资源
      */
-    public static void uploadUsage(String resId, String resType, String usertype) {
+    public static void uploadUsage(String privilege, String resId, String resType, String usertype) {
         LinkClickedEventPayload linkClickedEventPayload = new LinkClickedEventPayload();
-        linkClickedEventPayload.url = ("dueros://" + BotConstants.BOTID + "/upload?type=usage&isPrivilege=1&resourceId=" + resId + "&resourceType=" + resType + "&userType=" + usertype + "");
+        linkClickedEventPayload.url = ("dueros://" + BotConstants.BOTID + "/upload?type=usage&isPrivilege=" + privilege + "&resourceId=" + resId + "&resourceType=" + resType + "&userType=" + usertype + "");
         BotSdk.getInstance().uploadLinkClickedEvent(linkClickedEventPayload);
+
+        /**
+         * 会员录音上报  BotRegisterListener.uploadUsage("1", mReadId, "record", "vip");
+         * */
+
+        /**
+         * 免费视频上报     BotRegisterListener.uploadUsage("0", readid, "video", "unpurchased");
+         * */
     }
 
 

+ 9 - 2
app/src/main/java/com/edufound/reader/cusview/RvListJzvdStd.java

@@ -29,6 +29,8 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.edufound.reader.R;
+import com.edufound.reader.bean.ChannelCodeEnum;
+import com.edufound.reader.botsdk.BotRegisterListener;
 import com.edufound.reader.util.Consts;
 import com.edufound.reader.util.OkHttpClient;
 import com.okhttplib.HttpInfo;
@@ -333,6 +335,9 @@ public class RvListJzvdStd extends Jzvd {
 
     @Override
     public boolean onTouch(View v, MotionEvent event) {
+        if (!canPause) {
+            return true;
+        }
         int id = v.getId();
         if (id == R.id.surface_container) {
             switch (event.getAction()) {
@@ -1028,8 +1033,10 @@ public class RvListJzvdStd extends Jzvd {
         OkHttpClient.doPostAsync(new HttpInfo.Builder().setUrl(Consts.getFinalApi() + "/playLog").addParamJson("{\"userReadId\":\"" + readid + "\",\"playStopTime\":\"0\",\"channel\":\"" + Consts.getUmengChannel() + "\"}"), new Callback() {
             @Override
             public void onSuccess(HttpInfo info) throws IOException {
-                Logger.e(readid + "----播放记录成功:" + info.getRetDetail());
-
+                //播放记录
+                if(Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())){
+                    BotRegisterListener.uploadUsage("0", readid, "video", "unpurchased");
+                }
             }
 
             @Override

+ 13 - 1
app/src/main/java/com/edufound/reader/fragment/MyTabFragment.java

@@ -35,6 +35,7 @@ import com.edufound.reader.receiver.BackPageReceiver;
 import com.edufound.reader.util.Consts;
 import com.edufound.reader.util.EfunboxUtil;
 import com.edufound.reader.util.GlideUtils;
+import com.edufound.reader.util.TimeUtil;
 import com.jakewharton.rxbinding4.view.RxView;
 import com.orhanobut.logger.Logger;
 
@@ -114,6 +115,7 @@ public class MyTabFragment extends BaseMvpFragment<MyTabFragmentPresenter> imple
 //        mPresenter.getIsBuy();
 //        mPresenter.getAuth();
 
+
     }
 
 
@@ -183,6 +185,7 @@ public class MyTabFragment extends BaseMvpFragment<MyTabFragmentPresenter> imple
             bundle.putString("index", "123123123");
             toNextActivity(UserInfoSettingActivity.class, bundle);
         });
+
     }
 
     @Override
@@ -304,7 +307,7 @@ public class MyTabFragment extends BaseMvpFragment<MyTabFragmentPresenter> imple
         } else {
             mHeadUserVip.setBackgroundResource(R.drawable.fragment_my_vip_renew);
             mOverDate.setVisibility(View.VISIBLE);
-            mOverDate.setText("到期时间:" + date);
+            mOverDate.setText("到期:" + date);
         }
     }
 
@@ -316,4 +319,13 @@ public class MyTabFragment extends BaseMvpFragment<MyTabFragmentPresenter> imple
             ((ImageView) mGridLayout.getChildAt(position).getTag()).setImageResource(R.drawable.adapter_item_record_pub);
         }
     }
+
+    @Override
+    protected void botHandleIntent(BotIntent intent, String customData) {
+        super.botHandleIntent(intent, customData);
+        if (Consts.getmConstsBaiDuUserBean().getUserInfo().getIsVip() == 1) {
+            //是VIP
+            getIsBuySuccess(TimeUtil.getDateFromSeconds(String.valueOf(Consts.getmConstsBaiDuUserBean().getUserInfo().getEndTimestamp())));
+        }
+    }
 }

+ 24 - 6
app/src/main/java/com/edufound/reader/fragment/RecommendFragment.java

@@ -10,6 +10,7 @@ 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;
@@ -19,9 +20,12 @@ import com.edufound.reader.activity.OthersRecordActivity;
 import com.edufound.reader.activity.RecordActivity;
 import com.edufound.reader.base.BaseActivity;
 import com.edufound.reader.base.BaseMvpFragment;
+import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.bean.UserRecordBean;
+import com.edufound.reader.botsdk.BotRegisterListener;
 import com.edufound.reader.contract.RecommendFragmentContract;
 import com.edufound.reader.presenter.RecommendFragmentPresenter;
+import com.edufound.reader.util.Consts;
 import com.edufound.reader.util.EfunboxUtil;
 import com.edufound.reader.util.GlideUtils;
 import com.orhanobut.logger.Logger;
@@ -55,6 +59,7 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
     TextView mCollentStatus;
     TextView mThumbCount;
     ImageView isFollow;
+    ImageView isUserVip;
 
     //默认是推荐 mFragmentType=0
     //关注 mFragmentType=1
@@ -89,13 +94,13 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
         mVideoUp = view.findViewById(R.id.fragment_recommend_video_up);
         mVideoNext = view.findViewById(R.id.fragment_recommend_video_next);
         mToRecordLayout = view.findViewById(R.id.fragment_recommend_to_record_layout);
-
         mUserHead = view.findViewById(R.id.fragment_recommend_user_head);
         mUserPhone = view.findViewById(R.id.fragment_recommend_user_phone);
         mCommentCount = view.findViewById(R.id.fragment_recommend_comment_num);
         mCollentStatus = view.findViewById(R.id.fragment_recommend_collection_status);
         mThumbCount = view.findViewById(R.id.fragment_recommend_thumbs_num);
         isFollow = view.findViewById(R.id.fragment_main_recommend_isfollow);
+        isUserVip = view.findViewById(R.id.fragment_recommend_app_user_isvip);
         //录音按钮背景旋转
         mToRecordRotationbg = mToRecordLayout.findViewById(R.id.fragment_recommend_to_record_bg);
         mRotationImgAnim = ObjectAnimator.ofFloat(mToRecordRotationbg, "rotation", 0.0F, 359.0F);
@@ -152,9 +157,15 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
         }
 
         addUiClickListener(mToRecordLayout, o -> {
-            Bundle bundle = new Bundle();
-            bundle.putString("exampleId", mPresenter.getCurVideoExampleId().toString());
-            toNextActivity(RecordActivity.class, bundle);
+            if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
+                if (Consts.getmConstsBaiDuUserBean().getUserInfo().getIsVip() == 1) {
+                    Bundle bundle = new Bundle();
+                    bundle.putString("exampleId", mPresenter.getCurVideoExampleId().toString());
+                    toNextActivity(RecordActivity.class, bundle);
+                } else {
+                    Toast.makeText(getActivity(), "您还不是VIP,请购买后使用", Toast.LENGTH_SHORT).show();
+                }
+            }
         });
         mPresenter.initVideoList(mRecyclerView, mFragmentType, startPosition);
     }
@@ -184,7 +195,13 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
     @Override
     public void onResume() {
         mPresenter.fragmentResume(mRecyclerView);
+        if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
+            if (Consts.getmConstsBaiDuUserBean() != null && Consts.getmConstsBaiDuUserBean().getUserInfo().getIsVip() == 1) {
+                isUserVip.setVisibility(View.INVISIBLE);
+            }
+        }
         super.onResume();
+
     }
 
     @Override
@@ -214,7 +231,6 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
 
     @Override
     public void setTopStatus(UserRecordBean bean) {
-        Logger.e("bean.getuser.getnickName:" + bean.getUser().getNickName());
 
         //设置信息和点赞数等
         GlideUtils.loadCircleImage(getActivity(), bean.getUser().getAvatar(), mUserHead);
@@ -240,7 +256,6 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
 
 
         addUiClickListener(mUserHeadLayout, o -> {
-            Logger.e("点击了手机号和头像,跳转他人作品界面");
             Bundle bundle = new Bundle();
             bundle.putString("other_uid", bean.getUser().getUid());
             bundle.putString("record_id", bean.getUserRead().getId());
@@ -328,6 +343,9 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
     protected void botHandleIntent(BotIntent intent, String customData) {
         super.botHandleIntent(intent, customData);
         Logger.e("botHandleIntent:" + customData);
+        if (Consts.getmConstsBaiDuUserBean().getUserInfo().getIsVip() == 1) {
+            isUserVip.setVisibility(View.INVISIBLE);
+        }
     }
 
     @Override

+ 1 - 1
app/src/main/java/com/edufound/reader/model/RecommendFragmentModel.java

@@ -19,7 +19,7 @@ public class RecommendFragmentModel implements RecommendFragmentContract.Model {
      */
     @Override
     public void getRecommendList(Activity activity, String grade, int pageIndex, Callback callback) {
-        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/userRead/recommend").addParam("grade", grade).addParam("pageNo", String.valueOf(pageIndex)).addParam("pageSize", "100"), callback);
+        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/userRead/recommend").addParam("grade", grade).addParam("pageNo", String.valueOf(pageIndex)).addParam("pageSize", "5"), callback);
     }
 
     @Override

+ 9 - 2
app/src/main/java/com/edufound/reader/presenter/MyTabFragmentPresenter.java

@@ -20,6 +20,7 @@ import com.edufound.reader.activity.SmallFullVideoActivity;
 import com.edufound.reader.apiserver.OrderApiServerImpl;
 import com.edufound.reader.base.BaseActivity;
 import com.edufound.reader.base.BasePresenter;
+import com.edufound.reader.bean.ChannelCodeEnum;
 import com.edufound.reader.bean.HttpResultBean;
 import com.edufound.reader.bean.MyInfoBean;
 import com.edufound.reader.bean.UserRecordBean;
@@ -29,10 +30,12 @@ import com.edufound.reader.model.CharacterFragmentModel;
 import com.edufound.reader.model.MyTabFragmentModel;
 import com.edufound.reader.popwindow.PopWindowUtil;
 import com.edufound.reader.receiver.BackPageReceiver;
+import com.edufound.reader.util.Consts;
 import com.edufound.reader.util.EfunboxUtil;
 import com.edufound.reader.util.GlideUtils;
 import com.edufound.reader.util.MMKVUtil;
 import com.edufound.reader.util.SizeUtils;
+import com.edufound.reader.util.TimeUtil;
 import com.google.gson.reflect.TypeToken;
 import com.okhttplib.HttpInfo;
 import com.okhttplib.callback.Callback;
@@ -346,7 +349,6 @@ public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.
         mModel.getIsCheckNum(mView.getActivity(), new Callback() {
             @Override
             public void onSuccess(HttpInfo info) throws IOException {
-                Logger.e("info:" + info.getRetDetail());
                 HttpResultBean<String> bean = info.getRetDetail(new TypeToken<HttpResultBean<String>>() {
                 }.getType());
                 if (Integer.valueOf(bean.getData()) == 0) {
@@ -377,7 +379,12 @@ public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.
 
     @Override
     public void fragmentResume() {
-
+        if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
+            if (Consts.getmConstsBaiDuUserBean().getUserInfo().getIsVip() == 1) {
+                //是VIP
+                mView.getIsBuySuccess(TimeUtil.getDateFromSeconds(String.valueOf(Consts.getmConstsBaiDuUserBean().getUserInfo().getEndTimestamp())));
+            }
+        }
     }
 
 

+ 26 - 32
app/src/main/java/com/edufound/reader/presenter/RecommendFragmentPresenter.java

@@ -53,7 +53,7 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
     List<UserRecordBean> mDataList;
     SlideVideoAdapter mAdapter;
     int loadType = 0;
-    int mTotalSize = 0;
+    int mTotalSize = 20;
     int mPageIndex = 1;
     boolean loadOver = false;
     private String intoPage;
@@ -62,7 +62,9 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
     public RecommendFragmentPresenter(Context context) {
         mModel = new RecommendFragmentModel();
         mContext = context;
-
+        if (mDataList == null) {
+            mDataList = new ArrayList<>();
+        }
     }
 
 
@@ -98,6 +100,7 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
             mDataList = ((BaseActivity) mView.getActivity()).getGson().fromJson(mView.getDataJson(), new TypeToken<List<UserRecordBean>>() {
             }.getType());
             initVideoDate(rv, startPosition);
+            mTotalSize = mDataList.size();
             mView.getRootView().setVisibility(View.VISIBLE);
             mView.getRootView().post(new Runnable() {
                 @Override
@@ -116,9 +119,6 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
         rv.setNestedScrollingEnabled(false);
         mViewPagerLayoutManager = new ViewPagerLayoutManager(mView.getActivity(), OrientationHelper.VERTICAL);
         rv.setLayoutManager(mViewPagerLayoutManager);
-        if (mDataList == null) {
-            mDataList = new ArrayList<>();
-        }
         mAdapter = new SlideVideoAdapter(mView.getActivity(), mDataList);
         rv.setAdapter(mAdapter);
         mViewPagerLayoutManager.setOnViewPagerListener(new OnViewPagerListener() {
@@ -145,7 +145,11 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
                 mCurrentPosition = position;
                 if (mCurrentPosition == 0) {
                     Toast.makeText(mContext, "已经是第一个了", Toast.LENGTH_SHORT).show();
+                } else if (mCurrentPosition == (mTotalSize - 1)) {
+                    Toast.makeText(mContext, "已经是最后一个了", Toast.LENGTH_SHORT).show();
                 }
+//                Logger.e("mCurrentPosition:" + mCurrentPosition);
+//                Logger.e("mDataList:" + mDataList.size());
             }
         });
         rv.addOnChildAttachStateChangeListener(new RecyclerView.OnChildAttachStateChangeListener() {
@@ -189,10 +193,6 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
     public void fragmentPause(RecyclerView rv) {
         Jzvd.releaseAllVideos();
         JzvdStd.goOnPlayOnPause();
-        if (rv.getChildCount() > 0) {
-            RvListJzvdStd player = rv.getChildAt(0).findViewById(R.id.slidevideo_video);
-//            player.pauseVideo();
-        }
     }
 
     @Override
@@ -214,11 +214,11 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
 
     @Override
     public void getRecommendDataList() {
-//        if (mDataList != null && mDataList.size() >= mTotalSize) {
-//            loadOver = true;
+        if (mDataList != null && mDataList.size() >= mTotalSize) {
+            loadOver = true;
 //            Toast.makeText(mContext, "没有更多了", Toast.LENGTH_SHORT).show();
-//            return;
-//        }
+            return;
+        }
         if (TextUtils.isEmpty(MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE))) {
             //如果是空的,就是没选择过年纪。然后给个默认的一年级
             //PRESCHOOL,FIRST_GRADE,SECOND_GRADE,THIRD_GRADE,FOURTH_GRADE
@@ -231,19 +231,14 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
         if (Consts.getmConstsUserBean() == null) {
             grade = EfunboxUtil.getEnumByCNGrade("一年级");
         }
-        Logger.e("请求推荐列表");
         mModel.getRecommendList(mView.getActivity(), grade, mPageIndex, new Callback() {
             @Override
             public void onSuccess(HttpInfo info) throws IOException {
                 HttpResultBean<HttpResultDataListBean<UserRecordBean>> bean = info.getRetDetail(new TypeToken<HttpResultBean<HttpResultDataListBean<UserRecordBean>>>() {
                 }.getType());
-                if (mDataList == null) {
-                    mDataList = bean.getData().getList();
-                    mTotalSize = Integer.valueOf(bean.getData().getTotalSize());
-                } else {
-                    mDataList.addAll(bean.getData().getList());
-                    mAdapter.addMored(mDataList);
-                }
+                mAdapter.addMored(bean.getData().getList());
+//                    mDataList.addAll(bean.getData().getList());
+                mTotalSize = Integer.valueOf(bean.getData().getTotalSize());
                 mView.getRootView().post(new Runnable() {
                     @Override
                     public void run() {
@@ -363,23 +358,19 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
 
     @Override
     public void getMyFollowAllVideo() {
-//        if (mDataList != null && mDataList.size() >= mTotalSize) {
-//            loadOver = true;
+        if (mDataList != null && mDataList.size() >= mTotalSize) {
+            loadOver = true;
 //            Toast.makeText(mContext, "没有更多了", Toast.LENGTH_SHORT).show();
-//            return;
-//        }
+            return;
+        }
         mModel.getMyFollowAllVideo(mView.getActivity(), mPageIndex, new Callback() {
             @Override
             public void onSuccess(HttpInfo info) throws IOException {
                 HttpResultBean<HttpResultDataListBean<UserRecordBean>> bean = info.getRetDetail(new TypeToken<HttpResultBean<HttpResultDataListBean<UserRecordBean>>>() {
                 }.getType());
-                if (mDataList == null) {
-                    mDataList = bean.getData().getList();
-                    mTotalSize = Integer.valueOf(bean.getData().getTotalSize());
-                } else {
-                    mDataList.addAll(bean.getData().getList());
-                    mAdapter.addMored(mDataList);
-                }
+                mAdapter.addMored(bean.getData().getList());
+//                    mDataList.addAll(bean.getData().getList());
+                mTotalSize = Integer.valueOf(bean.getData().getTotalSize());
                 mView.getRootView().post(new Runnable() {
                     @Override
                     public void run() {
@@ -387,6 +378,8 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
                         mPageIndex++;
                         mView.getRootView().setVisibility(View.VISIBLE);
                     }
+
+
                 });
             }
 
@@ -458,6 +451,7 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
 //            Toast.makeText(this, "已滑动到底部了", Toast.LENGTH_LONG).show();
 //            CToast.makeText(mView.getActivity(), "滑动到最后一个啦", 3000).show();
 
+            Logger.e("loadOver:" + loadOver);
             if (loadOver) {
                 return;
             }

+ 5 - 0
app/src/main/java/com/edufound/reader/presenter/RecordPresenter.java

@@ -16,9 +16,11 @@ import android.widget.Toast;
 import com.chivox.aiengine.EvalResult;
 import com.edufound.reader.base.BaseActivity;
 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.UserRecordBean;
+import com.edufound.reader.botsdk.BotRegisterListener;
 import com.edufound.reader.contract.RecordContract;
 import com.edufound.reader.cusview.FullScreenVideoController;
 import com.edufound.reader.cusview.RvListJzvdStd;
@@ -91,6 +93,9 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
     public void getReadInfo(Intent intent) {
         Bundle params = intent.getBundleExtra("params_bundle");
         mReadId = params.getString("exampleId");
+        if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
+            BotRegisterListener.uploadUsage("1", mReadId, "record", "vip");
+        }
         mModel.getReadInfo(mView.getActivity(), mReadId, new Callback() {
             @Override
             public void onSuccess(HttpInfo info) throws IOException {

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

@@ -36,6 +36,17 @@ public class Consts {
 
     private static File mRecordSaveFile = null;
 
+
+    private static Boolean isNeedLogin = false;
+
+    public static Boolean getIsNeedLogin() {
+        return isNeedLogin;
+    }
+
+    public static void setIsNeedLogin(Boolean isNeedLogin) {
+        Consts.isNeedLogin = isNeedLogin;
+    }
+
     public static File getmRecordSaveFile() {
         return mRecordSaveFile;
     }
@@ -106,6 +117,7 @@ public class Consts {
         return isDebug;
     }
 
+
     public static void setIsDebug(boolean isDebug) {
         Consts.isDebug = isDebug;
     }

+ 0 - 1
app/src/main/java/com/edufound/reader/util/OkHttpClient.java

@@ -92,7 +92,6 @@ class EfunboxCallBack implements Callback {
 
     @Override
     public void onSuccess(HttpInfo info) throws IOException {
-        Logger.e("EfunboxCallBack--onSuccess");
         HttpResultBean<Object> bean = info.getRetDetail(new TypeToken<HttpResultBean<Object>>() {
         }.getType());
         if (bean.getCount() != null && !bean.getCount().equals("")) {

+ 18 - 0
app/src/main/java/com/edufound/reader/util/TimeUtil.java

@@ -169,4 +169,22 @@ public class TimeUtil {
         return result;
     }
 
+
+    /**
+     * 秒数转化为日期
+     */
+    public static String getDateFromSeconds(String seconds) {
+        if (seconds == null)
+            return " ";
+        else {
+            Date date = new Date();
+            try {
+                date.setTime(Long.parseLong(seconds) * 1000);
+            } catch (NumberFormatException nfe) {
+
+            }
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            return sdf.format(date);
+        }
+    }
 }

BIN
app/src/main/res/drawable/app_exit_icon.png


BIN
app/src/main/res/drawable/app_isvip_icon.png


+ 1 - 0
app/src/main/res/layout/activity_customerservice.xml

@@ -76,6 +76,7 @@
                     android:background="@drawable/popup_window_bind_wechat_qrcode_bg">
 
                 <ImageView
+                        android:id="@+id/activity_customerservice_qrcode"
                         android:layout_width="203dp"
                         android:layout_height="203dp"
                         android:layout_gravity="center"

+ 79 - 59
app/src/main/res/layout/activity_main.xml

@@ -17,77 +17,97 @@
             app:layout_constraintTop_toTopOf="parent"></FrameLayout>
 
 
-    <LinearLayout
+    <FrameLayout
             android:layout_width="1280dp"
             android:layout_height="720dp"
-            android:orientation="horizontal"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintDimensionRatio="h,16:9"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent">
 
-        <FrameLayout
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_gravity="left"
-                android:layout_weight="1.5">
-
+        <LinearLayout
+                android:layout_width="1280dp"
+                android:layout_height="720dp"
+                android:orientation="horizontal"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintDimensionRatio="h,16:9"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent">
 
-            <RadioGroup
-                    android:id="@+id/main_left_tab_layout"
-                    android:layout_width="wrap_content"
+            <FrameLayout
+                    android:layout_width="0dp"
                     android:layout_height="match_parent"
-                    android:layout_gravity="right"
-                    android:divider="@drawable/main_left_tab_divider"
-                    android:gravity="center"
-                    android:orientation="vertical"
-                    android:showDividers="middle">
-
-                <RadioButton
-                        android:id="@+id/main_left_tab_layout_myinfo"
-                        android:layout_width="146dp"
-                        android:layout_height="146dp"
-                        android:background="@drawable/main_left_tab_myinfo_selector"
-                        android:button="@null"></RadioButton>
-
-                <RadioButton
-                        android:id="@+id/main_left_tab_layout_recommend"
-                        android:layout_width="146dp"
-                        android:layout_height="146dp"
-                        android:background="@drawable/main_left_tab_recommend_selector"
-                        android:button="@null"></RadioButton>
-
-                <RadioButton
-                        android:id="@+id/main_left_tab_layout_follow"
-                        android:layout_width="146dp"
-                        android:layout_height="146dp"
-                        android:background="@drawable/main_left_tab_follow_selector"
-                        android:button="@null"></RadioButton>
-
-                <RadioButton
-                        android:id="@+id/main_left_tab_layout_character"
-                        android:layout_width="146dp"
-                        android:layout_height="146dp"
-                        android:background="@drawable/main_left_tab_character_selector"
-                        android:button="@null"></RadioButton>
-
-            </RadioGroup>
-        </FrameLayout>
-
-
-        <FrameLayout
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="9">
+                    android:layout_gravity="left"
+                    android:layout_weight="1.5">
+
+
+                <RadioGroup
+                        android:id="@+id/main_left_tab_layout"
+                        android:layout_width="wrap_content"
+                        android:layout_height="match_parent"
+                        android:layout_gravity="right"
+                        android:divider="@drawable/main_left_tab_divider"
+                        android:gravity="center"
+                        android:orientation="vertical"
+                        android:showDividers="middle">
+
+                    <RadioButton
+                            android:id="@+id/main_left_tab_layout_myinfo"
+                            android:layout_width="146dp"
+                            android:layout_height="146dp"
+                            android:background="@drawable/main_left_tab_myinfo_selector"
+                            android:button="@null"></RadioButton>
+
+                    <RadioButton
+                            android:id="@+id/main_left_tab_layout_recommend"
+                            android:layout_width="146dp"
+                            android:layout_height="146dp"
+                            android:background="@drawable/main_left_tab_recommend_selector"
+                            android:button="@null"></RadioButton>
+
+                    <RadioButton
+                            android:id="@+id/main_left_tab_layout_follow"
+                            android:layout_width="146dp"
+                            android:layout_height="146dp"
+                            android:background="@drawable/main_left_tab_follow_selector"
+                            android:button="@null"></RadioButton>
+
+                    <RadioButton
+                            android:id="@+id/main_left_tab_layout_character"
+                            android:layout_width="146dp"
+                            android:layout_height="146dp"
+                            android:background="@drawable/main_left_tab_character_selector"
+                            android:button="@null"></RadioButton>
+
+                </RadioGroup>
+            </FrameLayout>
+
 
             <FrameLayout
-                    android:id="@+id/main_fragment_layout"
-                    android:layout_width="match_parent"
+                    android:layout_width="0dp"
                     android:layout_height="match_parent"
-                    android:layout_gravity="center"></FrameLayout>
-
-        </FrameLayout>
-    </LinearLayout>
+                    android:layout_weight="9">
+
+                <FrameLayout
+                        android:id="@+id/main_fragment_layout"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_gravity="center"></FrameLayout>
+
+            </FrameLayout>
+        </LinearLayout>
+
+
+        <ImageView
+                android:id="@+id/activity_main_exitapp_icon"
+                android:layout_width="80dp"
+                android:layout_height="80dp"
+                android:layout_gravity="top|right"
+                android:layout_marginTop="15dp"
+                android:layout_marginRight="10dp"
+                android:src="@drawable/app_exit_icon"></ImageView>
+    </FrameLayout>
 
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 7
app/src/main/res/layout/fragment_main_user.xml

@@ -203,13 +203,8 @@
                                 android:layout_width="0dp"
                                 android:layout_height="match_parent"
                                 android:layout_weight="1"
-                                android:background="@drawable/fragment_my_redflower">
-
-                            <ImageView
+                                android:background="@drawable/fragment_my_vip">
 
-                                    android:layout_width="match_parent"
-                                    android:layout_height="match_parent"
-                                    android:src="@drawable/fragment_my_vip"></ImageView>
 
                             <TextView
                                     android:id="@+id/fragment_main_user_vip_date"
@@ -324,7 +319,7 @@
                         android:layout_height="wrap_content"
                         android:gravity="center|left"
                         android:paddingLeft="10dp"
-                        android:text="我的作品:123"
+                        android:text="我的作品:0"
                         android:textColor="@color/white"
                         android:textSize="26dp"></TextView>