Jelajahi Sumber

1.个人中心切换账号刷新用户
2.小红花显示规则和红花个数
3.我的界面卡住不出数据问题
4.重构http的callback增加显示小红花广播
5.小红花广播

FailedToRead 3 tahun lalu
induk
melakukan
a66ac44bd7
25 mengubah file dengan 344 tambahan dan 60 penghapusan
  1. 2 2
      .idea/misc.xml
  2. 10 5
      app/src/fragmentUser/layout/adapter_item_record_authority.xml
  3. 13 5
      app/src/main/java/com/edufound/reader/activity/MainActivity.java
  4. 6 0
      app/src/main/java/com/edufound/reader/activity/UserInfoSettingActivity.java
  5. 1 16
      app/src/main/java/com/edufound/reader/adapter/SlideVideoAdapter.java
  6. 28 4
      app/src/main/java/com/edufound/reader/base/BaseActivity.java
  7. 2 0
      app/src/main/java/com/edufound/reader/contract/MainContract.java
  8. 9 0
      app/src/main/java/com/edufound/reader/contract/MyTabFragmentContract.java
  9. 34 1
      app/src/main/java/com/edufound/reader/cusview/RvListJzvdStd.java
  10. 26 2
      app/src/main/java/com/edufound/reader/fragment/MyTabFragment.java
  11. 0 2
      app/src/main/java/com/edufound/reader/fragment/RecommendFragment.java
  12. 7 0
      app/src/main/java/com/edufound/reader/model/MyTabFragmentModel.java
  13. 2 1
      app/src/main/java/com/edufound/reader/presenter/CharacterFragmentPresenter.java
  14. 0 1
      app/src/main/java/com/edufound/reader/presenter/CommentPresenter.java
  15. 10 2
      app/src/main/java/com/edufound/reader/presenter/MainPresenter.java
  16. 58 1
      app/src/main/java/com/edufound/reader/presenter/MyTabFragmentPresenter.java
  17. 2 1
      app/src/main/java/com/edufound/reader/presenter/OthersRecordPresenter.java
  18. 0 1
      app/src/main/java/com/edufound/reader/presenter/RecommendFragmentPresenter.java
  19. 4 5
      app/src/main/java/com/edufound/reader/presenter/RecordPresenter.java
  20. 5 0
      app/src/main/java/com/edufound/reader/receiver/BackPageReceiver.java
  21. 68 0
      app/src/main/java/com/edufound/reader/receiver/ShowFollowReceiver.java
  22. 1 1
      app/src/main/java/com/edufound/reader/util/HttpInterceptor.java
  23. 44 4
      app/src/main/java/com/edufound/reader/util/OkHttpClient.java
  24. 11 5
      app/src/main/res/layout/adapter_item_record_user.xml
  25. 1 1
      app/src/main/res/layout/anim_getfollow.xml

+ 2 - 2
.idea/misc.xml

@@ -35,7 +35,7 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentUser/layout/activity_mycollection.xml" value="0.2" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentUser/layout/activity_myfollow.xml" value="0.12" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentUser/layout/activity_smallfull_video.xml" value="0.1" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentUser/layout/adapter_item_record_authority.xml" value="0.75" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentUser/layout/adapter_item_record_authority.xml" value="0.25" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentUser/layout/fragment_user_rv_bottom.xml" value="0.2771317829457364" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentUser/layout/popup_window_bind_wechat.xml" value="0.25" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/fragmentUser/layout/popupwindow_bind_wechat.xml" value="0.5" />
@@ -82,7 +82,7 @@
         <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/anim_getfollow.xml" value="0.75" />
+        <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" />

+ 10 - 5
app/src/fragmentUser/layout/adapter_item_record_authority.xml

@@ -11,19 +11,24 @@
             android:paddingLeft="12dp"
             android:paddingTop="12dp"
             android:paddingRight="12dp"
-            android:paddingBottom="24dp">
+            android:paddingBottom="12dp">
 
         <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:orientation="vertical">
 
-            <ImageView
-                    android:id="@+id/adapter_item_record_authority_icon"
+            <com.edufound.reader.cusview.RoundFrameLayout
                     android:layout_width="match_parent"
                     android:layout_height="0dp"
-                    android:layout_weight="3"
-                    android:scaleType="fitXY"></ImageView>
+                    android:layout_weight="4">
+
+                <ImageView
+                        android:id="@+id/adapter_item_record_authority_icon"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:scaleType="fitXY"></ImageView>
+            </com.edufound.reader.cusview.RoundFrameLayout>
 
             <LinearLayout
                     android:layout_width="match_parent"

+ 13 - 5
app/src/main/java/com/edufound/reader/activity/MainActivity.java

@@ -5,6 +5,7 @@ import android.app.Activity;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.net.Uri;
 import android.view.KeyEvent;
 import android.view.ViewGroup;
