Selaa lähdekoodia

1.增加他人作品界面
2.评论界面评论点赞
3.评论界面评论回复并且刷新UI
4.视频播放官方视频无声音问题

FailedToRead 3 vuotta sitten
vanhempi
commit
37483789a7
36 muutettua tiedostoa jossa 812 lisäystä ja 455 poistoa
  1. 5 0
      .idea/jarRepositories.xml
  2. 2 2
      .idea/misc.xml
  3. 4 3
      app/build.gradle
  4. BIN
      app/libs/armeabi-v7a/libijkffmpeg.so
  5. BIN
      app/libs/armeabi-v7a/libijkplayer.so
  6. BIN
      app/libs/armeabi-v7a/libijksdl.so
  7. 6 7
      app/src/fragmentRecommend/layout/fragment_main_recommend.xml
  8. 5 3
      app/src/main/AndroidManifest.xml
  9. 42 8
      app/src/main/java/com/edufound/reader/activity/CommentActivity.java
  10. 2 1
      app/src/main/java/com/edufound/reader/activity/MainActivity.java
  11. 95 15
      app/src/main/java/com/edufound/reader/activity/OthersRecordActivity.java
  12. 26 7
      app/src/main/java/com/edufound/reader/adapter/CommentItemAdapter.java
  13. 4 2
      app/src/main/java/com/edufound/reader/adapter/SlideVideoAdapter.java
  14. 10 0
      app/src/main/java/com/edufound/reader/apiserver/UserApiServerImpl.java
  15. 13 206
      app/src/main/java/com/edufound/reader/bean/CommentListReplyBean.java
  16. 68 0
      app/src/main/java/com/edufound/reader/bean/FansBean.java
  17. 4 4
      app/src/main/java/com/edufound/reader/bean/HttpResultBean.java
  18. 120 97
      app/src/main/java/com/edufound/reader/bean/MyInfoBean.java
  19. 14 0
      app/src/main/java/com/edufound/reader/contract/CommentContract.java
  20. 24 0
      app/src/main/java/com/edufound/reader/contract/OthersRecordContract.java
  21. 0 1
      app/src/main/java/com/edufound/reader/contract/RecordContract.java
  22. 25 10
      app/src/main/java/com/edufound/reader/fragment/RecommendFragment.java
  23. 11 1
      app/src/main/java/com/edufound/reader/model/CommentModel.java
  24. 1 1
      app/src/main/java/com/edufound/reader/model/MyTabFragmentModel.java
  25. 17 0
      app/src/main/java/com/edufound/reader/model/OthersRecordModel.java
  26. 89 5
      app/src/main/java/com/edufound/reader/presenter/CommentPresenter.java
  27. 22 23
      app/src/main/java/com/edufound/reader/presenter/MainPresenter.java
  28. 141 30
      app/src/main/java/com/edufound/reader/presenter/OthersRecordPresenter.java
  29. 12 0
      app/src/main/java/com/edufound/reader/util/EfunboxUtil.java
  30. 7 0
      app/src/main/java/com/edufound/reader/util/OkHttpClient.java
  31. 7 3
      app/src/main/java/com/edufound/reader/videoutil/JZMediaIjk.java
  32. BIN
      app/src/main/res/drawable/activity_otherrecord_isfans_false.png
  33. BIN
      app/src/main/res/drawable/activity_otherrecord_isfans_true.png
  34. 5 0
      app/src/main/res/layout/activity_comment.xml
  35. 29 26
      app/src/main/res/layout/activity_otherrecord.xml
  36. 2 0
      app/src/main/res/layout/adapter_item_comment.xml

+ 5 - 0
.idea/jarRepositories.xml

@@ -36,5 +36,10 @@
       <option name="name" value="maven2" />
       <option name="url" value="https://jitpack.io" />
     </remote-repository>
+    <remote-repository>
+      <option name="id" value="maven3" />
+      <option name="name" value="maven3" />
+      <option name="url" value="https://maven.aliyun.com/repository/releases" />
+    </remote-repository>
   </component>
 </project>

+ 2 - 2
.idea/misc.xml

@@ -55,12 +55,12 @@
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/drawable/player_seekbar_list.xml" value="0.2713541666666667" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/drawable/popupwindow_select_grade_griditem_divder.xml" value="0.5048828125" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_alert_login.xml" value="0.5" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_comment.xml" value="0.5" />
+        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_comment.xml" value="0.25" />
         <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_message.xml" value="0.18" />
-        <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_otherrecord.xml" value="0.4627039627039627" />
+        <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.25" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_record.xml" value="0.20887494397131331" />
         <entry key="..\:/WorkSpace/Git_WorkSpace/efunboxReader-android/efunboxReader-android-master/app/src/main/res/layout/activity_saffloer.xml" value="0.22" />

+ 4 - 3
app/build.gradle

@@ -20,7 +20,7 @@ android {
         manifestPlaceholders = [UMENG_CHANNEL_VALUE: "2006"]//添加一个默认渠道号
         testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
         ndk {
-            abiFilters 'armeabi-v7a'
+            abiFilters "armeabi-v7a"
         }
     }
     signingConfigs {
@@ -119,9 +119,10 @@ dependencies {
     implementation 'com.umeng.umsdk:common:9.4.4'// (必选)
     implementation 'com.umeng.umsdk:asms:1.4.1'// asms包依赖必选
 
-    //ijkplayer
+    // required, enough for most devices.
     implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
-    implementation "tv.danmaku.ijk.media:ijkplayer-exo:0.8.8"
+    // ExoPlayer as IMediaPlayer: optional, experimental
+    implementation 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'
 
     //JZ播放器
     implementation 'cn.jzvd:jiaozivideoplayer:7.7.0'

BIN
app/libs/armeabi-v7a/libijkffmpeg.so


BIN
app/libs/armeabi-v7a/libijkplayer.so


BIN
app/libs/armeabi-v7a/libijksdl.so


+ 6 - 7
app/src/fragmentRecommend/layout/fragment_main_recommend.xml

@@ -34,6 +34,7 @@
                         android:layout_weight="1.5">
 
                     <FrameLayout
+                            android:id="@+id/fragment_recommend_user_head_layout"
                             android:layout_width="272dp"
                             android:layout_height="61dp"
                             android:layout_gravity="center">
@@ -45,7 +46,6 @@
                                 android:background="@drawable/fragment_recommend_userhead_bg"></ImageView>
 
                         <FrameLayout
-                                android:id="@+id/fragment_recommend_user_head_layout"
                                 android:layout_width="54dp"
                                 android:layout_height="match_parent">
 
@@ -58,8 +58,7 @@
                                 <ImageView
                                         android:id="@+id/fragment_recommend_user_head"
                                         android:layout_width="match_parent"
-                                        android:layout_height="match_parent"
-                                        android:src="@color/red" />
+                                        android:layout_height="match_parent" />
 
                             </FrameLayout>
 
@@ -78,7 +77,7 @@
                                 android:layout_gravity="center|top"
                                 android:layout_marginLeft="20dp"
                                 android:gravity="center"
-                                android:text="1581****1234"
+                                android:text="*****"
                                 android:textColor="@color/fragment_recommend_user_color"
                                 android:textSize="28dp"></TextView>
                     </FrameLayout>
@@ -124,7 +123,7 @@
                                 android:layout_gravity="center|top"
                                 android:layout_marginLeft="10dp"
                                 android:gravity="center"
-                                android:text="评论"
+                                android:text="0"
                                 android:textColor="@color/fragment_recommend_user_color"
                                 android:textSize="28dp"></TextView>
                     </FrameLayout>
@@ -171,7 +170,7 @@
                                 android:layout_gravity="center|top"
                                 android:layout_marginLeft="15dp"
                                 android:gravity="center"
-                                android:text="收藏"
+                                android:text="收藏"
                                 android:textColor="@color/fragment_recommend_user_color"
                                 android:textSize="28dp"></TextView>
                     </FrameLayout>
@@ -217,7 +216,7 @@
                                 android:layout_gravity="center|top"
                                 android:layout_marginLeft="10dp"
                                 android:gravity="center"
-                                android:text="1234"
+                                android:text="0"
                                 android:textColor="@color/fragment_recommend_user_color"
                                 android:textSize="28dp"></TextView>
                     </FrameLayout>

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

@@ -14,6 +14,7 @@
     <uses-permission android:name="android.permission.RECORD_AUDIO" />
     <uses-permission android:name="android.permission.WAKE_LOCK" />
 
+
     <application
             android:name=".application.EApplication"
             android:allowBackup="true"
@@ -46,7 +47,8 @@
 
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
-        </activity> <!-- 录音界面 -->
+        </activity>
+        <!-- 录音界面 -->
         <activity
                 android:name=".activity.RecordActivity"
                 android:configChanges="screenLayout|screenSize|keyboardHidden|keyboard|orientation"
@@ -66,8 +68,8 @@
                 android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
                 android:windowSoftInputMode="adjustNothing|stateHidden">
 
-
-        </activity> <!-- 登录界面 -->
+        </activity>
+        <!-- 登录界面 -->
         <activity
                 android:name=".activity.LoginAlertActivity"
                 android:configChanges="screenLayout|screenSize|keyboardHidden|keyboard|orientation"

+ 42 - 8
app/src/main/java/com/edufound/reader/activity/CommentActivity.java

@@ -59,6 +59,13 @@ public class CommentActivity extends BaseMvpActivity<CommentPresenter> implement
     @BindView(id = R.id.comment_count)
     TextView mCommentCount;
 
+    @BindView(id = R.id.comment_quick_layout_item1)
+    FrameLayout mQuickItem1;
+    @BindView(id = R.id.comment_quick_layout_item2)
+    FrameLayout mQuickItem2;
+    @BindView(id = R.id.comment_quick_layout_item3)
+    FrameLayout mQuickItem3;
+
     @Override
     public int getLayoutId() {
         return R.layout.activity_comment;
@@ -70,10 +77,7 @@ public class CommentActivity extends BaseMvpActivity<CommentPresenter> implement
         mActivity = this;
         mPresenter = new CommentPresenter();
         mPresenter.attachView(this);
-//        addUiClickListener(mTouchBack, o -> {
-//            Logger.e("123123123");
-//            mActivity.finish();
-//        });
+
         addUiClickListener(mBack, o -> {
             mActivity.finish();
         });
@@ -81,16 +85,37 @@ public class CommentActivity extends BaseMvpActivity<CommentPresenter> implement
             mQuickLayout.setVisibility(View.GONE);
         });
         addUiClickListener(mSendComment, o -> {
-            Toast.makeText(getActivity(), "发送评论", Toast.LENGTH_SHORT).show();
-            if (!TextUtils.isEmpty(mCommentEdit.getText().toString().trim())) {
-                mPresenter.doPosts(mCommentEdit.getText().toString());
+            if (mPresenter.getReCommentId() != null) {
+                //发送评论回复
+                Toast.makeText(getActivity(), "发送评论回复", Toast.LENGTH_SHORT).show();
+                if (!TextUtils.isEmpty(mCommentEdit.getText().toString().trim())) {
+                    mPresenter.doReplyComment(mCommentEdit.getText().toString());
+                }
+            } else {
+                Toast.makeText(getActivity(), "发送评论", Toast.LENGTH_SHORT).show();
+                if (!TextUtils.isEmpty(mCommentEdit.getText().toString().trim())) {
+                    mPresenter.doPosts(mCommentEdit.getText().toString());
+                }
             }
         });
+
+        addUiClickListener(mQuickItem1, o -> {
+            mPresenter.doPosts("很优秀,向你学习");
+        });
+        addUiClickListener(mQuickItem2, o -> {
+            mPresenter.doPosts("挺好的,期待更好");
+        });
+        addUiClickListener(mQuickItem3, o -> {
+            mPresenter.doPosts("还可以,继续努力");
+        });
+
         RxView.focusChanges(mCommentEdit).subscribe(hasFocus -> {
             if (!hasFocus) {
                 InputMethodManager manager = ((InputMethodManager) Consts.getmApplicAtion().getSystemService(Context.INPUT_METHOD_SERVICE));
-                if (manager != null)
+                if (manager != null) {
                     manager.hideSoftInputFromWindow(mCommentEdit.getWindowToken(), 0);
+                }
+                mPresenter.clearReCommentId();
             }
         });
         Bundle params = getIntent().getBundleExtra("params_bundle");
@@ -164,4 +189,13 @@ public class CommentActivity extends BaseMvpActivity<CommentPresenter> implement
     public void moveRecyclearView(int scroll) {
         mRecyclerView.smoothScrollToPosition(scroll);
     }
+
+    @Override
+    public void doPostsSuccess() {
+        mCommentEdit.setText("");
+        InputMethodManager manager = ((InputMethodManager) Consts.getmApplicAtion().getSystemService(Context.INPUT_METHOD_SERVICE));
+        if (manager != null) {
+            manager.hideSoftInputFromWindow(mCommentEdit.getWindowToken(), 0);
+        }
+    }
 }

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

@@ -38,6 +38,7 @@ import okhttp3.OkHttpClient;
 import okhttp3.Request;
 import okhttp3.RequestBody;
 import okhttp3.Response;
+import tv.danmaku.ijk.media.player.IjkMediaPlayer;
 
 public class MainActivity extends BaseMvpActivity<MainPresenter> implements MainContract.View {
 
@@ -56,6 +57,7 @@ public class MainActivity extends BaseMvpActivity<MainPresenter> implements Main
     @SuppressLint("AutoDispose")
     @Override
     public void initView() {
+
         mPresenter = new MainPresenter(getSupportFragmentManager());
         mPresenter.attachView(this);
         mActivity = this;
@@ -66,7 +68,6 @@ public class MainActivity extends BaseMvpActivity<MainPresenter> implements Main
                 mPresenter.onRadioChecked(radioGroup, id);
             }
         });
