FailedToRead 2 年之前
父节点
当前提交
634e6d7fb0

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

@@ -36,10 +36,10 @@ import com.orhanobut.logger.Logger;
 import java.util.HashMap;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
 import androidx.appcompat.widget.AppCompatCheckBox;
 
-import io.reactivex.rxjava3.annotations.Nullable;
 import io.reactivex.rxjava3.functions.Consumer;
 
 public class OthersRecordActivity extends BaseMvpActivity<OthersRecordPresenter> implements OthersRecordContract.View {
@@ -229,7 +229,6 @@ public class OthersRecordActivity extends BaseMvpActivity<OthersRecordPresenter>
         } else {
             mUserName.setText(info.getUser().getNickName());
         }
-        Logger.e("mUserName:" + mUserName.getText().toString());
         doFollowSuccess(info.getLike());
         if (info.getUser().getUid().equals(Consts.getUID()) || info.getUser().getProfession().equals("官方")) {
             //是自己
@@ -251,5 +250,15 @@ public class OthersRecordActivity extends BaseMvpActivity<OthersRecordPresenter>
         }
     }
 
+    @Override
+    public GridLayout mGetGridLayout() {
+        return mGridLayout;
+    }
+
 
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        mPresenter.onActivityResult(requestCode, resultCode, data);
+    }
 }

+ 4 - 3
app/src/main/java/com/edufound/reader/activity/UserInfoSettingActivity.java

@@ -136,7 +136,9 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
             }, new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
-                    CusToast.getInstance(mActivity).show("学号:" + Consts.getmConstsUserBean().getEid(), 2000);
+                    if (Consts.getmConstsUserBean() != null) {
+                        CusToast.getInstance(mActivity).show("学号:" + Consts.getmConstsUserBean().getEid(), 2000);
+                    }
                 }
             });
 
@@ -317,7 +319,7 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
             }
 
         });