@@ -118,14 +119,17 @@ public class MainActivity extends BaseMvpActivity<MainPresenter> implements Main
     @Override
     protected void onPause() {
         super.onPause();
-        BackPageReceiver.unRegisterReceiver(this);
+        unregisterReceiver(receiver);
     }
 
     @Override
     protected void onResume() {
         super.onResume();
-        BackPageReceiver.registerReceiver(this, BackPageReceiver.BACK_HOME_REF_VIDEO_ITEM);
-        BackPageReceiver.registerBackPageReceiverListener(backListener);
+        mPresenter.activityResume();
+        IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(BackPageReceiver.BACK_HOME_REF_MY_FRAGMENT);
+        intentFilter.addAction(BackPageReceiver.BACK_HOME_REF_VIDEO_ITEM);
+        registerReceiver(receiver, intentFilter);
     }
 
     @Override
@@ -134,12 +138,16 @@ public class MainActivity extends BaseMvpActivity<MainPresenter> implements Main
         mPresenter.activityDestroy();
     }
 
-    BackPageReceiver.onBackPage backListener = new BackPageReceiver.onBackPage() {
+
+    BroadcastReceiver receiver = new BroadcastReceiver() {
         @Override
-        public void pageBack(Intent intent) {
+        public void onReceive(Context context, Intent intent) {
             if (intent.getAction().equals(BackPageReceiver.BACK_HOME_REF_VIDEO_ITEM)) {
                 //从其他页面回来了。查询一下单独的item数据,然后赋值
                 mPresenter.refRecordById(intent.getStringExtra("recordId"));
+            } else if (intent.getAction().equals(BackPageReceiver.BACK_HOME_REF_MY_FRAGMENT)) {
+
+                mPresenter.refMyFragment();
             }
         }
     };

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

@@ -347,4 +347,10 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
         super.botOnBuyStatusUpdated(purchaseResult, productId, baiduOrderId, sellerOrderId, msg, token);
         Logger.e(getLocalClassName() + "botOnBuyStatusUpdated");
     }
+
+    @Override
+    protected void refUserInfo(UserBean bean) {
+        super.refUserInfo(bean);
+        getUserInfoSuccess(bean);
+    }
 }

+ 1 - 16
app/src/main/java/com/edufound/reader/adapter/SlideVideoAdapter.java