-
         mPresenter.userIsLogin();
         mPresenter.checkModelIsDebug();
 

+ 95 - 15
app/src/main/java/com/edufound/reader/activity/OthersRecordActivity.java

@@ -1,48 +1,92 @@
 package com.edufound.reader.activity;
 
+import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.graphics.Rect;
 import android.os.Build;
+import android.os.Bundle;
 import android.view.View;
+import android.widget.CompoundButton;
 import android.widget.FrameLayout;
 import android.widget.GridLayout;
 import android.widget.HorizontalScrollView;
 import android.widget.ImageView;
 import android.widget.Space;
+import android.widget.TextView;
+import android.widget.Toast;
 
 import com.edufound.reader.R;
 import com.edufound.reader.annotation.BindView;
 import com.edufound.reader.base.BaseMvpActivity;
+import com.edufound.reader.bean.MyInfoBean;
+import com.edufound.reader.bean.UserBean;
 import com.edufound.reader.contract.OthersRecordContract;
 import com.edufound.reader.presenter.OthersRecordPresenter;
 import com.edufound.reader.util.Consts;
+import com.edufound.reader.util.GlideUtils;
+import com.jakewharton.rxbinding4.view.RxView;
+import com.jakewharton.rxbinding4.widget.RxCompoundButton;
+import com.orhanobut.logger.Logger;
 
 import androidx.annotation.RequiresApi;
+import androidx.appcompat.widget.AppCompatCheckBox;
 import io.reactivex.rxjava3.functions.Consumer;
 
 public class OthersRecordActivity extends BaseMvpActivity<OthersRecordPresenter> implements OthersRecordContract.View {
 
 
     Activity mActivity;
+
     @BindView(id = R.id.activity_otherrecord_gridlayout)
     GridLayout mGridLayout;
 
     @BindView(id = R.id.activity_otherrecord_norecord)
     FrameLayout mNoRecordLayout;
+
     @BindView(id = R.id.activity_otherrecord_bottomview)
     Space mBottomView;
+
     @BindView(id = R.id.activity_otherrecord_scroll)
     HorizontalScrollView mScrollView;
+
     @BindView(id = R.id.activity_otherrecord_back)
     ImageView mBack;
+
+
+    @BindView(id = R.id.activity_otherrecord_userhead)
+    ImageView mUserHead;
+
+    @BindView(id = R.id.activity_otherrecord_isfans_img)
+    ImageView mIsFansCheckBox;
+
+    @BindView(id = R.id.activity_otherrecord_fans_count)
+    TextView mFansCount;
+
+    @BindView(id = R.id.activity_otherrecord_flower_count)
+    TextView mFlowerCount;
+
+    @BindView(id = R.id.activity_otherrecord_look_count)
+    TextView mPlayCount;
+
+    @BindView(id = R.id.activity_otherrecord_allcount)
+    TextView mAllCount;
+
+    @BindView(id = R.id.activity_otherrecord_username)
+    TextView mUserName;
+
+
     Rect mScreenRect;
-    boolean isNeedLoad = false;
+
+    boolean isNeedLoad = true;
+
+    String mOtherId = null;
 
     @Override
     public int getLayoutId() {
         return R.layout.activity_otherrecord;
     }
 
+    @SuppressLint("AutoDispose")
     @RequiresApi(api = Build.VERSION_CODES.M)
     @Override
     public void initView() {
@@ -50,24 +94,16 @@ public class OthersRecordActivity extends BaseMvpActivity<OthersRecordPresenter>
         mPresenter = new OthersRecordPresenter();
         mPresenter.attachView(this);
         mScreenRect = new Rect(0, 0, Consts.getScreenSize()[0], Consts.getScreenSize()[1]);
-
-        mScrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
-            @Override
-            public void onScrollChange(View view, int x, int y, int oldx, int oldy) {
-                if (mBottomView.getLocalVisibleRect(mScreenRect)) {
-                    if (isNeedLoad) {
-                        isNeedLoad = false;
-                        mPresenter.initGridLayout(mGridLayout, mNoRecordLayout);
-                    }
-                } else {
-                    isNeedLoad = true;
-                }
-            }
+        RxView.scrollChangeEvents(mScrollView).subscribe(viewScrollChangeEvent -> {
+           loadMoreItem();
         });
-        mPresenter.initGridLayout(mGridLayout, mNoRecordLayout);
         addUiClick(mBack, o -> {
             mActivity.finish();
         });
+        Bundle params = getIntent().getBundleExtra("params_bundle");
+        mOtherId = params.getString("other_uid");
+        mPresenter.getOtherRecordList(mOtherId);
+        mPresenter.getOtherUserInfo(mOtherId);
     }
 
     @Override
@@ -113,6 +149,50 @@ public class OthersRecordActivity extends BaseMvpActivity<OthersRecordPresenter>
     @Override
     protected void onDestroy() {
         super.onDestroy();
+        isNeedLoad = true;
         mPresenter.onDestory(mGridLayout);
     }
+
+    @Override
+    public void loadMoreItem() {
+        if (mBottomView.getLocalVisibleRect(mScreenRect) || mGridLayout.getChildCount() <= 2) {
+            if (isNeedLoad) {
+                isNeedLoad = false;
+                Logger.e("加载数据");
+                mPresenter.setGridData(mGridLayout, mNoRecordLayout);
+            }
+        } else {
+            isNeedLoad = true;
+        }
+    }
+
+    @Override
+    public void getOtherRecordSuccess() {
+        mPresenter.initGridLayout(mGridLayout, mNoRecordLayout);
+    }
+
+    @SuppressLint("AutoDispose")
+    @Override
+    public void setLeftUserInfo(MyInfoBean info) {
+        mAllCount.setText(String.valueOf("作品:" + info.getReadAmount()));
+        GlideUtils.loadCircleImage(getActivity(), info.getUser().getAvatar(), mUserHead);
+        mFansCount.setText(String.valueOf(info.getFansAmount()));
+        mFlowerCount.setText(String.valueOf(info.getIntegralAmount()));
+        mPlayCount.setText(String.valueOf(info.getPlayAmount()));
+        mUserName.setText(info.getUser().getMobile());
+        doFollowSuccess(info.getLike());
+        addUiClick(mIsFansCheckBox, o -> {
+            mPresenter.doFollow(info.getUser().getUid());
+        });
+    }
+
+    @Override
+    public void doFollowSuccess(boolean isfollow) {
+        if (isfollow) {
+            mIsFansCheckBox.setImageResource(R.drawable.activity_otherrecord_isfans_true);
+        } else {
+            mIsFansCheckBox.setImageResource(R.drawable.activity_otherrecord_isfans_false);
+        }
+    }
+
 }