-        addUiClickListener(mGenderFeMale, o -> {
+        addUiClickListener(mGrade, o -> {
             try {
                 if (mNickName.hasFocus()) {
                     mNickName.clearFocus();
@@ -343,7 +345,6 @@ public class UserInfoSettingActivity extends BaseMvpActivity<UserInfoSettingPres
         RxView.focusChanges(mNickName).
 
                 subscribe(hasFocus ->
-
                 {
                     if (!hasFocus) {
                         if (TextUtils.isEmpty(mNickName.getText().toString())) {

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

@@ -97,8 +97,10 @@ public class CommentItemAdapter extends RecyclerView.Adapter<CommentItemHolder>
                 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().getNickName() + ":");
-                comment.setText(item.getContent());
+                if (item != null && item.getUser() != null) {
+                    name.setText(item.getUser().getNickName() + ":");
+                    comment.setText(item.getContent());
+                }
                 holder.mReLayout.addView(view);
                 holder.mReLayout.setVisibility(View.VISIBLE);
             }

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

@@ -63,7 +63,7 @@ public class EApplication extends Application {
             Consts.setmApplicAtion(this);
 
             //初始化异常监听
-//            initException();
+            initException();
 
             XmlPullParserFactory.newInstance().setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
 

+ 19 - 1
app/src/main/java/com/edufound/reader/base/BaseActivity.java

@@ -543,7 +543,12 @@ public abstract class BaseActivity extends AppCompatActivity {
 
     @Override
     protected void onResume() {
-        super.onResume();
+        try {
+            super.onResume();
+        } catch (Exception e) {
+            callUpActivity();
+            e.printStackTrace();
+        }
         if (Consts.getUMengChannel().equals(ChannelCodeEnum.TMAIL.getChannelCode())) {
             try {
                 mAliTVASRManager.setOnASRCommandListener(mASRCommandListener);
@@ -1022,5 +1027,18 @@ public abstract class BaseActivity extends AppCompatActivity {
             }
         }, Consts.VIEW_CLICK_TIME);
     }
+
+    private void callUpActivity() {
+        try {
+            Class videoSuperClass = Activity.class;
+            Field callField = videoSuperClass.getDeclaredField("mCalled");
+            callField.setAccessible(true);
+            callField.setBoolean(this, true);
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+        } catch (NoSuchFieldException e) {
+            e.printStackTrace();
+        }
+    }
 }
 

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

@@ -1,10 +1,13 @@
 package com.edufound.reader.contract;
 
 import android.app.Activity;
+import android.content.Intent;
 import android.view.View;
 import android.widget.FrameLayout;
 import android.widget.GridLayout;
 
+import androidx.annotation.Nullable;
+
 import com.edufound.reader.base.BaseView;
 import com.edufound.reader.bean.MyInfoBean;
 import com.okhttplib.callback.Callback;
@@ -18,6 +21,7 @@ public interface OthersRecordContract {
 
         void doFollow(Activity activity, String json, Callback callback);
 
+        void getReadInfo(Activity activity, String recordId, Callback callback);
 
     }
 
@@ -33,6 +37,8 @@ public interface OthersRecordContract {
 
         void doFollowSuccess(boolean isfollow);
 
+        GridLayout mGetGridLayout();
+
 
     }
 
@@ -51,5 +57,7 @@ public interface OthersRecordContract {
 
         void setBackRecordId(String id);
 
+        void onActivityResult(int requestCode, int resultCode, @Nullable Intent data);
+
     }
 }

+ 2 - 0
app/src/main/java/com/edufound/reader/cusview/CusToast.java

@@ -11,6 +11,7 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.edufound.reader.R;
+import com.edufound.reader.util.EfunboxUtil;
 import com.edufound.reader.util.SizeUtils;
 
 import androidx.annotation.RequiresApi;
@@ -42,6 +43,7 @@ public class CusToast extends Toast {
     public CusToast(Context context, Handler handler) {
         super(context);
         this.handler = handler;
+        EfunboxUtil.initDesignSize(context);
         View layout = LayoutInflater.from(context).inflate(R.layout.toast, null, false);
         toast_content = (TextView) layout.findViewById(R.id.tvToast);
         if (toast == null) {

+ 3 - 1
app/src/main/java/com/edufound/reader/fragment/RecommendFragment.java

@@ -333,7 +333,9 @@ public class RecommendFragment extends BaseMvpFragment<RecommendFragmentPresente
             GlideUtils.loadCircleImage(getActivity(), bean.getUser().getAvatar(), mUserHead);
         }
 
-        if (bean.getUser().getNickName().length() > 6) {
+        if (TextUtils.isEmpty(bean.getUser().getNickName())) {
+            mUserPhone.setText(bean.getUser().getEid());
+        } else if (bean.getUser().getNickName().length() > 6) {
             mUserPhone.setText(bean.getUser().getNickName().substring(0, 6) + "...");
         } else {
             mUserPhone.setText(bean.getUser().getNickName());

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

@@ -21,4 +21,9 @@ public class OthersRecordModel implements OthersRecordContract.Model {
     public void doFollow(Activity activity, String json, Callback callback) {
         OkHttpClient.doPostAsync(activity, new HttpInfo.Builder().setUrl(API + "/fans").addParamJson(json), callback);
     }
+
+    @Override
+    public void getReadInfo(Activity activity, String recordId, Callback callback) {
+        OkHttpClient.doGetAsync(activity, new HttpInfo.Builder().setUrl(API + "/userRead/readInfo/" + recordId + ""), callback);
+    }
 }

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

@@ -317,7 +317,8 @@ public class CharacterFragmentPresenterVersionThree extends BasePresenter<Charac
                                         }
                                     }, 200);
                                 } catch (Exception e) {
-                                    e.printStackTrace();
+//                                    e.printStackTrace();
+                                    CusToast.getInstance(mView.getActivity()).show("请重试", 3000);
                                 }
 
                             }

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

@@ -545,8 +545,10 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
                 case PAUSE_CHANGE:
                     mRadioChangeHandler.removeMessages(PAUSE_CHANGE);
                     pauseChange = false;
-                    for (int i = 0; i < mView.getRadioGroup().getChildCount(); i++) {
-                        mView.getRadioGroup().getChildAt(i).setClickable(true);
+                    if (mView.getRadioGroup() != null) {
+                        for (int i = 0; i < mView.getRadioGroup().getChildCount(); i++) {
+                            mView.getRadioGroup().getChildAt(i).setClickable(true);
+                        }
                     }
                     break;
             }

+ 58 - 4
app/src/main/java/com/edufound/reader/presenter/OthersRecordPresenter.java

@@ -35,16 +35,19 @@ import com.edufound.reader.util.EfunboxUtil;
 import com.edufound.reader.util.GlideUtils;
 import com.edufound.reader.util.MMKVUtil;
 import com.edufound.reader.util.SizeUtils;
+import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 import com.okhttplib.HttpInfo;
 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;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
 
 public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.View> implements OthersRecordContract.Presenter {
@@ -57,6 +60,9 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
     int mListStart = 0;
     int mListEnd = onceLoadCount;
     String backRecordId = null;
+    final int START_SMALLFULLVIDEO = 0x2231;
+    String refVideoId = null;
+    int startIndex = 0;
 
     public OthersRecordPresenter() {
         mModel = new OthersRecordModel();
@@ -75,7 +81,7 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
     }
 
 
-    private void setGridItemView(GridLayout gridLayout, int index) {
+    private void setGridItemView(GridLayout gridLayout, int index, int gridIndex) {
         if (mView == null) {
             return;
         }
@@ -102,6 +108,7 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
         checkLayout.setVisibility(View.GONE);
 
         mView.addUiClick(view, o -> {
+            startIndex = index;
             Bundle bundle = new Bundle();
             bundle.putString("index", index + "");
             bundle.putString("dataJson", "getmmkv");
@@ -112,8 +119,10 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
                 MMKVUtil.getInstance().removeKey("video_data");
                 String json = ((BaseActivity) mView.getActivity()).getGson().toJson(mDataList);
                 MMKVUtil.getInstance().encode("video_data", json);
+                refVideoId = mDataList.get(index).getUserRead().getId();
+                Logger.e("refVideoId:" + refVideoId);
 //            bundle.putString("dataJson", ((BaseActivity) mView.getActivity()).getGson().toJson(mDataList));
-                ((BaseActivity) mView.getActivity()).toNextActivity(SmallFullVideoActivity.class, bundle);
+                ((BaseActivity) mView.getActivity()).toNextActivityForResult(SmallFullVideoActivity.class, bundle, START_SMALLFULLVIDEO);
             } catch (Exception e) {
                 Logger.e("报错数据:" + mDataList);
                 e.printStackTrace();
@@ -132,7 +141,11 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
         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);
+        if (gridIndex != -1) {
+            gridLayout.addView(view, gridIndex);
+        } else {
+            gridLayout.addView(view);
+        }
     }
 
 
@@ -231,6 +244,46 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
     }
 
     @Override
+    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        switch (requestCode) {
+            case START_SMALLFULLVIDEO:
+                //刷新refVideoId的数据
+                mModel.getReadInfo(mView.getActivity(), refVideoId, new Callback() {
+                    @Override
+                    public void onSuccess(HttpInfo info) throws IOException {
+                        HttpResultBean<UserRecordBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserRecordBean>>() {
+                        }.getType());
+                        if (bean.getSuccess() && bean.getCode().equals("200")) {
+                            if (otherRecordHandler == null) {
+                                return;
+                            }
+                            otherRecordHandler.postDelayed(new Runnable() {
+                                @Override
+                                public void run() {
+                                    if (mDataList != null) {
+                                        mDataList.remove(startIndex);
+                                        mDataList.add(startIndex, bean.getData());
+                                        if (mView.mGetGridLayout() != null) {
+                                            mView.mGetGridLayout().removeView(mView.mGetGridLayout().getChildAt(startIndex));
+                                            setGridItemView(mView.mGetGridLayout(), startIndex, startIndex);
+                                        }
+                                    }
+                                }
+                            }, 50);
+
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(HttpInfo info) throws IOException {
+                        Logger.e("获取单独的失败了:" + info.getRetDetail());
+                    }
+                });
+                break;
+        }
+    }
+
+    @Override
     public void onDestory(GridLayout layout) {
 
         otherRecordHandler.removeMessages(CharacterFragmentModel.LOAD_GRID);
@@ -262,7 +315,7 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
         public boolean handleMessage(Message msg) {
             switch (msg.what) {
                 case OthersRecordModel.LOAD_GRID:
-                    setGridItemView((GridLayout) msg.obj, msg.arg1);
+                    setGridItemView((GridLayout) msg.obj, msg.arg1, -1);
                     break;
                 default:
                     throw new IllegalStateException("Unexpected value: " + msg.what);
@@ -271,4 +324,5 @@ public class OthersRecordPresenter extends BasePresenter<OthersRecordContract.Vi
         }
     });
 
+
 }

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

@@ -247,6 +247,7 @@ public class PopWindowPresneter {
                                             Logger.e("请求评测成功:" + info.getRetDetail());
                                             mUploadingSuccessFrame.setVisibility(View.VISIBLE);
                                             FrameLayout toLisMySelf = mUploadingSuccessFrame.findViewById(R.id.popup_record_status_upload_success_btn);
+                                            toLisMySelf.setVisibility(View.VISIBLE);
                                             addUIClick(toLisMySelf, v -> {
                                                 PopWindowUtil.hidePopupWindow();
 //                                                    Toast.makeText(context, "去听听(首页->我的tab)", Toast.LENGTH_SHORT).show();

+ 3 - 2
app/src/main/res/layout/toast.xml

@@ -17,7 +17,7 @@
         <ImageView
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:background="@drawable/toast_bg"></ImageView>
+            android:background="@drawable/toast_bg" />
 
         <TextView
             android:id="@+id/tvToast"
@@ -25,7 +25,8 @@
             android:layout_height="match_parent"
             android:background="@color/transparent"
             android:gravity="center"
-            android:lineSpacingMultiplier="1.6"
+            android:lineSpacingMultiplier="1.5"
+            android:maxWidth="600dp"
             android:padding="30dp"
             android:text="2222222222222222222222222222222222222\n2\n2\n2\n22"
             android:textColor="#AB722D"