@@ -61,10 +61,9 @@ public class SlideVideoAdapter extends RecyclerView.Adapter<VideoHolder> {
     @Override
     public void onBindViewHolder(@NonNull VideoHolder holder, int position) {
 //        holder.mVideo.setUp(new JZDataSource(mListData.get(position).getUserRead().getVideoPath()), JzvdStd.SCREEN_FULLSCREEN);
-        holder.mVideo.setUp(new JZDataSource(mListData.get(position).getUserRead().getVideoPath()), JzvdStd.SCREEN_FULLSCREEN, JZMediaIjk.class);
+        holder.mVideo.setUp(new JZDataSource(mListData.get(position).getUserRead().getVideoPath()), JzvdStd.SCREEN_FULLSCREEN, JZMediaIjk.class, mListData.get(position).getUserRead().getId());
         GlideUtils.loadImageSizeKipMemoryCache(mContext, mListData.get(position).getUserRead().getCoverImg(), holder.mVideo.posterImageView);
         holder.initDanMu(mListData.get(position).getUserRead().getId());
-        holder.postPlayLog(mListData.get(position).getUserRead().getId());
         holder.mVideo.startPreloading();
         holder.mSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
             @Override
@@ -126,20 +125,6 @@ class VideoHolder extends RecyclerView.ViewHolder {
     }
 
 
-    public void postPlayLog(String readid) {
-        OkHttpClient.doPostAsync(mContext, 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 {
-
-            }
-
-            @Override
-            public void onFailure(HttpInfo info) throws IOException {
-            }
-        });
-    }
-
-
     public void initDanMu(String exampleId) {
         OkHttpClient.doGetAsync(mContext, new HttpInfo.Builder().setUrl(Consts.getFinalApi() + "/posts/list").addParam("columnId", exampleId).addParam("pageNo", String.valueOf(1)).addParam("pageSize", "1000"), new Callback() {
             @Override

+ 28 - 4
app/src/main/java/com/edufound/reader/base/BaseActivity.java

@@ -20,6 +20,7 @@ import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.view.animation.LinearInterpolator;
 import android.widget.FrameLayout;
+import android.widget.TextView;
 import android.widget.Toast;
 
 import com.alibaba.fastjson.JSONObject;
@@ -37,6 +38,7 @@ import com.edufound.reader.botsdk.BotRegisterListener;
 import com.edufound.reader.botsdk.IBotIntentCallback;
 import com.edufound.reader.receiver.HomeKeyEventReceiver;
 import com.edufound.reader.receiver.NetworkChangeReceiver;
+import com.edufound.reader.receiver.ShowFollowReceiver;
 import com.edufound.reader.util.Consts;
 import com.edufound.reader.util.DeviceUuidFactory;
 import com.edufound.reader.util.EfunboxUtil;
@@ -72,10 +74,12 @@ public abstract class BaseActivity extends AppCompatActivity {
     //按home键的receiver
     HomeKeyEventReceiver mHomeReceiver;
     //登录广播action
-    private final String LOGIN_SUCCESS_ACTION = "efunbox.login.success";
     //Gson
     Gson mGson;
 
+    ShowFollowReceiver mFollowReceiver;
+
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -111,9 +115,12 @@ public abstract class BaseActivity extends AppCompatActivity {
         // 注册网络广播
         NetworkChangeReceiver.registerReceiver(this);
         NetworkChangeReceiver.registerObserver(NetStateChangeObserver);
-        //注册登录广播
-        registerReceiver(loginReceiver, new IntentFilter(LOGIN_SUCCESS_ACTION));
+        //注册百度广播
         BotRegisterListener.registerListener(mBotIntentCallBack, mIAccountChargeMsgListener);
+        //注册小红花广播
+        ShowFollowReceiver.registerReceiver(this);
+        ShowFollowReceiver.registerObserver(showFollow);
+
 
     }
 
@@ -126,6 +133,9 @@ public abstract class BaseActivity extends AppCompatActivity {
         clearDisposable();
         unregisterReceiver(mHomeReceiver);
         NetworkChangeReceiver.unRegisterReceiver(this);
+        NetworkChangeReceiver.unRegisterObserver(NetStateChangeObserver);
+        ShowFollowReceiver.unRegisterReceiver(this);
+        ShowFollowReceiver.unRegisterObserver(showFollow);
     }
 
     /**
@@ -252,9 +262,10 @@ public abstract class BaseActivity extends AppCompatActivity {
     }
 
 
-    public void showFollowCountAnim() {
+    public void showFollowCountAnim(String count) {
         View mFollowView = LayoutInflater.from(this).inflate(R.layout.anim_getfollow, null);
         FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        ((TextView) mFollowView.findViewById(R.id.anim_getfollow_followcount)).setText("+" + count);
         params.gravity = Gravity.CENTER;
         mFollowView.setLayoutParams(params);
         ObjectAnimator mRotationImgAnim = ObjectAnimator.ofFloat(mFollowView, "translationY", 0, -150);
@@ -314,6 +325,10 @@ public abstract class BaseActivity extends AppCompatActivity {
 
     }
 
+    protected void refUserInfo(UserBean bean) {
+    }
+
+
     /**
      * 支付状态改变的通知
      *
@@ -398,6 +413,7 @@ public abstract class BaseActivity extends AppCompatActivity {
 //                                        bean.getData().setNickName(nickName);
                                         Consts.setmConstsUserBean(bean.getData());
                                         Logger.e("看看到底对没有:" + getGson().toJson(Consts.getmConstsUserBean()));
+                                        refUserInfo(Consts.getmConstsUserBean());
                                     }
 
                                     @Override
@@ -459,4 +475,12 @@ public abstract class BaseActivity extends AppCompatActivity {
 
         }
     };
+
+
+    ShowFollowReceiver.ShowFollow showFollow = new ShowFollowReceiver.ShowFollow() {
+        @Override
+        public void showFollow(Intent intent) {
+            showFollowCountAnim(intent.getStringExtra("follow_count"));
+        }
+    };
 }

+ 2 - 0
app/src/main/java/com/edufound/reader/contract/MainContract.java

@@ -40,5 +40,7 @@ public interface MainContract {
         void registerMobile(String mobileNo);
 
         void refRecordById(String id);
+
+        void refMyFragment();
     }
 }

+ 9 - 0
app/src/main/java/com/edufound/reader/contract/MyTabFragmentContract.java

@@ -19,6 +19,8 @@ public interface MyTabFragmentContract {
 
         void changeMyRecordStatusById(Activity activity, String json, Callback callback);
 
+        void getIsCheckNum(Activity activity, Callback callback);
+
 
     }
 
@@ -52,6 +54,13 @@ public interface MyTabFragmentContract {
 
         void changeMyRecordStatusById(String json);
 
+        void sendRefMyFragment();
+
+        void getCheckNum();
+
+        void fragmentPause();
+
+        void fragmentResume();
 
 
     }

+ 34 - 1
app/src/main/java/com/edufound/reader/cusview/RvListJzvdStd.java

@@ -29,8 +29,13 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.edufound.reader.R;
+import com.edufound.reader.util.Consts;
+import com.edufound.reader.util.OkHttpClient;
+import com.okhttplib.HttpInfo;
+import com.okhttplib.callback.Callback;
 import com.orhanobut.logger.Logger;
 
+import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayDeque;
 import java.util.Date;
@@ -114,6 +119,7 @@ public class RvListJzvdStd extends Jzvd {
 
     public boolean canPause = true;
 
+    private String playLogId = "";
 
     public RvListJzvdStd(Context context) {
         super(context);
@@ -188,7 +194,7 @@ public class RvListJzvdStd extends Jzvd {
         mRetryBtn.setOnClickListener(this);
     }
 
-    public void setUp(JZDataSource jzDataSource, int screen, Class mediaInterfaceClass) {
+    public void setUp(JZDataSource jzDataSource, int screen, Class mediaInterfaceClass, String readId) {
         if ((System.currentTimeMillis() - gobakFullscreenTime) < 200) {
             return;
         }
@@ -199,6 +205,7 @@ public class RvListJzvdStd extends Jzvd {
 
 
         super.setUp(jzDataSource, screen, mediaInterfaceClass);
+        playLogId = readId;
         titleTextView.setText(jzDataSource.title);
         setScreen(screen);
 
@@ -979,9 +986,19 @@ public class RvListJzvdStd extends Jzvd {
     @Override
     public void onInfo(int what, int extra) {
         super.onInfo(what, extra);
+        switch (what) {
+            case STATE_PREPARING_PLAYING:
+                if (playLogId != null && !playLogId.equals("")) {
+                    postPlayLog(playLogId);
+                } else {
+                    Logger.e("playLogId==null");
+                }
+                break;
+        }
         if (this.mCallBack != null) {
             this.mCallBack.onInfo(what, extra);
         }
+
     }
 
     @Override
@@ -1002,9 +1019,25 @@ public class RvListJzvdStd extends Jzvd {
         if (mCallBack != null) {
             mCallBack.onComplete();
         }
+
+
 //        CToast.makeText(jzvdContext, "onCompletion", 3000).show();
     }
 
+    public void postPlayLog(String readid) {
+        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());
+
+            }
+
+            @Override
+            public void onFailure(HttpInfo info) throws IOException {
+            }
+        });
+    }
+
     @Override
     public void reset() {
         cancelDismissControlViewTimer();

+ 26 - 2
app/src/main/java/com/edufound/reader/fragment/MyTabFragment.java

@@ -1,6 +1,7 @@
 package com.edufound.reader.fragment;
 
 import android.annotation.SuppressLint;
+import android.content.Intent;
 import android.graphics.Rect;
 import android.os.Build;
 import android.os.Bundle;
@@ -30,6 +31,7 @@ import com.edufound.reader.bean.UserRecordBean;
 import com.edufound.reader.botsdk.BotRegisterListener;
 import com.edufound.reader.contract.MyTabFragmentContract;
 import com.edufound.reader.presenter.MyTabFragmentPresenter;
+import com.edufound.reader.receiver.BackPageReceiver;
 import com.edufound.reader.util.Consts;
 import com.edufound.reader.util.EfunboxUtil;
 import com.edufound.reader.util.GlideUtils;
@@ -101,10 +103,17 @@ public class MyTabFragment extends BaseMvpFragment<MyTabFragmentPresenter> imple
         mNoRecordLayout = view.findViewById(R.id.fragment_main_user_norecord);
         mFlowerCount = view.findViewById(R.id.fragment_main_user_redflower_text);
         mPresenter.initGridLayout(mGridLayout, mNoRecordLayout);
+//        getRootView().postDelayed(new Runnable() {
+//            @Override
+//            public void run() {
+//                mPresenter.getMyInfo();
+//            }
+//        }, 200);
         mPresenter.getMyInfo();
-        mPresenter.getMyRecords();
+
 //        mPresenter.getIsBuy();
-        mPresenter.getAuth();
+//        mPresenter.getAuth();
+
     }
 
 
@@ -146,6 +155,7 @@ public class MyTabFragment extends BaseMvpFragment<MyTabFragmentPresenter> imple
             Toast.makeText(getActivity(), "click vip", Toast.LENGTH_SHORT).show();
 //            toNextActivity(PayActivity.class);
             BotRegisterListener.payBaiDuVip();
+
         });
         addUiClick(mHeadUserRedFlower, o -> {
             Toast.makeText(getActivity(), "click 小红花", Toast.LENGTH_SHORT).show();
@@ -190,6 +200,19 @@ public class MyTabFragment extends BaseMvpFragment<MyTabFragmentPresenter> imple
 
     }
 
+
+    @Override
+    public void onPause() {
+        mPresenter.fragmentPause();
+        super.onPause();
+    }
+
+    @Override
+    public void onResume() {
+        mPresenter.fragmentResume();
+        super.onResume();
+    }
+
     @Override
     public ViewGroup getRootView() {
         return (ViewGroup) mRootView;
@@ -227,6 +250,7 @@ public class MyTabFragment extends BaseMvpFragment<MyTabFragmentPresenter> imple
     @Override
     public void setRecordSize(int size) {
         mRecordSize.setText("我的作品:" + size);
+
     }
 
     @Override

+ 0 - 2
app/src/main/java/com/edufound/reader/fragment/RecommendFragment.java

@@ -276,7 +276,6 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
         if (isfavorites) {
             mCollentStatus.setText("已收藏");
             ((ImageView) mCollectionLayout.findViewById(R.id.fragment_recommend_collection_icon)).setImageResource(R.drawable.fragment_recommend_collection_icon_s);
-            ((BaseActivity) getActivity()).showFollowCountAnim();
         } else {
             mCollentStatus.setText("未收藏");
             ((ImageView) mCollectionLayout.findViewById(R.id.fragment_recommend_collection_icon)).setImageResource(R.drawable.fragment_recommend_collection_icon);
@@ -287,7 +286,6 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
     public void setLikes(String count) {
         if (!count.equals(mThumbCount.getText().toString())) {
             ((ImageView) mThumbsLayout.findViewById(R.id.fragment_recommend_thumbs_icon)).setImageResource(R.drawable.fragment_recommend_thumbs_up_s);
-            ((BaseActivity) getActivity()).showFollowCountAnim();
         }
         mThumbCount.setText(count);
     }

+ 7 - 0
app/src/main/java/com/edufound/reader/model/MyTabFragmentModel.java

@@ -10,6 +10,8 @@ import com.okhttplib.callback.Callback;
 
 public class MyTabFragmentModel implements MyTabFragmentContract.Model {
     public static final int LOAD_GRID = 0x1231;
+    public static final int GET_CHECK_NUM = 0x1232;
+
     private String API = Consts.getFinalApi();
 
     @Override
@@ -27,4 +29,9 @@ public class MyTabFragmentModel implements MyTabFragmentContract.Model {
         OkHttpClient.doPutAsync(activity, new HttpInfo.Builder().setUrl(API + "/userRead").addParamJson(json), callback);
     }
 
+    @Override
+    public void getIsCheckNum(Activity activity, Callback callback) {
+        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/userRead/check"), callback);
+    }
+
 }

+ 2 - 1
app/src/main/java/com/edufound/reader/presenter/CharacterFragmentPresenter.java

@@ -123,7 +123,8 @@ public class CharacterFragmentPresenter extends BasePresenter<CharacterFragmentC
         TextView looknum = view.findViewById(R.id.adapter_item_record_authority_look_num);
         TextView thumbnum = view.findViewById(R.id.adapter_item_record_authority_thumb_num);
         TextView startnum = view.findViewById(R.id.adapter_item_record_authority_start_num);
-        GlideUtils.loadRoundCircleImage(mContext, mDataList.get(index).getUserRead().getCoverImg(), imgIcon, SizeUtils.dp2px(mContext, 20));
+//        GlideUtils.loadRoundCircleImage(mContext, mDataList.get(index).getUserRead().getCoverImg(), imgIcon, SizeUtils.dp2px(mContext, 20));
+        GlideUtils.loadImage(mContext, mDataList.get(index).getUserRead().getCoverImg(), imgIcon);
         name.setText(mDataList.get(index).getUserRead().getTitle());
         allcount.setText(EfunboxUtil.checkNum10000(mDataList.get(index).getUserRead().getCommentAmount()));
         looknum.setText(EfunboxUtil.checkNum10000(mDataList.get(index).getUserRead().getPlayAmount()));

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

@@ -239,7 +239,6 @@ public class CommentPresenter extends BasePresenter<CommentContract.View> implem
 
     @Override
     public void sendBackReceiver() {
-        Logger.e("发送广播");
         Intent intent = new Intent(BackPageReceiver.BACK_HOME_REF_VIDEO_ITEM);
         intent.putExtra("recordId", this.exampleId);
         mView.getActivity().sendBroadcast(intent);

+ 10 - 2
app/src/main/java/com/edufound/reader/presenter/MainPresenter.java

@@ -54,7 +54,7 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
     FragmentManager mFragmentManager;
     RecommendFragment mFollowFragment;
     CharacterFragment mCharacterFragment;
-    int mRadioCheckIndex = 0;
+    int mRadioCheckIndex = -1;
 
     public MainPresenter(FragmentManager fragmentManager) {
         mModel = new MainModel();
@@ -124,7 +124,7 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
 
     @Override
     public void activityResume() {
-
+        refMyFragment();
     }
 
     @Override
@@ -255,6 +255,14 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
 
     }
 
+    @Override
+    public void refMyFragment() {
+        if (mRadioCheckIndex == 0) {
+            mUserFragment = new MyTabFragment();
+            changeFragmentLayout(mUserFragment);
+        }
+    }
+
 
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         switch (keyCode) {

+ 58 - 1
app/src/main/java/com/edufound/reader/presenter/MyTabFragmentPresenter.java

@@ -39,6 +39,7 @@ import com.okhttplib.callback.Callback;
 import com.orhanobut.logger.Logger;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.View> implements MyTabFragmentContract.Presenter {
@@ -50,6 +51,7 @@ public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.
     int mListStart = 0;
     int mListEnd = 6;
     int curPosition = 0;
+    boolean isNedRef = false;
 
     public MyTabFragmentPresenter(Context context) {
         mContext = context;
@@ -117,7 +119,8 @@ public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.
         TextView commentAmount = view.findViewById(R.id.adapter_item_record_user_comment_num);
         TextView favoritesAmount = view.findViewById(R.id.adapter_item_record_user_start_num);
         FrameLayout checkLayout = view.findViewById(R.id.adapter_item_record_user_examine_layout);
-        GlideUtils.loadRoundCircleImage(mContext, reader.getCoverImg(), imgIcon, SizeUtils.dp2px(mContext, 20));
+//        GlideUtils.loadRoundCircleImage(mContext, reader.getCoverImg(), imgIcon, SizeUtils.dp2px(mContext, 20));
+        GlideUtils.loadImage(mContext, reader.getCoverImg(), imgIcon);
         if (reader.getTitle().length() > 4) {
             name.setText(reader.getTitle().substring(0, 4) + "...");
         } else {
@@ -222,6 +225,7 @@ public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.
         BackPageReceiver.unRegisterReceiver(mView.getActivity());
         if (mUserFragmentHandler != null) {
             mUserFragmentHandler.removeMessages(MyTabFragmentModel.LOAD_GRID);
+            mUserFragmentHandler.removeMessages(MyTabFragmentModel.GET_CHECK_NUM);
             mUserFragmentHandler = null;
         }
         layout.removeAllViews();
@@ -245,6 +249,9 @@ public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.
             @Override
             public void onFailure(HttpInfo info) throws IOException {
                 Logger.e("获取我的朗读列表错误:" + info.getRetDetail());
+                Logger.e("获取我的朗读列表错误:" + info.getNetCode());
+                Logger.e("获取我的朗读列表错误:" + info.getRetCode());
+
             }
         });
     }
@@ -260,6 +267,8 @@ public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.
                 HttpResultBean<MyInfoBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<MyInfoBean>>() {
                 }.getType());
                 mView.setUserInfo(bean.getData());
+                getMyRecords();
+                getCheckNum();
             }
 
             @Override
@@ -326,6 +335,51 @@ public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.
         });
     }
 
+    @Override
+    public void sendRefMyFragment() {
+        Intent intent = new Intent(BackPageReceiver.BACK_HOME_REF_MY_FRAGMENT);
+        mView.getActivity().sendBroadcast(intent);
+    }
+
+    @Override
+    public void getCheckNum() {
+        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) {
+                    Logger.e("没有审核中的了");
+                    if (isNedRef) {
+                        sendRefMyFragment();
+                        mUserFragmentHandler.removeMessages(MyTabFragmentModel.GET_CHECK_NUM);
+                    }
+                } else if (Integer.valueOf(bean.getData()) > 0) {
+                    Logger.e("还有审核中的");
+                    mUserFragmentHandler.removeMessages(MyTabFragmentModel.GET_CHECK_NUM);
+                    isNedRef = true;
+                    mUserFragmentHandler.sendEmptyMessageDelayed(MyTabFragmentModel.GET_CHECK_NUM, 5000);
+                }
+            }
+
+            @Override
+            public void onFailure(HttpInfo info) throws IOException {
+
+            }
+        });
+    }
+
+    @Override
+    public void fragmentPause() {
+        mUserFragmentHandler.removeMessages(MyTabFragmentModel.GET_CHECK_NUM);
+    }
+
+    @Override
+    public void fragmentResume() {
+
+    }
+
 
     Handler mUserFragmentHandler = new Handler(new Handler.Callback() {
         @Override
@@ -334,6 +388,9 @@ public class MyTabFragmentPresenter extends BasePresenter<MyTabFragmentContract.
                 case MyTabFragmentModel.LOAD_GRID:
                     setGridItemView((GridLayout) msg.obj, msg.arg1);
                     break;
+                case MyTabFragmentModel.GET_CHECK_NUM:
+                    getCheckNum();
+                    break;
                 default:
                     throw new IllegalStateException("Unexpected value: " + msg.what);
             }

+ 2 - 1
app/src/main/java/com/edufound/reader/presenter/OthersRecordPresenter.java

@@ -82,7 +82,8 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
         TextView commentAmount = view.findViewById(R.id.adapter_item_record_user_comment_num);
         TextView favoritesAmount = view.findViewById(R.id.adapter_item_record_user_start_num);
         FrameLayout checkLayout = view.findViewById(R.id.adapter_item_record_user_examine_layout);
-        GlideUtils.loadRoundCircleImage(mView.getActivity(), reader.getCoverImg(), imgIcon, SizeUtils.dp2px(mView.getActivity(), 20));
+//        GlideUtils.loadRoundCircleImage(mView.getActivity(), reader.getCoverImg(), imgIcon, SizeUtils.dp2px(mView.getActivity(), 20));
+        GlideUtils.loadImage(mView.getActivity(), reader.getCoverImg(), imgIcon);
         name.setText(reader.getTitle());
         lookAmount.setText(reader.getPlayAmount());
         likeAmount.setText(reader.getLikeAmount());

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

@@ -279,7 +279,6 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
                     mDataList.get(mCurrentPosition).setFavorites(false);
                     mDataList.get(mCurrentPosition).setFavoritesBean(null);
                     if (Consts.isIsNeedRemoveBR()) {
-                        Logger.e("发送广播");
                         Intent intent = new Intent(BackPageReceiver.BACK_HOME_REMOVE_VIDEO_ITEM);
                         intent.putExtra("removePosition", String.valueOf(mCurrentPosition));
                         mContext.sendBroadcast(intent);

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

@@ -100,7 +100,7 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
                 exampleUrl = mRecordUserRead.getVideoPath();
                 recordUrl = mRecordUserRead.getOriginVideo();
                 GlideUtils.loadImageSizeKipMemoryCache(mView.getActivity(), mRecordUserRead.getCoverImg(), mView.getJZVideoView().posterImageView);
-                mView.getJZVideoView().setUp(new JZDataSource(exampleUrl), JzvdStd.SCREEN_FULLSCREEN, JZMediaIjk.class);
+                mView.getJZVideoView().setUp(new JZDataSource(exampleUrl), JzvdStd.SCREEN_FULLSCREEN, JZMediaIjk.class, mRecordUserRead.getId());
             }
 
             @Override
@@ -130,7 +130,7 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
     @Override
     public void initVideoPlayer(String url) {
         Logger.e("url:" + url);
-        mView.getJZVideoView().setUp(new JZDataSource(url), JzvdStd.SCREEN_FULLSCREEN, JZMediaIjk.class);
+        mView.getJZVideoView().setUp(new JZDataSource(url), JzvdStd.SCREEN_FULLSCREEN, JZMediaIjk.class, mReadId);
     }
 
     @Override
@@ -165,8 +165,8 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
         if (mView == null || mView.getJZVideoView() == null) {
             return;
         }
-        switch (mView.getJZVideoView().state) {
-            case Jzvd.STATE_PLAYING:
+        switch (what) {
+            case Jzvd.STATE_PREPARING_PLAYING:
                 //已经开始播放了
                 if (playType.equals("READ") && (mRecordServices.getIsRecording() == false)) {
                     Logger.e("准备完毕,可以播放");
@@ -187,7 +187,6 @@ public class RecordPresenter extends BasePresenter<RecordContract.View> implemen
 
     @Override
     public void startRecord() {
-        Logger.e("startRecord--startRecord--startRecord");
         mView.hasShowOtherUI(View.INVISIBLE);
         playType = "READ";
         initVideoPlayer(recordUrl);

+ 5 - 0
app/src/main/java/com/edufound/reader/receiver/BackPageReceiver.java

@@ -33,6 +33,11 @@ public class BackPageReceiver extends BroadcastReceiver {
      */
     public static final String BACK_HOME_ADD_VIDEO_ITEM = "com.edufound.reader.back.home.add.video.item";
 
+    /**
+     * 通知刷新我的界面所有
+     */
+    public static final String BACK_HOME_REF_MY_FRAGMENT = "com.edufound.reader.ref.my.fragment";
+
     private static boolean isRegister = false;
 
     private static onBackPage mBackListener;

+ 68 - 0
app/src/main/java/com/edufound/reader/receiver/ShowFollowReceiver.java

@@ -0,0 +1,68 @@
+package com.edufound.reader.receiver;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.net.ConnectivityManager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class ShowFollowReceiver extends BroadcastReceiver {
+
+    private List<ShowFollow> mObservers = new ArrayList<>();
+    private static boolean isRegister = false;
+    public static final String SHOW_FOLLOW = "com.edufound.reader.show.follow";
+
+    private static class InstanceHolder {
+        private static final ShowFollowReceiver INSTANCE = new ShowFollowReceiver();
+    }
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        if (SHOW_FOLLOW.equals(intent.getAction())) {
+            for (ShowFollow observer : mObservers) {
+                observer.showFollow(intent);
+            }
+        }
+
+    }
+
+    public static void registerReceiver(Context context) {
+        IntentFilter intentFilter = new IntentFilter(SHOW_FOLLOW);
+        context.registerReceiver(InstanceHolder.INSTANCE, intentFilter);
+        isRegister = true;
+    }
+
+    public static void unRegisterReceiver(Context context) {
+        if (isRegister) {
+            context.unregisterReceiver(InstanceHolder.INSTANCE);
+        }
+    }
+
+    public static void registerObserver(ShowFollow observer) {
+        if (observer == null) {
+            return;
+        }
+        if (!InstanceHolder.INSTANCE.mObservers.contains(observer)) {
+            InstanceHolder.INSTANCE.mObservers.add(observer);
+        }
+    }
+
+    public static void unRegisterObserver(ShowFollow observer) {
+        if (observer == null) {
+            return;
+        }
+        if (InstanceHolder.INSTANCE.mObservers == null) {
+            return;
+        }
+        InstanceHolder.INSTANCE.mObservers.remove(observer);
+    }
+
+
+    public interface ShowFollow {
+        void showFollow(Intent intent);
+    }
+}

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

@@ -45,7 +45,7 @@ public class HttpInterceptor {
                     break;
                 case HttpInfo.CheckNet:
 //                    Toast.makeText(Consts.getmApplicAtion(), "请检查网络连接是否正常", Toast.LENGTH_SHORT).show();
-                    info.setRetDetail("请检查网络连接是否正常[" + info.getNetCode() + "]");
+                    info.setRetDetail(info.getUrl() + "---请检查网络连接是否正常[" + info.getNetCode() + "]");
                     break;
                 case HttpInfo.ConnectionTimeOut:
                     Toast.makeText(Consts.getmApplicAtion(), "连接超时", Toast.LENGTH_SHORT).show();

+ 44 - 4
app/src/main/java/com/edufound/reader/util/OkHttpClient.java

@@ -2,13 +2,18 @@ package com.edufound.reader.util;
 
 import android.app.Activity;
 import android.content.Context;
+import android.content.Intent;
 import android.os.Environment;
 
+import com.edufound.reader.bean.HttpResultBean;
+import com.edufound.reader.receiver.ShowFollowReceiver;
+import com.google.gson.reflect.TypeToken;
 import com.okhttplib.HttpInfo;
 import com.okhttplib.OkHttpUtil;
 import com.okhttplib.annotation.CacheType;
 import com.okhttplib.annotation.Encoding;
 import com.okhttplib.callback.BaseCallback;
+import com.okhttplib.callback.Callback;
 import com.okhttplib.callback.ProgressCallback;
 import com.okhttplib.cookie.PersistentCookieJar;
 import com.okhttplib.cookie.cache.SetCookieCache;
@@ -16,6 +21,7 @@ import com.okhttplib.cookie.persistence.SharedPrefsCookiePersistor;
 import com.orhanobut.logger.Logger;
 
 import java.io.File;
+import java.io.IOException;
 
 public class OkHttpClient {
     //初始化OKHTTP
@@ -47,23 +53,27 @@ public class OkHttpClient {
 
     public static void doGetAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         Logger.e("postUid:" + Consts.getUID());
-        OkHttpUtil.getDefault(activity).doGetAsync(info.addHead("uid", Consts.getUID()).build(), callback);
+        OkHttpUtil.getDefault(activity).doGetAsync(info.addHead("uid", Consts.getUID()).build(), new EfunboxCallBack(callback));
     }
 
 
     public static void doPostAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         Logger.e("postUid:" + Consts.getUID());
-        OkHttpUtil.getDefault(activity).doPostAsync(info.addHead("uid", Consts.getUID()).build(), callback);
+        OkHttpUtil.getDefault(activity).doPostAsync(info.addHead("uid", Consts.getUID()).build(), new EfunboxCallBack(callback));
+    }
+
+    public static void doPostAsync(HttpInfo.Builder info, BaseCallback callback) {
+        OkHttpUtil.getDefault().doPostAsync(info.addHead("uid", Consts.getUID()).build(), new EfunboxCallBack(callback));
     }
 
     public static void doPutAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         Logger.e("postUid:" + Consts.getUID());
-        OkHttpUtil.getDefault(activity).doPutAsync(info.addHead("uid", Consts.getUID()).build(), callback);
+        OkHttpUtil.getDefault(activity).doPutAsync(info.addHead("uid", Consts.getUID()).build(), new EfunboxCallBack(callback));
     }
 
     public static void doDeleteAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
         Logger.e("postUid:" + Consts.getUID());
-        OkHttpUtil.getDefault(activity).doDeleteAsync(info.addHead("uid", Consts.getUID()).build(), callback);
+        OkHttpUtil.getDefault(activity).doDeleteAsync(info.addHead("uid", Consts.getUID()).build(), new EfunboxCallBack(callback));
     }
 
     public static void doUploadFile(Activity activity, HttpInfo.Builder info) {
@@ -73,5 +83,35 @@ public class OkHttpClient {
 
 }
 
+class EfunboxCallBack implements Callback {
+    Callback mCallBack;
+
+    public EfunboxCallBack(BaseCallback callback) {
+        mCallBack = (Callback) 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("")) {
+            if (Integer.valueOf(bean.getCount()) > 0) {
+                //显示小红花
+                Logger.e("显示小红花");
+                Intent intent = new Intent(ShowFollowReceiver.SHOW_FOLLOW);
+                intent.putExtra("follow_count", bean.getCount());
+                Consts.getmApplicAtion().getApplicationContext().sendBroadcast(intent);
+            }
+        }
+        mCallBack.onSuccess(info);
+    }
+
+    @Override
+    public void onFailure(HttpInfo info) throws IOException {
+        mCallBack.onFailure(info);
+    }
+}
+
 
 

+ 11 - 5
app/src/main/res/layout/adapter_item_record_user.xml

@@ -11,19 +11,25 @@
             android:paddingLeft="12dp"
             android:paddingTop="12dp"
             android:paddingRight="12dp"
-            android:paddingBottom="24dp">
+            android:paddingBottom="12dp">
 
         <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:orientation="vertical">
 
-            <ImageView
-                    android:id="@+id/adapter_item_record_user_icon"
+            <com.edufound.reader.cusview.RoundFrameLayout
                     android:layout_width="match_parent"
                     android:layout_height="0dp"
-                    android:layout_weight="3"
-                    android:scaleType="fitXY"></ImageView>
+                    android:layout_weight="4">
+
+                <ImageView
+                        android:id="@+id/adapter_item_record_user_icon"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:scaleType="fitXY"></ImageView>
+            </com.edufound.reader.cusview.RoundFrameLayout>
+
 
             <LinearLayout
                     android:layout_width="match_parent"

+ 1 - 1
app/src/main/res/layout/anim_getfollow.xml

@@ -22,7 +22,7 @@
                 android:layout_marginLeft="20dp"
                 android:gravity="center"
                 android:text="+5"
-                android:textColor="@color/white"
+                android:textColor="@color/red"
                 android:textSize="35dp"
                 android:textStyle="bold"></TextView>
     </LinearLayout>