+ 26 - 7
app/src/main/java/com/edufound/reader/adapter/CommentItemAdapter.java

@@ -13,6 +13,7 @@ import com.edufound.reader.bean.CommentListReplyBean;
 import com.edufound.reader.util.GlideUtils;
 import com.edufound.reader.util.TimeUtil;
 import com.jakewharton.rxbinding4.view.RxView;
+import com.orhanobut.logger.Logger;
 
 import java.util.List;
 import java.util.concurrent.TimeUnit;
@@ -30,7 +31,7 @@ public class CommentItemAdapter extends RecyclerView.Adapter<CommentItemHolder>
     private LayoutInflater mLayoutInflater;
     private Context mContext;
     private List<CommentListReplyBean> mListData;
-    private Consumer onClickReCommentNext;
+    private onItemClickListener mItemClickListener;
 
     public CommentItemAdapter(Context context, List<CommentListReplyBean> listData) {
         mContext = context;
@@ -47,10 +48,11 @@ public class CommentItemAdapter extends RecyclerView.Adapter<CommentItemHolder>
         return new CommentItemHolder(mLayoutInflater.inflate(R.layout.adapter_item_comment, parent, false));
     }
 
-    public void setOnClickReCommentNext(Consumer onnext) {
-        onClickReCommentNext = onnext;
+    public void onItemClickThumb(onItemClickListener listener) {
+        mItemClickListener = listener;
     }
 
+
     @Override
     public void onBindViewHolder(@NonNull CommentItemHolder holder, int position) {
         GlideUtils.loadCircleImage(mContext, mListData.get(position).getUser().getAvatar(), holder.mUserHead);
@@ -62,20 +64,29 @@ public class CommentItemAdapter extends RecyclerView.Adapter<CommentItemHolder>
         if (mListData.get(position).getIsLike()) {
             holder.mThumbStatus.setImageResource(R.drawable.adapter_item_comment_item_thumb_true);
         }
-        if (onClickReCommentNext != null) {
-            RxView.clicks(holder.mReCommentLayout).throttleFirst(2, TimeUnit.SECONDS).subscribe(onClickReCommentNext);
+        holder.mThumbNum.setText(mListData.get(position).getLikeCount() != null ? mListData.get(position).getLikeCount() : "0");
+        if (mItemClickListener != null) {
+            RxView.clicks(holder.mReCommentLayout).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
+                mItemClickListener.clickItemReComment(holder.mReCommentLayout, mListData.get(position).getId(), position);
+            });
+        }
+        if (mItemClickListener != null) {
+            RxView.clicks(holder.mThumbLayout).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
+                mItemClickListener.clickItemThumb(holder.mThumbLayout, mListData.get(position).getId(), position);
+            });
         }
-        holder.mThumbNum.setText(mListData.get(position).getLikeCount());
+
         if (mListData.get(position).getReplyVOList() != null && mListData.get(position).getReplyVOList().size() > 0) {
+            holder.mReLayout.removeAllViews();
             for (CommentListReplyBean.ReplyVOList item : mListData.get(position).getReplyVOList()) {
                 //有回复
-                holder.mReLayout.removeAllViews();
                 View view = mLayoutInflater.inflate(R.layout.adapter_item_comment_relayout_item, null);
                 TextView name = view.findViewById(R.id.adapter_item_comment_item_relayout_name);
                 TextView comment = view.findViewById(R.id.adapter_item_comment_item_relayout_comment);
                 name.setText(item.getUser().getMobile() + ":");
                 comment.setText(item.getContent());
                 holder.mReLayout.addView(view);
+                holder.mReLayout.setVisibility(View.VISIBLE);
             }
         } else {
             holder.mReLayout.setVisibility(View.GONE);
@@ -91,6 +102,14 @@ public class CommentItemAdapter extends RecyclerView.Adapter<CommentItemHolder>
     public int getItemViewType(int position) {
         return position;
     }
+
+    public interface onItemClickListener {
+        void clickItemThumb(View view, String id, int position);
+
+        void clickItemReComment(View view, String id, int position);
+    }
+
+
 }
 
 class CommentItemHolder extends RecyclerView.ViewHolder {

+ 4 - 2
app/src/main/java/com/edufound/reader/adapter/SlideVideoAdapter.java

@@ -19,6 +19,7 @@ import com.edufound.reader.util.Consts;
 import com.edufound.reader.util.GlideUtils;
 import com.edufound.reader.util.OkHttpClient;
 import com.edufound.reader.util.SizeUtils;
+import com.edufound.reader.videoutil.JZMediaIjk;
 import com.google.gson.reflect.TypeToken;
 import com.okhttplib.HttpInfo;
 import com.okhttplib.callback.Callback;
@@ -60,7 +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);
+        Logger.e("mListData.get(position).getUserRead().getVideoPath():" + mListData.get(position).getUserRead().getVideoPath());
+        holder.mVideo.setUp(new JZDataSource(mListData.get(position).getUserRead().getVideoPath()), JzvdStd.SCREEN_FULLSCREEN, JZMediaIjk.class);
         GlideUtils.loadImageSizeKipMemoryCache(mContext, mListData.get(position).getUserRead().getCoverImg(), holder.mVideo.posterImageView);
         holder.initDanMu(mListData.get(position).getUserRead().getExampleId());
         holder.mVideo.startPreloading();
