Prechádzať zdrojové kódy

1.修改小窗播放进入他人页面再点击数据不刷新问题

FailedToRead 2 rokov pred
rodič
commit
fcbab7166f

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

@@ -38,6 +38,7 @@ import java.util.HashMap;
 import androidx.annotation.NonNull;
 import androidx.annotation.RequiresApi;
 import androidx.appcompat.widget.AppCompatCheckBox;
+
 import io.reactivex.rxjava3.annotations.Nullable;
 import io.reactivex.rxjava3.functions.Consumer;
 
@@ -167,6 +168,7 @@ public class OthersRecordActivity extends BaseMvpActivity<OthersRecordPresenter>
     @Override
     protected void onDestroy() {
         isNeedLoad = true;
+        Logger.e("intoPage:" + intoPage);
         if (intoPage.equals("RecommendFragment")) {
             mPresenter.sendBackReceiver(BackPageReceiver.BACK_HOME_REF_VIDEO_ITEM);
         } else if (intoPage.equals("MyFollowActivity")) {

+ 36 - 9
app/src/main/java/com/edufound/reader/activity/SmallFullVideoActivity.java

@@ -30,6 +30,8 @@ public class SmallFullVideoActivity extends BaseMvpActivity<SmallFullVideoPresen
     @BindView(id = R.id.activity_smallfull_video_back)
     ImageView mBack;
     private String into_Page;
+    private String data_Json;
+    private boolean isNewIntent = false;
 
     @Override
     public int getLayoutId() {
@@ -67,18 +69,19 @@ public class SmallFullVideoActivity extends BaseMvpActivity<SmallFullVideoPresen
         } else {
             Bundle params = getIntent().getBundleExtra("params_bundle");
             into_Page = params.getString("intoPage");
-            String dataJson = params.getString("dataJson");
-            if (dataJson.equals("getmmkv")) {
-                dataJson = MMKVUtil.getInstance().decodeString("video_data");
+            Logger.e("into_Page:" + into_Page);
+            data_Json = params.getString("dataJson");
+            if (data_Json.equals("getmmkv")) {
+                data_Json = MMKVUtil.getInstance().decodeString("video_data");
             }
-            initPage(params.getString("index"), dataJson);
+            initPage(params.getString("index"), data_Json);
         }
 
         BackPageReceiver.registerReceiver(this, BackPageReceiver.BACK_HOME_REF_VIDEO_ITEM);
         BackPageReceiver.registerBackPageReceiverListener(backListener);
-
     }
 
+
     @Override
     public void onGetDisconnect() {
 
@@ -134,15 +137,15 @@ public class SmallFullVideoActivity extends BaseMvpActivity<SmallFullVideoPresen
 
     @Override
     protected void onResume() {
-
         super.onResume();
+
     }
 
 
     BackPageReceiver.onBackPage backListener = new BackPageReceiver.onBackPage() {
         @Override
         public void pageBack(Intent intent) {
-            if (intent.getAction().equals(BackPageReceiver.BACK_HOME_REF_VIDEO_ITEM)) {
+            if (intent.getAction().equals(BackPageReceiver.BACK_HOME_REF_VIDEO_ITEM) && isNewIntent == false) {
                 //从其他页面回来了。查询一下单独的item数据,然后赋值
                 mPresenter.refRecordById(intent.getStringExtra("recordId"));
             }
@@ -156,8 +159,32 @@ public class SmallFullVideoActivity extends BaseMvpActivity<SmallFullVideoPresen
     }
 
     @Override
-    public void initPage(String index, String dataJson) {
+    public void initPage(String index, String data_Json) {
+        Logger.e("data_Json:" + data_Json);
         mPresenter.setInfoPage(into_Page);
-        mPresenter.initFragment(Integer.valueOf(index), dataJson);
+        mPresenter.initFragment(Integer.valueOf(index), data_Json);
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        Logger.e("重复利用页面");
+        isNewIntent = true;
+        into_Page = "";
+        data_Json = "";
+        Bundle params = intent.getBundleExtra("params_bundle");
+        into_Page = params.getString("intoPage");
+        Logger.e("into_Page:" + into_Page);
+        data_Json = params.getString("dataJson");
+        Logger.e("data_Json:" + data_Json);
+        if (data_Json.equals("getmmkv")) {
+            data_Json = MMKVUtil.getInstance().decodeString("video_data");
+        }
+        initPage(params.getString("index"), data_Json);
     }
 }

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

@@ -450,12 +450,12 @@ public class MainPresenter extends BasePresenter<MainContract.View> implements M
     @Override
     public void refRecordById(String id) {
         switch (mRadioCheckIndex) {
-            case 1:
+            case 2:
                 if (mRecommendFragment != null) {
                     mRecommendFragment.getPresenter().getRecordInfoById(id);
                 }
                 break;
-            case 2:
+            case 3:
                 if (mFollowFragment != null) {
                     mFollowFragment.getPresenter().getRecordInfoById(id);
                 }

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

@@ -386,6 +386,7 @@ public class RecommendFragmentPresenter extends BasePresenter<RecommendFragmentC
         mModel.getRecordInfoById(mView.getActivity(), id, new Callback() {
             @Override
             public void onSuccess(HttpInfo info) throws IOException {
+                Logger.e("获取单独的成功了");
                 HttpResultBean<UserRecordBean> bean = info.getRetDetail(new TypeToken<HttpResultBean<UserRecordBean>>() {
                 }.getType());
                 mDataList.set(mCurrentPosition, bean.getData());

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

@@ -1,5 +1,6 @@
 package com.edufound.reader.presenter;
 
+import android.util.Log;
 import android.view.KeyEvent;
 
 import com.edufound.reader.R;
@@ -16,6 +17,7 @@ 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 androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
@@ -29,24 +31,30 @@ public class SmallFullVideoPresenter extends BasePresenter<SmallFullVideoContrac
     SmallFullVideoModel mModel;
     RecommendFragment mRecommendFragment;
     FragmentManager mFragmentManager;
+    FragmentTransaction transaction;
     private String intoPage;
 
     public SmallFullVideoPresenter(FragmentManager fragmentManager) {
         mModel = new SmallFullVideoModel();
         mFragmentManager = fragmentManager;
-        mRecommendFragment = new RecommendFragment(2);
 
     }
 
 
     @Override
     public void initFragment(int index, String dataJson) {
-
+        if (mRecommendFragment != null) {
+            mFragmentManager.beginTransaction().remove(mRecommendFragment);
+            mRecommendFragment = null;
+        }
+        mRecommendFragment = new RecommendFragment(2);
         FragmentTransaction transaction = mFragmentManager.beginTransaction();
         transaction.addToBackStack(null);
         transaction.replace(R.id.smallfull_fragment_layout, mRecommendFragment);
+        Logger.e("index:" + index);
         mRecommendFragment.scrollPosition(index);
         mRecommendFragment.setInToPage(intoPage);
+        Log.e("dataJson:", dataJson);
         mRecommendFragment.setDataJson(dataJson);
         transaction.commit();
     }