@@ -128,7 +131,6 @@ class VideoHolder extends RecyclerView.ViewHolder {
         OkHttpClient.doGetAsync(mContext, new HttpInfo.Builder().setUrl(Consts.getFinalApi() + "/posts/list").addParam("exampleId", exampleId).addParam("pageNo", String.valueOf(1)).addParam("pageSize", "1000"), new Callback() {
             @Override
             public void onSuccess(HttpInfo info) throws IOException {
-                Logger.e("获取弹幕成功:" + info.getRetDetail());
                 HttpResultBean<HttpResultDataListBean<CommentListBean>> bean = info.getRetDetail(new TypeToken<HttpResultBean<HttpResultDataListBean<CommentListBean>>>() {
                 }.getType());
                 SlideVideoDanMarqueenAdapter adapter = new SlideVideoDanMarqueenAdapter(mContext, bean.getData().getList());

+ 10 - 0
app/src/main/java/com/edufound/reader/apiserver/UserApiServerImpl.java

@@ -61,6 +61,11 @@ public class UserApiServerImpl implements userApiServer {
     public void exitLogin(Activity activity, String deviceCode, Callback callback) {
         OkHttpClient.doDeleteAsync(activity, HttpInfo.Builder().addParam("deviceCode", deviceCode).setUrl(API + "/member"), callback);
     }
+
+    @Override
+    public void getOtherUserInfo(Activity activity, String uid, Callback callback) {
+        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/user/info").addParam("uid", uid), callback);
+    }
 }
 
 
@@ -94,4 +99,9 @@ interface userApiServer {
      */
     void exitLogin(Activity activity, String deviceCode, Callback callback);
 
+    /**
+     * 根据他人UID获取他人信息
+     */
+    void getOtherUserInfo(Activity activity, String uid, Callback callback);
+
 }

+ 13 - 206
app/src/main/java/com/edufound/reader/bean/CommentListReplyBean.java

@@ -35,7 +35,7 @@ public class CommentListReplyBean {
 
     private String title;
 
-    private User user;
+    private UserBean user;
 
     private String userId;
 
@@ -139,14 +139,14 @@ public class CommentListReplyBean {
         this.replyList = replyList;
     }
 
-    public List<ReplyList> getReplyList() {
-        return this.replyList;
-    }
-
     public void setReplyVOList(List<ReplyVOList> replyVOList) {
         this.replyVOList = replyVOList;
     }
 
+    public List<ReplyList> getReplyList() {
+        return this.replyList;
+    }
+
     public List<ReplyVOList> getReplyVOList() {
         return this.replyVOList;
     }
@@ -167,11 +167,11 @@ public class CommentListReplyBean {
         return this.title;
     }
 
-    public void setUser(User user) {
+    public void setUser(UserBean user) {
         this.user = user;
     }
 
-    public User getUser() {
+    public UserBean getUser() {
         return this.user;
     }
 
@@ -184,199 +184,6 @@ public class CommentListReplyBean {
     }
 
 
-    public class User {
-        private String avatar;
-
-        private String birthday;
-
-        private String channel;
-
-        private String eid;
-
-        private String extOpenId;
-
-        private String gender;
-
-        private String grade;
-
-        private String loginDay;
-
-        private String mobile;
-
-        private String nickName;
-
-        private String openId;
-
-        private String profession;
-
-        private String schoolCity;
-
-        private String schoolName;
-
-        private String schoolProvince;
-
-        private String statusEnum;
-
-        private String uid;
-
-        private String unionId;
-
-        private String wechatName;
-
-        public void setAvatar(String avatar) {
-            this.avatar = avatar;
-        }
-
-        public String getAvatar() {
-            return this.avatar;
-        }
-
-        public void setBirthday(String birthday) {
-            this.birthday = birthday;
-        }
-
-        public String getBirthday() {
-            return this.birthday;
-        }
-
-        public void setChannel(String channel) {
-            this.channel = channel;
-        }
-
-        public String getChannel() {
-            return this.channel;
-        }
-
-        public void setEid(String eid) {
-            this.eid = eid;
-        }
-
-        public String getEid() {
-            return this.eid;
-        }
-
-        public void setExtOpenId(String extOpenId) {
-            this.extOpenId = extOpenId;
-        }
-
-        public String getExtOpenId() {
-            return this.extOpenId;
-        }
-
-        public void setGender(String gender) {
-            this.gender = gender;
-        }
-
-        public String getGender() {
-            return this.gender;
-        }
-
-        public void setGrade(String grade) {
-            this.grade = grade;
-        }
-
-        public String getGrade() {
-            return this.grade;
-        }
-
-        public void setLoginDay(String loginDay) {
-            this.loginDay = loginDay;
-        }
-
-        public String getLoginDay() {
-            return this.loginDay;
-        }
-
-        public void setMobile(String mobile) {
-            this.mobile = mobile;
-        }
-
-        public String getMobile() {
-            return this.mobile;
-        }
-
-        public void setNickName(String nickName) {
-            this.nickName = nickName;
-        }
-
-        public String getNickName() {
-            return this.nickName;
-        }
-
-        public void setOpenId(String openId) {
-            this.openId = openId;
-        }
-
-        public String getOpenId() {
-            return this.openId;
-        }
-
-        public void setProfession(String profession) {
-            this.profession = profession;
-        }
-
-        public String getProfession() {
-            return this.profession;
-        }
-
-        public void setSchoolCity(String schoolCity) {
-            this.schoolCity = schoolCity;
-        }
-
-        public String getSchoolCity() {
-            return this.schoolCity;
-        }
-
-        public void setSchoolName(String schoolName) {
-            this.schoolName = schoolName;
-        }
-
-        public String getSchoolName() {
-            return this.schoolName;
-        }
-
-        public void setSchoolProvince(String schoolProvince) {
-            this.schoolProvince = schoolProvince;
-        }
-
-        public String getSchoolProvince() {
-            return this.schoolProvince;
-        }
-
-        public void setStatusEnum(String statusEnum) {
-            this.statusEnum = statusEnum;
-        }
-
-        public String getStatusEnum() {
-            return this.statusEnum;
-        }
-
-        public void setUid(String uid) {
-            this.uid = uid;
-        }
-
-        public String getUid() {
-            return this.uid;
-        }
-
-        public void setUnionId(String unionId) {
-            this.unionId = unionId;
-        }
-
-        public String getUnionId() {
-            return this.unionId;
-        }
-
-        public void setWechatName(String wechatName) {
-            this.wechatName = wechatName;
-        }
-
-        public String getWechatName() {
-            return this.wechatName;
-        }
-
-    }
-
     public class ReplyList {
     }
 
@@ -389,13 +196,13 @@ public class CommentListReplyBean {
 
         private String id;
 
-        private String isRisky;
+        private boolean isRisky;
 
         private String postsId;
 
         private String status;
 
-        private User user;
+        private UserBean user;
 
         private String userId;
 
@@ -433,11 +240,11 @@ public class CommentListReplyBean {
             return this.id;
         }
 
-        public void setIsRisky(String isRisky) {
+        public void setIsRisky(boolean isRisky) {
             this.isRisky = isRisky;
         }
 
-        public String getIsRisky() {
+        public boolean getIsRisky() {
             return this.isRisky;
         }
 
@@ -457,11 +264,11 @@ public class CommentListReplyBean {
             return this.status;
         }
 
-        public void setUser(User user) {
+        public void setUser(UserBean user) {
             this.user = user;
         }
 
-        public User getUser() {
+        public UserBean getUser() {
             return this.user;
         }
 

+ 68 - 0
app/src/main/java/com/edufound/reader/bean/FansBean.java

@@ -0,0 +1,68 @@
+package com.edufound.reader.bean;
+
+public class FansBean {
+
+    private String fanId;
+    private String gmtCreated;
+    private String gmtModified;
+    private String id;
+    private String isTop;
+    private String status;
+    private String uid;
+
+    public void setFanId(String fanId) {
+        this.fanId = fanId;
+    }
+
+    public String getFanId() {
+        return fanId;
+    }
+
+    public void setGmtCreated(String gmtCreated) {
+        this.gmtCreated = gmtCreated;
+    }
+
+    public String getGmtCreated() {
+        return gmtCreated;
+    }
+
+    public void setGmtModified(String gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+
+    public String getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setIsTop(String isTop) {
+        this.isTop = isTop;
+    }
+
+    public String getIsTop() {
+        return isTop;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setUid(String uid) {
+        this.uid = uid;
+    }
+
+    public String getUid() {
+        return uid;
+    }
+}

+ 4 - 4
app/src/main/java/com/edufound/reader/bean/HttpResultBean.java

@@ -1,9 +1,9 @@
 package com.edufound.reader.bean;
 
 public class HttpResultBean<T> {
-    private int code;
+    private String code;
 
-    private int count;
+    private String count;
 
     private T data;
 
@@ -12,12 +12,12 @@ public class HttpResultBean<T> {
     private boolean success;
 
 
-    public int getCode() {
+    public String getCode() {
         return this.code;
     }
 
 
-    public int getCount() {
+    public String getCount() {
         return this.count;
     }
 

+ 120 - 97
app/src/main/java/com/edufound/reader/bean/MyInfoBean.java

@@ -1,101 +1,124 @@
 package com.edufound.reader.bean;
 
-public class MyInfoBean{
-        private String commentAmount;
-
-        private int fansAmount;
-
-        private String favoritesAmount;
-
-        private int integralAmount;
-
-        private boolean like;
-
-        private int likeAmount;
-
-        private int playAmount;
-
-        private int readAmount;
-
-        private int unfinishedAmount;
-
-        private int unreadAmount;
-
-        private UserBean user;
-
-        private String walletAmount;
-
-        public void setCommentAmount(String commentAmount){
-            this.commentAmount = commentAmount;
-        }
-        public String getCommentAmount(){
-            return this.commentAmount;
-        }
-        public void setFansAmount(int fansAmount){
-            this.fansAmount = fansAmount;
-        }
-        public int getFansAmount(){
-            return this.fansAmount;
-        }
-        public void setFavoritesAmount(String favoritesAmount){
-            this.favoritesAmount = favoritesAmount;
-        }
-        public String getFavoritesAmount(){
-            return this.favoritesAmount;
-        }
-        public void setIntegralAmount(int integralAmount){
-            this.integralAmount = integralAmount;
-        }
-        public int getIntegralAmount(){
-            return this.integralAmount;
-        }
-        public void setLike(boolean like){
-            this.like = like;
-        }
-        public boolean getLike(){
-            return this.like;
-        }
-        public void setLikeAmount(int likeAmount){
-            this.likeAmount = likeAmount;
-        }
-        public int getLikeAmount(){
-            return this.likeAmount;
-        }
-        public void setPlayAmount(int playAmount){
-            this.playAmount = playAmount;
-        }
-        public int getPlayAmount(){
-            return this.playAmount;
-        }
-        public void setReadAmount(int readAmount){
-            this.readAmount = readAmount;
-        }
-        public int getReadAmount(){
-            return this.readAmount;
-        }
-        public void setUnfinishedAmount(int unfinishedAmount){
-            this.unfinishedAmount = unfinishedAmount;
-        }
-        public int getUnfinishedAmount(){
-            return this.unfinishedAmount;
-        }
-        public void setUnreadAmount(int unreadAmount){
-            this.unreadAmount = unreadAmount;
-        }
-        public int getUnreadAmount(){
-            return this.unreadAmount;
-        }
-        public void setUser(UserBean user){
-            this.user = user;
-        }
-        public UserBean getUser(){
-            return this.user;
-        }
-        public void setWalletAmount(String walletAmount){
-            this.walletAmount = walletAmount;
-        }
-        public String getWalletAmount(){
-            return this.walletAmount;
-        }
+public class MyInfoBean {
+    private String commentAmount;
+
+    private int fansAmount;
+
+    private String favoritesAmount;
+
+    private int integralAmount;
+
+    private boolean like;
+
+    private int likeAmount;
+
+    private int playAmount;
+
+    private int readAmount;
+
+    private int unfinishedAmount;
+
+    private int unreadAmount;
+
+    private UserBean user;
+
+    private String walletAmount;
+
+    public void setCommentAmount(String commentAmount) {
+        this.commentAmount = commentAmount;
+    }
+
+    public String getCommentAmount() {
+        return this.commentAmount;
+    }
+
+    public void setFansAmount(int fansAmount) {
+        this.fansAmount = fansAmount;
+    }
+
+    public int getFansAmount() {
+        return this.fansAmount;
+    }
+
+    public void setFavoritesAmount(String favoritesAmount) {
+        this.favoritesAmount = favoritesAmount;
+    }
+
+    public String getFavoritesAmount() {
+        return this.favoritesAmount;
+    }
+
+    public void setIntegralAmount(int integralAmount) {
+        this.integralAmount = integralAmount;
+    }
+
+    public int getIntegralAmount() {
+        return this.integralAmount;
+    }
+
+    public void setLike(boolean like) {
+        this.like = like;
+    }
+
+    public boolean getLike() {
+        return this.like;
+    }
+
+    public void setLikeAmount(int likeAmount) {
+        this.likeAmount = likeAmount;
+    }
+
+    public int getLikeAmount() {
+        return this.likeAmount;
+    }
+
+    public void setPlayAmount(int playAmount) {
+        this.playAmount = playAmount;
+    }
+
+    public int getPlayAmount() {
+        return this.playAmount;
+    }
+
+    public void setReadAmount(int readAmount) {
+        this.readAmount = readAmount;
+    }
+
+    public int getReadAmount() {
+        return this.readAmount;
+    }
+
+    public void setUnfinishedAmount(int unfinishedAmount) {
+        this.unfinishedAmount = unfinishedAmount;
+    }
+
+    public int getUnfinishedAmount() {
+        return this.unfinishedAmount;
+    }
+
+    public void setUnreadAmount(int unreadAmount) {
+        this.unreadAmount = unreadAmount;
+    }
+
+    public int getUnreadAmount() {
+        return this.unreadAmount;
+    }
+
+    public void setUser(UserBean user) {
+        this.user = user;
+    }
+
+    public UserBean getUser() {
+        return this.user;
+    }
+
+    public void setWalletAmount(String walletAmount) {
+        this.walletAmount = walletAmount;
+    }
+
+    public String getWalletAmount() {
+        return this.walletAmount;
+    }
 
 }

+ 14 - 0
app/src/main/java/com/edufound/reader/contract/CommentContract.java

@@ -1,6 +1,7 @@
 package com.edufound.reader.contract;
 
 import android.app.Activity;
+import android.view.ViewGroup;
 import android.widget.FrameLayout;
 
 import com.edufound.reader.base.BaseView;
@@ -14,6 +15,9 @@ public interface CommentContract {
 
         void doPosts(Activity activity, String json, Callback callback);
 
+        void doLikc(Activity activity, String postsId, Callback callback);
+
+        void doReplyComment(Activity activity, String json, Callback callback);
 
     }
 
@@ -25,6 +29,8 @@ public interface CommentContract {
         void editRequestFocus();
 
         void moveRecyclearView(int scroll);
+
+        void doPostsSuccess();
     }
 
     interface Presenter {
@@ -33,5 +39,13 @@ public interface CommentContract {
         void getAllComment(String exampleId, String pageIndex);
 
         void doPosts(String comment);
+
+        void doLike(android.view.View chageView, String postsId);
+
+        void doReplyComment(String content);
+
+        String getReCommentId();
+
+        void clearReCommentId();
     }
 }

+ 24 - 0
app/src/main/java/com/edufound/reader/contract/OthersRecordContract.java

@@ -1,24 +1,48 @@
 package com.edufound.reader.contract;
 
+import android.app.Activity;
 import android.widget.FrameLayout;
 import android.widget.GridLayout;
 
 import com.edufound.reader.base.BaseView;
+import com.edufound.reader.bean.MyInfoBean;
+import com.okhttplib.callback.Callback;
 
 import io.reactivex.rxjava3.functions.Consumer;
 
 public interface OthersRecordContract {
     interface Model {
+
+        void getOtherRecordList(Activity activity, String uid, Callback callback);
+
+        void doFollow(Activity activity, String json, Callback callback);
+
+
     }
 
     interface View extends BaseView {
 
         void addUiClick(android.view.View view, Consumer onNext);
+
+        void loadMoreItem();
+
+        void getOtherRecordSuccess();
+
+        void setLeftUserInfo(MyInfoBean info);
+
+        void doFollowSuccess(boolean isfollow);
+
     }
 
     interface Presenter {
         void initGridLayout(GridLayout gridLayout, FrameLayout norecordlayout);
 
         void onDestory(GridLayout layout);
+
+        void getOtherUserInfo(String uid);
+
+        void getOtherRecordList(String uid);
+
+        void doFollow(String uid);
     }
 }

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

@@ -6,7 +6,6 @@ import android.widget.FrameLayout;
 import com.edufound.reader.base.BaseView;
 import com.edufound.reader.bean.RecordResultBean;
 
-import tv.danmaku.ijk.media.player.IMediaPlayer;
 
 public interface RecordContract {
     interface Model {

+ 25 - 10
app/src/main/java/com/edufound/reader/fragment/RecommendFragment.java

@@ -14,12 +14,15 @@ import android.widget.Toast;
 
 import com.edufound.reader.R;
 import com.edufound.reader.activity.CommentActivity;
+import com.edufound.reader.activity.OthersRecordActivity;
 import com.edufound.reader.activity.RecordActivity;
+import com.edufound.reader.activity.UserInfoSettingActivity;
 import com.edufound.reader.base.BaseActivity;
 import com.edufound.reader.base.BaseMvpFragment;
 import com.edufound.reader.bean.UserRecordBean;
 import com.edufound.reader.contract.RecommendFragmentContract;
 import com.edufound.reader.presenter.RecommendFragmentPresenter;
+import com.edufound.reader.util.EfunboxUtil;
 import com.edufound.reader.util.GlideUtils;
 import com.orhanobut.logger.Logger;
 
@@ -116,9 +119,6 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
 
     @Override
     protected void initViewListener() {
-        addUiClickListener(mUserHeadLayout, o -> {
-            Logger.e("点击了手机号旁边的头像");
-        });
 
 
         if (hideBottom) {
@@ -195,7 +195,7 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
     public void setTopStatus(UserRecordBean bean) {
 
         //设置信息和点赞数等
-        GlideUtils.loadImage(getActivity(), bean.getUser().getAvatar(), mUserHead);
+        GlideUtils.loadCircleImage(getActivity(), bean.getUser().getAvatar(), mUserHead);
         mUserPhone.setText(bean.getUser().getMobile());
         mCommentCount.setText(bean.getUserRead().getCommentAmount());
         if (bean.getIsFavorites()) {
@@ -210,18 +210,33 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
         } else {
             ((ImageView) mThumbsLayout.findViewById(R.id.fragment_recommend_thumbs_icon)).setImageResource(R.drawable.fragment_recommend_thumbs_up);
         }
+
+
+        addUiClickListener(mUserHeadLayout, o -> {
+            Logger.e("点击了手机号和头像,跳转他人作品界面");
+            Bundle bundle = new Bundle();
+            bundle.putString("other_uid", bean.getUser().getUid());
+            toNextActivity(OthersRecordActivity.class, bundle);
+        });
+
         addUiClickListener(mCollectionLayout, o -> {
-            mPresenter.doFavorites(bean.getUserRead());
+            if (EfunboxUtil.checkLogin(getActivity())) {
+                mPresenter.doFavorites(bean.getUserRead());
+            }
         });
         addUiClickListener(mThumbsLayout, o -> {
-            mPresenter.doLike(bean.getUserRead());
+            if (EfunboxUtil.checkLogin(getActivity())) {
+                mPresenter.doLike(bean.getUserRead());
+            }
         });
         mThumbCount.setText(bean.getUserRead().getLikeAmount());
         addUiClickListener(mCommentLayout, o -> {
-            Logger.e("点击了评论");
-            Bundle bundle = new Bundle();
-            bundle.putString("exampleId", bean.getUserRead().getExampleId());
-            toNextActivity(CommentActivity.class, bundle);
+            if (EfunboxUtil.checkLogin(getActivity())) {
+                Logger.e("点击了评论");
+                Bundle bundle = new Bundle();
+                bundle.putString("exampleId", bean.getUserRead().getExampleId());
+                toNextActivity(CommentActivity.class, bundle);
+            }
         });
 
 

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

@@ -13,11 +13,21 @@ public class CommentModel implements CommentContract.Model {
 
     @Override
     public void getCommentAll(Activity activity, String exampleId, String pageIndex, Callback callback) {
-        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/posts/reply").addParam("exampleId", exampleId).addParam("pageNo", pageIndex).addParam("pageSize", "100"), callback);
+        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/posts/reply").addParam("columnId", exampleId).addParam("pageNo", pageIndex).addParam("pageSize", "100"), callback);
     }
 
     @Override
     public void doPosts(Activity activity, String json, Callback callback) {
         OkHttpClient.doPostAsync(activity, new HttpInfo.Builder().setUrl(API + "/posts").addParamJson(json), callback);
     }
+
+    @Override
+    public void doLikc(Activity activity, String postsId, Callback callback) {
+        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/posts/like/" + postsId + ""), callback);
+    }
+
+    @Override
+    public void doReplyComment(Activity activity, String json, Callback callback) {
+        OkHttpClient.doPostAsync(activity, new HttpInfo.Builder().setUrl(API + "/reply").addParamJson(json), callback);
+    }
 }

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

@@ -14,7 +14,7 @@ public class MyTabFragmentModel implements MyTabFragmentContract.Model {
 
     @Override
     public void getMyRecords(Activity activity, Callback callback) {
-        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/userRead/my"), callback);
+        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/userRead/my").addParam("pageNo", String.valueOf(1)).addParam("pageSize", "10000"), callback);
     }
 
     @Override

+ 17 - 0
app/src/main/java/com/edufound/reader/model/OthersRecordModel.java

@@ -1,7 +1,24 @@
 package com.edufound.reader.model;
 
+import android.app.Activity;
+
 import com.edufound.reader.contract.OthersRecordContract;
+import com.edufound.reader.util.Consts;
+import com.edufound.reader.util.OkHttpClient;
+import com.okhttplib.HttpInfo;
+import com.okhttplib.callback.Callback;
 
 public class OthersRecordModel implements OthersRecordContract.Model {
     public static final int LOAD_GRID = 0x1231;
+    private final String API = Consts.getFinalApi();
+
+    @Override
+    public void getOtherRecordList(Activity activity, String uid, Callback callback) {
+        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/userRead").addParam("uid", uid).addParam("pageNo", String.valueOf(1)).addParam("pageSize", "10000"), callback);
+    }
+
+    @Override
+    public void doFollow(Activity activity, String json, Callback callback) {
+        OkHttpClient.doPostAsync(activity, new HttpInfo.Builder().setUrl(API + "/fans").addParamJson(json), callback);
+    }
 }

+ 89 - 5
app/src/main/java/com/edufound/reader/presenter/CommentPresenter.java

@@ -1,17 +1,19 @@
 package com.edufound.reader.presenter;
 
+import android.annotation.SuppressLint;
 import android.view.View;
 import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.TextView;
 import android.widget.Toast;
 
+import com.edufound.reader.R;
 import com.edufound.reader.adapter.CommentItemAdapter;
 import com.edufound.reader.base.BaseActivity;
 import com.edufound.reader.base.BasePresenter;
-import com.edufound.reader.bean.CommentListBean;
 import com.edufound.reader.bean.CommentListReplyBean;
 import com.edufound.reader.bean.HttpResultBean;
 import com.edufound.reader.bean.HttpResultDataListBean;
-import com.edufound.reader.bean.UserBean;
 import com.edufound.reader.contract.CommentContract;
 import com.edufound.reader.model.CommentModel;
 import com.google.gson.reflect.TypeToken;
@@ -20,6 +22,7 @@ import com.okhttplib.callback.Callback;
 import com.orhanobut.logger.Logger;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -37,6 +40,8 @@ public class CommentPresenter extends BasePresenter<CommentContract.View> implem
     int pageCommentIndex = 0;
     int commentSize = 0;
     boolean loadOver = false;
+    String reCommentId = null;
+    int reCommentPosition = -1;
 
     public CommentPresenter() {
         mModel = new CommentModel();
@@ -65,9 +70,18 @@ public class CommentPresenter extends BasePresenter<CommentContract.View> implem
             }
         });
         rv.setAdapter(mCommentItemAdapter);
-        mCommentItemAdapter.setOnClickReCommentNext(o -> {
-            Toast.makeText(mView.getActivity(), "点击回复", Toast.LENGTH_SHORT).show();
-            mView.editRequestFocus();
+        mCommentItemAdapter.onItemClickThumb(new CommentItemAdapter.onItemClickListener() {
+            @Override
+            public void clickItemThumb(View view, String id, int position) {
+                doLike(view, String.valueOf(id));
+            }
+
+            @Override
+            public void clickItemReComment(View view, String id, int position) {
+                reCommentId = id;
+                reCommentPosition = position;
+                mView.editRequestFocus();
+            }
         });
     }
 
@@ -131,6 +145,7 @@ public class CommentPresenter extends BasePresenter<CommentContract.View> implem
                         mCommentItemAdapter.notifyDataSetChanged();
                         mView.moveRecyclearView(0);
                         mView.setMaxCommentCount(mDataList.size());
+                        mView.doPostsSuccess();
                     }
                 });
             }
@@ -142,6 +157,75 @@ public class CommentPresenter extends BasePresenter<CommentContract.View> implem
         });
     }
 
+    @Override
+    public void doLike(View view, String postsId) {
+        mModel.doLikc(mView.getActivity(), postsId, new Callback() {
+            @Override
+            public void onSuccess(HttpInfo info) throws IOException {
+                Logger.e("点赞成功:" + info.getRetDetail());
+                HttpResultBean<String> bean = info.getRetDetail(new TypeToken<HttpResultBean<String>>() {
+                }.getType());
+                if (bean.getCode().equals("403")) {
+                    //点过赞了
+                    Toast.makeText(mView.getActivity(), "已经点过赞了", Toast.LENGTH_SHORT).show();
+                } else if (bean.getCode().equals("200")) {
+                    ((TextView) view.findViewById(R.id.adapter_item_comment_item_comment_thumb_layout_thumbnum)).setText(bean.getData());
+                    ((ImageView) view.findViewById(R.id.adapter_item_comment_item_comment_thumb_layout_img_status)).setImageResource(R.drawable.adapter_item_comment_item_thumb_true);
+                }
+
+            }
+
+            @Override
+            public void onFailure(HttpInfo info) throws IOException {
+                Logger.e("点赞失败:" + info.getRetDetail());
+            }
+        });
+    }
+
+
+    @Override
+    public void doReplyComment(String content) {
+        Map<String, String> map = new HashMap<>();
+        map.put("content", content);
+        map.put("postsId", reCommentId);
+        mModel.doReplyComment(mView.getActivity(), ((BaseActivity) mView.getActivity()).getGson().toJson(map), new Callback() {
+            @Override
+            public void onSuccess(HttpInfo info) throws IOException {
+                HttpResultBean<CommentListReplyBean.ReplyVOList> bean = info.getRetDetail(new TypeToken<HttpResultBean<CommentListReplyBean.ReplyVOList>>() {
+                }.getType());
+                if (mDataList.get(reCommentPosition).getReplyVOList() == null) {
+                    mDataList.get(reCommentPosition).setReplyVOList(new ArrayList<>());
+                }
+                mDataList.get(reCommentPosition).getReplyVOList().add(bean.getData());
+                mView.getRootView().post(new Runnable() {
+                    @Override
+                    public void run() {
+                        mCommentItemAdapter.notifyDataSetChanged();
+                        mView.doPostsSuccess();
+                        clearReCommentId();
+                        reCommentPosition = -1;
+                    }
+                });
+            }
+
+            @Override
+            public void onFailure(HttpInfo info) throws IOException {
+
+            }
+        });
+    }
+
+    @Override
+    public String getReCommentId() {
+        return reCommentId;
+    }
+
+    @Override
+    public void clearReCommentId() {
+        reCommentId = null;
+    }
+
+
     public void addMoreData(RecyclerView rv) {
         //获取当前显示的View 的数据
         int childCount = rv.getChildCount();

+ 22 - 23
app/src/main/java/com/edufound/reader/presenter/MainPresenter.java

@@ -1,5 +1,6 @@
 package com.edufound.reader.presenter;
 
+import android.content.Intent;
 import android.graphics.Color;
 import android.text.TextUtils;
 import android.view.KeyEvent;
@@ -12,6 +13,7 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.edufound.reader.R;
+import com.edufound.reader.activity.LoginAlertActivity;
 import com.edufound.reader.apiserver.UserApiServerImpl;
 import com.edufound.reader.base.BaseActivity;
 import com.edufound.reader.base.BasePresenter;
@@ -70,26 +72,22 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
         switch (id) {
             case R.id.main_left_tab_layout_myinfo:
                 //我的
-//                Logger.e("我的");
-                if (checkLogin()) {
+                if (EfunboxUtil.checkLogin(mView.getActivity())) {
                     mRadioCheckIndex = 0;
                     changeFragmentLayout(mUserFragment);
                 } else {
                     ((RadioButton) radioGroup.getChildAt(mRadioCheckIndex)).setChecked(true);
                 }
-                changeFragmentLayout(mUserFragment);
                 break;
             case R.id.main_left_tab_layout_recommend:
                 //推荐
                 mRadioCheckIndex = 1;
                 ((RadioButton) radioGroup.getChildAt(mRadioCheckIndex)).setChecked(true);
-                Logger.e("推荐");
                 changeFragmentLayout(mRecommendFragment);
                 break;
             case R.id.main_left_tab_layout_follow:
                 //关注
-                Logger.e("关注");
-                if (checkLogin()) {
+                if (EfunboxUtil.checkLogin(mView.getActivity())) {
                     mRadioCheckIndex = 2;
                     changeFragmentLayout(mFollowFragment);
                 } else {
@@ -100,7 +98,6 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
                 //任务
                 mRadioCheckIndex = 3;
                 ((RadioButton) radioGroup.getChildAt(mRadioCheckIndex)).setChecked(true);
-                Logger.e("任务");
                 changeFragmentLayout(mCharacterFragment);
                 break;
         }
@@ -114,18 +111,6 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
         transaction.commit();
     }
 
-    boolean checkLogin() {
-        if (!Consts.getUID().equals("test")) {
-            //已登录
-            return true;
-        }
-        //未登录,去登录
-//        Intent tologin = new Intent(mView.getActivity(), LoginAlertActivity.class);
-//        mView.getActivity().startActivity(tologin);
-        registerMobile("15810271411");
-        return false;
-    }
-
 
     @Override
     public void activityDestroy() {
@@ -186,10 +171,23 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
                 Logger.e("用户是否登录成功:" + info.getRetDetail());
                 HttpResultBean<UserBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserBean>>() {
                 }.getType());
-                Consts.setUID(bean.getData().getUid());
-                //用户是否登录,登录了,创建Consts的userbean
-                Consts.setmConstsUserBean(bean.getData());
-                mView.setCheckIndex();
+                if (bean.getCode().equals("300")) {
+                    //没有用户数据
+
+                    if (TextUtils.isEmpty(MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE))) {
+                        //没有选择过年纪,选择年纪
+                        showSelectGradeWindow();
+                    } else {
+                        //选择过年纪。无处理
+                    }
+                    registerMobile("18655365222");
+                    mView.setCheckIndex();
+                } else {
+                    Consts.setUID(bean.getData().getUid());
+                    //用户是否登录,登录了,创建Consts的userbean
+                    Consts.setmConstsUserBean(bean.getData());
+                    mView.setCheckIndex();
+                }
             }
 
             @Override
@@ -219,6 +217,7 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
                 map.put("grade", MMKVUtil.getInstance().decodeString(MMKVEncodeKey.USER_GRADE));
             }
             String json = ((BaseActivity) mView.getActivity()).getGson().toJson(map);
+            Logger.e("json:" + json);
             mUserApi.registerMobile(mView.getActivity(), json, new Callback() {
                 @Override
                 public void onSuccess(HttpInfo info) throws IOException {

+ 141 - 30
app/src/main/java/com/edufound/reader/presenter/OthersRecordPresenter.java

@@ -4,50 +4,117 @@ import android.content.Intent;
 import android.os.Handler;
 import android.os.Message;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.widget.FrameLayout;
 import android.widget.GridLayout;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.edufound.reader.R;
 import com.edufound.reader.activity.SmallFullVideoActivity;
+import com.edufound.reader.apiserver.UserApiServerImpl;
+import com.edufound.reader.base.BaseActivity;
 import com.edufound.reader.base.BasePresenter;
+import com.edufound.reader.bean.FansBean;
+import com.edufound.reader.bean.HttpResultBean;
+import com.edufound.reader.bean.HttpResultDataListBean;
+import com.edufound.reader.bean.MyInfoBean;
+import com.edufound.reader.bean.UserRecordBean;
 import com.edufound.reader.contract.OthersRecordContract;
 import com.edufound.reader.model.CharacterFragmentModel;
 import com.edufound.reader.model.OthersRecordModel;
 import com.edufound.reader.util.GlideUtils;
 import com.edufound.reader.util.SizeUtils;
+import com.google.gson.reflect.TypeToken;
+import com.okhttplib.HttpInfo;
+import com.okhttplib.callback.Callback;
 import com.orhanobut.logger.Logger;
 
-import java.util.ArrayList;
+import java.io.IOException;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.View> implements OthersRecordContract.Presenter {
 
 
     OthersRecordModel mModel;
-    List<Object> mDataList;
+    UserApiServerImpl mUserApi;
+    List<UserRecordBean> mDataList;
+    int onceLoadCount = 10;
     int mListStart = 0;
-    int mListEnd = 6;
+    int mListEnd = onceLoadCount;
 
     public OthersRecordPresenter() {
         mModel = new OthersRecordModel();
-        mDataList = new ArrayList<>();
-        for (int i = 0; i < 20; i++) {
-            mDataList.add("i=" + i);
-        }
+        mUserApi = new UserApiServerImpl();
     }
 
+
     @Override
     public void initGridLayout(GridLayout gridLayout, FrameLayout norecordlayout) {
+        gridLayout.setRowCount(2);
+        setGridData(gridLayout, norecordlayout);
+    }
+
+
+    private void setGridItemView(GridLayout gridLayout, int index) {
+        if (mView == null) {
+            return;
+        }
+        View view = LayoutInflater.from(mView.getActivity()).inflate(R.layout.adapter_item_record_user, null);
+        UserRecordBean.UserRead reader = mDataList.get(index).getUserRead();
+        ImageView imgIcon = view.findViewById(R.id.adapter_item_record_user_icon);
+        TextView name = view.findViewById(R.id.adapter_item_record_user_name);
+        ImageView imgDel = view.findViewById(R.id.adapter_item_record_user_del);
+        ImageView imgPriv = view.findViewById(R.id.adapter_item_record_user_priv);
+        TextView lookAmount = view.findViewById(R.id.adapter_item_record_user_look_num);
+        TextView likeAmount = view.findViewById(R.id.adapter_item_record_user_thumb_num);
+        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));
+        name.setText(reader.getTitle() + "--" + index);
+        lookAmount.setText(reader.getPlayAmount());
+        likeAmount.setText(reader.getLikeAmount());
+        commentAmount.setText(reader.getCommentAmount());
+        favoritesAmount.setText(reader.getFavoritesAmount());
+        imgDel.setVisibility(View.GONE);
+        imgPriv.setVisibility(View.GONE);
+        checkLayout.setVisibility(View.GONE);
+
+        mView.addUiClick(view, o -> {
+            Intent intent = new Intent(mView.getActivity(), SmallFullVideoActivity.class);
+            intent.putExtra("index", index + "");
+            mView.getActivity().startActivity(intent);
+        });
+
+        checkLayout.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View view, MotionEvent motionEvent) {
+                return true;
+            }
+        });
+        GridLayout.LayoutParams params = new GridLayout.LayoutParams(new FrameLayout.LayoutParams(SizeUtils.dp2px(mView.getActivity(), 415), SizeUtils.dp2px(mView.getActivity(), 290)));
+        params.setMargins(SizeUtils.dp2px(mView.getActivity(), 10), 0, SizeUtils.dp2px(mView.getActivity(), 20), SizeUtils.dp2px(mView.getActivity(), 30));
+        view.setLayoutParams(params);
+        gridLayout.setOrientation(GridLayout.VERTICAL);
+        gridLayout.addView(view);
+    }
+
+
+    public void setGridData(GridLayout gridLayout, FrameLayout norecordlayout) {
         if (mDataList == null || mDataList.size() <= 0) {
             norecordlayout.setVisibility(View.VISIBLE);
             gridLayout.setVisibility(View.GONE);
             return;
         }
-        norecordlayout.setVisibility(View.GONE);
-        gridLayout.setRowCount(2);
+        if (mListEnd > mDataList.size()) {
+            mListEnd = mDataList.size();
+        }
         int timeCount = 0;
         for (int j = mListStart; j < mListEnd; j++) {
             timeCount++;
@@ -55,16 +122,65 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
             message.obj = gridLayout;
             message.what = OthersRecordModel.LOAD_GRID;
             message.arg1 = j;
+            Logger.e("int j=" + j);
             otherRecordHandler.sendMessageDelayed(message, 50 * timeCount);
         }
         mListStart = mListEnd;
-        if (mListEnd + 6 > mDataList.size()) {
+        if (mListEnd + onceLoadCount > mDataList.size()) {
             mListEnd = mDataList.size();
         } else {
-            mListEnd = mListEnd + 6;
+            mListEnd = mListEnd + onceLoadCount;
         }
     }
 
+
+    @Override
+    public void getOtherRecordList(String uid) {
+        mModel.getOtherRecordList(mView.getActivity(), uid, new Callback() {
+            @Override
+            public void onSuccess(HttpInfo info) throws IOException {
+                HttpResultBean<HttpResultDataListBean<UserRecordBean>> bean = info.getRetDetail(new TypeToken<HttpResultBean<HttpResultDataListBean<UserRecordBean>>>() {
+                }.getType());
+                mDataList = bean.getData().getList();
+                mView.getOtherRecordSuccess();
+                mView.loadMoreItem();
+            }
+
+            @Override
+            public void onFailure(HttpInfo info) throws IOException {
+
+            }
+        });
+    }
+
+    @Override
+    public void doFollow(String uid) {
+        Map<String, String> map = new HashMap<>();
+        map.put("uid", uid);
+        String json = ((BaseActivity) mView.getActivity()).getGson().toJson(map);
+        Logger.e("json:" + json);
+        mModel.doFollow(mView.getActivity(), json, new Callback() {
+            @Override
+            public void onSuccess(HttpInfo info) throws IOException {
+                Logger.e("关注接口成功:" + info.getRetDetail());
+                HttpResultBean<FansBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<FansBean>>() {
+                }.getType());
+                if (bean.getData().getStatus().equals("NORMAL")) {
+                    //已关注状态
+                    mView.doFollowSuccess(true);
+                } else if (bean.getData().getStatus().equals("DEL")) {
+                    //未关注状态
+                    mView.doFollowSuccess(false);
+                }
+            }
+
+            @Override
+            public void onFailure(HttpInfo info) throws IOException {
+                Logger.e("关注接口失败:" + info.getRetDetail());
+            }
+        });
+    }
+
     @Override
     public void onDestory(GridLayout layout) {
         otherRecordHandler.removeMessages(CharacterFragmentModel.LOAD_GRID);
@@ -74,29 +190,24 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
         mView = null;
     }
 
+    @Override
+    public void getOtherUserInfo(String uid) {
+        mUserApi.getOtherUserInfo(mView.getActivity(), uid, new Callback() {
+            @Override
+            public void onSuccess(HttpInfo info) throws IOException {
+                Logger.e("获取他人信息成功:" + info.getRetDetail());
+                HttpResultBean<MyInfoBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<MyInfoBean>>() {
+                }.getType());
+                mView.setLeftUserInfo(bean.getData());
+            }
+
+            @Override
+            public void onFailure(HttpInfo info) throws IOException {
 
-    private void setGridItemView(GridLayout gridLayout, int index) {
-        if (mView == null) {
-            return;
-        }
-        View view = LayoutInflater.from(mView.getActivity()).inflate(R.layout.adapter_item_record_authority, null);
-        ImageView imgIcon = view.findViewById(R.id.adapter_item_record_authority_icon);
-        TextView name = view.findViewById(R.id.adapter_item_record_authority_name);
-        GlideUtils.loadRoundCircleImage(mView.getActivity(), "http://p.qpic.cn/videoyun/0/2449_43b6f696980311e59ed467f22794e792_1/640", imgIcon, SizeUtils.dp2px(mView.getActivity(), 20));
-        mView.addUiClick(view, o -> {
-            Intent intent = new Intent(mView.getActivity(), SmallFullVideoActivity.class);
-            intent.putExtra("index", index + "");
-            mView.getActivity().startActivity(intent);
+            }
         });
-
-        name.setText("当前第:" + index + "个");
-        GridLayout.LayoutParams params = new GridLayout.LayoutParams(new FrameLayout.LayoutParams(SizeUtils.dp2px(mView.getActivity(), 415), SizeUtils.dp2px(mView.getActivity(), 290)));
-        params.setMargins(SizeUtils.dp2px(mView.getActivity(), 10), SizeUtils.dp2px(mView.getActivity(), 10), SizeUtils.dp2px(mView.getActivity(), 10), SizeUtils.dp2px(mView.getActivity(), 10));
-        view.setLayoutParams(params);
-        gridLayout.addView(view);
     }
 
-
     Handler otherRecordHandler = new Handler(new Handler.Callback() {
         @Override
         public boolean handleMessage(Message msg) {

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

@@ -3,9 +3,11 @@ package com.edufound.reader.util;
 import android.app.Activity;
 import android.app.Application;
 import android.content.Context;
+import android.content.Intent;
 import android.text.TextUtils;
 import android.util.DisplayMetrics;
 
+import com.edufound.reader.activity.LoginAlertActivity;
 import com.orhanobut.logger.Logger;
 
 import io.reactivex.rxjava3.annotations.NonNull;
@@ -104,5 +106,15 @@ public class EfunboxUtil {
         return "undefinde";
     }
 
+    public static boolean checkLogin(Context context) {
+        if (!Consts.getUID().equals("test")) {
+            //已登录
+            return true;
+        }
+        //未登录,去登录
+        Intent tologin = new Intent(context, LoginAlertActivity.class);
+        context.startActivity(tologin);
+        return false;
+    }
 
 }

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

@@ -49,6 +49,13 @@ public class OkHttpClient {
         OkHttpUtil.getDefault(activity).doGetAsync(info.addHead("uid", Consts.getUID()).build(), callback);
     }
 
+
+    public static void doGetUidAsync(Activity activity, String uid, HttpInfo.Builder info, BaseCallback callback) {
+        Logger.e("postUid:" + Consts.getUID());
+        OkHttpUtil.getDefault(activity).doGetAsync(info.addHead("uid", uid).build(), 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);

+ 7 - 3
app/src/main/java/com/edufound/reader/videoutil/JZMediaIjk.java

@@ -5,6 +5,7 @@ import android.graphics.SurfaceTexture;
 import android.media.AudioManager;
 import android.os.Handler;
 import android.os.HandlerThread;
+import android.text.TextUtils;
 import android.view.Surface;
 
 import java.io.IOException;
@@ -25,7 +26,9 @@ public class JZMediaIjk extends JZMediaInterface implements IMediaPlayer.OnPrepa
     IjkMediaPlayer ijkMediaPlayer;
 
     public JZMediaIjk(Jzvd jzvd) {
+        // init player
         super(jzvd);
+
     }
 
     @Override
@@ -35,7 +38,8 @@ public class JZMediaIjk extends JZMediaInterface implements IMediaPlayer.OnPrepa
 
     @Override
     public void prepare() {
-
+        IjkMediaPlayer.loadLibrariesOnce(null);
+        IjkMediaPlayer.native_profileBegin("libijkplayer.so");
         release();
         mMediaHandlerThread = new HandlerThread("JZVD");
         mMediaHandlerThread.start();
@@ -72,8 +76,8 @@ public class JZMediaIjk extends JZMediaInterface implements IMediaPlayer.OnPrepa
                 ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1);
                 //设置seekTo能够快速seek到指定位置并播放
                 ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "fflags", "fastseek");
-                //播放前的探测Size,默认是1M, 改小一点会出画面更快
-                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 1024 * 10);
+                //播放前的探测Size,默认是1M, 改小一点会出画面更快(开了这个官方视频没声音)
+//                ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 1024 * 10);
                 //1变速变调状态 0变速不变调状态
                 ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1);
 

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


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


+ 5 - 0
app/src/main/res/layout/activity_comment.xml

@@ -24,6 +24,8 @@
         <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
+                android:clickable="true"
+                android:focusableInTouchMode="true"
                 android:orientation="vertical">
 
 
@@ -121,6 +123,7 @@
                             android:showDividers="middle">
 
                         <FrameLayout
+                                android:id="@+id/comment_quick_layout_item1"
                                 android:layout_width="0dp"
                                 android:layout_height="match_parent"
                                 android:layout_gravity="center"
@@ -138,6 +141,7 @@
                         </FrameLayout>
 
                         <FrameLayout
+                                android:id="@+id/comment_quick_layout_item2"
                                 android:layout_width="0dp"
                                 android:layout_height="match_parent"
                                 android:layout_weight="1"
@@ -154,6 +158,7 @@
                         </FrameLayout>
 
                         <FrameLayout
+                                android:id="@+id/comment_quick_layout_item3"
                                 android:layout_width="0dp"
                                 android:layout_height="match_parent"
                                 android:layout_weight="1"

+ 29 - 26
app/src/main/res/layout/activity_otherrecord.xml

@@ -3,14 +3,14 @@
         xmlns:app="http://schemas.android.com/apk/res-auto"
         xmlns:tools="http://schemas.android.com/tools"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:background="#70C1FF">
 
 
     <FrameLayout
             android:id="@+id/background"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="#70C1FF"
+            android:layout_width="1280dp"
+            android:layout_height="720dp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -21,6 +21,7 @@
             android:layout_width="1280dp"
             android:layout_height="720dp"
             android:orientation="vertical"
+            android:paddingBottom="41dp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintDimensionRatio="h,16:9"
             app:layout_constraintEnd_toEndOf="parent"
@@ -32,7 +33,6 @@
                 android:id="@+id/activity_otherrecord_scroll"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:paddingBottom="41dp"
                 android:scrollbars="none">
 
 
@@ -45,17 +45,19 @@
                 <FrameLayout
                         android:layout_width="214dp"
                         android:layout_height="match_parent"
-                        android:layout_marginTop="70dp"
+                        android:layout_marginTop="57dp"
                         android:layout_marginBottom="10dp">
 
                     <com.edufound.reader.cusview.RoundFrameLayout
                             android:layout_width="match_parent"
                             android:layout_height="match_parent"
-                            android:background="@color/white">
+                            android:background="@color/white"
+                            android:paddingTop="15dp">
 
                         <LinearLayout
                                 android:layout_width="match_parent"
                                 android:layout_height="match_parent"
+                                android:layout_marginBottom="10dp"
                                 android:orientation="vertical">
 
                             <FrameLayout
@@ -76,19 +78,20 @@
                                             android:background="@drawable/fragment_recommend_userhead">
 
                                         <ImageView
+                                                android:id="@+id/activity_otherrecord_userhead"
                                                 android:layout_width="match_parent"
                                                 android:layout_height="match_parent"
-                                                android:padding="5dp"
-                                                android:src="@color/red"></ImageView>
+                                                android:padding="5dp"></ImageView>
                                     </FrameLayout>
 
                                     <TextView
+                                            android:id="@+id/activity_otherrecord_username"
                                             android:layout_width="match_parent"
                                             android:layout_height="37dp"
                                             android:layout_marginTop="4dp"
                                             android:alpha="0.6"
                                             android:gravity="center"
-                                            android:text="美少女战士"
+                                            android:text=""
                                             android:textColor="@color/black"
                                             android:textSize="26dp"></TextView>
                                 </LinearLayout>
@@ -100,21 +103,17 @@
                                     android:layout_weight="1">
 
                                 <FrameLayout
+                                        android:id="@+id/activity_otherrecord_isfans"
                                         android:layout_width="165dp"
                                         android:layout_height="66dp"
-                                        android:layout_gravity="center"
-                                        android:background="@drawable/main_ok_btn_bg">
+                                        android:layout_gravity="center">
 
 
-                                    <androidx.appcompat.widget.AppCompatCheckBox
-                                            android:layout_width="130dp"
+                                    <ImageView
+                                            android:id="@+id/activity_otherrecord_isfans_img"
+                                            android:layout_width="match_parent"
                                             android:layout_height="match_parent"
-                                            android:layout_gravity="center"
-                                            android:button="@drawable/activity_loginalert_check_selector"
-                                            android:gravity="center"
-                                            android:text="关注"
-                                            android:textColor="@color/white"
-                                            android:textSize="28dp"></androidx.appcompat.widget.AppCompatCheckBox>
+                                            android:layout_gravity="center"></ImageView>
                                 </FrameLayout>
                             </FrameLayout>
 
@@ -139,10 +138,11 @@
                                             android:textSize="28dp"></TextView>
 
                                     <TextView
+                                            android:id="@+id/activity_otherrecord_fans_count"
                                             android:layout_width="wrap_content"
                                             android:layout_height="wrap_content"
                                             android:alpha="0.6"
-                                            android:text="76"
+                                            android:text="0"
                                             android:textColor="@color/black"
                                             android:textSize="28dp"></TextView>
                                 </LinearLayout>
@@ -173,15 +173,16 @@
                                             android:layout_width="wrap_content"
                                             android:layout_height="wrap_content"
                                             android:alpha="0.6"
-                                            android:text="粉丝"
+                                            android:text="小红花"
                                             android:textColor="@color/black"
                                             android:textSize="28dp"></TextView>
 
                                     <TextView
+                                            android:id="@+id/activity_otherrecord_flower_count"
                                             android:layout_width="wrap_content"
                                             android:layout_height="wrap_content"
                                             android:alpha="0.6"
-                                            android:text="76"
+                                            android:text="0"
                                             android:textColor="@color/black"
                                             android:textSize="28dp"></TextView>
                                 </LinearLayout>
@@ -212,15 +213,16 @@
                                             android:layout_width="wrap_content"
                                             android:layout_height="wrap_content"
                                             android:alpha="0.6"
-                                            android:text="粉丝"
+                                            android:text="观看量"
                                             android:textColor="@color/black"
                                             android:textSize="28dp"></TextView>
 
                                     <TextView
+                                            android:id="@+id/activity_otherrecord_look_count"
                                             android:layout_width="wrap_content"
                                             android:layout_height="wrap_content"
                                             android:alpha="0.6"
-                                            android:text="76"
+                                            android:text="0"
                                             android:textColor="@color/black"
                                             android:textSize="28dp"></TextView>
                                 </LinearLayout>
@@ -240,11 +242,12 @@
                         android:paddingTop="20dp">
 
                     <TextView
+                            android:id="@+id/activity_otherrecord_allcount"
                             android:layout_width="match_parent"
                             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>
 

+ 2 - 0
app/src/main/res/layout/adapter_item_comment.xml

@@ -3,6 +3,8 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:background="@color/white"
+        android:clickable="true"
+        android:focusableInTouchMode="true"
         android:orientation="horizontal">
 
     <FrameLayout