From 27412be889d0a58a93fd20d40d40ff22afe4990c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 15 八月 2020 17:39:24 +0800
Subject: [PATCH] '视频详情页面完善'

---
 BuWanVideo/src/com/weikou/beibeivideo/ui/media/EpisodeFragment.java |  100 +++++++++++++++++++++++++++++---------------------
 1 files changed, 58 insertions(+), 42 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/media/EpisodeFragment.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/media/EpisodeFragment.java
index 3b2e81a..c1eed5a 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/media/EpisodeFragment.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/media/EpisodeFragment.java
@@ -12,7 +12,7 @@
 import android.os.Handler;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.StaggeredGridLayoutManager;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -20,7 +20,6 @@
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.BaseAdapter;
 import android.widget.FrameLayout;
-import android.widget.GridView;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.ListView;
@@ -60,7 +59,6 @@
 import com.weikou.beibeivideo.util.BeibeiConstant;
 import com.weikou.beibeivideo.util.VideoUtil;
 import com.weikou.beibeivideo.util.ad.ExpressAdManager;
-import com.weikou.beibeivideo.util.ui.DividerItemDecoration;
 import com.yeshi.buwanshequ.R;
 
 import org.apache.http.Header;
@@ -94,6 +92,8 @@
     private FrameLayout fl_native_ad1;
 
     private EpisodeNewAdapter episodeAdapter;
+
+    final String TAG = "EpisodeFragment";
 
     public static DisplayImageOptions option = new DisplayImageOptions.Builder()
             .showImageForEmptyUri(R.drawable.from_other)
@@ -156,16 +156,36 @@
         }
     }
 
-    private  void loadEpisode(){
+    private void loadEpisode() {
+
+        int type = 0;
+
         if (mVideoInfo.getShowType() == 1) {
             // 缁艰壓鎴栬�呯數褰�
-            episodeAdapter = new EpisodeNewAdapter(getContext(), mVideoInfo, EpisodeNewAdapter.TYPE_ZONGYI, mPlayingPosition);
+            type = EpisodeNewAdapter.TYPE_ZONGYI;
+
         } else if (mVideoInfo.getShowType() == 2) {
             // 鐢佃鍓у姩婕�
-            episodeAdapter = new EpisodeNewAdapter(getContext(), mVideoInfo, EpisodeNewAdapter.TYPE_DIANSHIJU, mPlayingPosition);
+            type = EpisodeNewAdapter.TYPE_DIANSHIJU;
         }
+        episodeAdapter = new EpisodeNewAdapter(getContext(), mVideoInfo, type, mPlayingPosition, new EpisodeNewAdapter.ISelectVideoEpisodeListener() {
+            @Override
+            public void onClick(int position, VideoDetailInfo detailInfo) {
+                VideoDetailInfo videoDetailInfo = detailInfo;
+                mPlayingPosition = position;
+                episodeAdapter.setPlayingPosition(mPlayingPosition);
+                refresh();
+                Playlocation playlocation = new Playlocation();
+                playlocation.setPosition(position);
+                EventBus.getDefault().post(playlocation);
+                getUrl(videoDetailInfo);
+            }
+        });
         LinearLayoutManager ms = new LinearLayoutManager(getContext());
         ms.setOrientation(LinearLayoutManager.HORIZONTAL);
+
+        rv_episode.setHasFixedSize(true);
+        rv_episode.setNestedScrollingEnabled(false);
 
         rv_episode.setLayoutManager(ms);
         rv_episode.addItemDecoration(new SpacesItemDecoration(DimenUtils.dip2px(getContext(), 10)));
@@ -173,6 +193,7 @@
 
     @Override
     public void onCreateView(View contentView, Bundle savedInstanceState) {
+        Log.i(TAG, "onCreateView");
         EventBus.getDefault().register(this);
         mVideoInfo = (VideoInfo) getArguments()
                 .getSerializable("video_info");
@@ -235,49 +256,28 @@
         fl_native_ad1 = contentView
                 .findViewById(R.id.fl_native_ad_1);
         rv_episode = contentView.findViewById(R.id.rv_episode);
-        loadEpisode();
 
-        //TODO 鐐瑰嚮浜嬩欢鍝嶅簲
-//        rv_episode.setOnItemClickListener(new OnItemClickListener() {
-//            @Override
-//            public void onItemClick(AdapterView<?> parent, View view,
-//                                    int position, long id) {
-//                VideoDetailInfo videoDetailInfo = (VideoDetailInfo) parent
-//                        .getItemAtPosition(position);
-//                if (selectedUrl == null) {
-//                    return;
-//                }
-//                mPlayingPosition = position;
-//                episodeAdapter = new EpisodeAdapter(mVideoInfo,
-//                        mPlayingPosition);
-//                episodeAdapter2 = new EpisodeAdapter2(mVideoInfo,
-//                        mPlayingPosition);
-//                refresh();
-//                Playlocation playlocation = new Playlocation();
-//                playlocation.setPosition(position);
-//                EventBus.getDefault().post(playlocation);
-//                getUrl(videoDetailInfo);
-//            }
-//        });
         contentView.findViewById(R.id.iv_share).setOnClickListener(this);
         contentView.findViewById(R.id.iv_offline_cache).setOnClickListener(this);
         fl_report = contentView.findViewById(R.id.fl_report);
         iv_favourite = contentView.findViewById(R.id.iv_add_to_favourite);
         fl_report.setOnClickListener(this);
         iv_favourite.setOnClickListener(this);
-
+        loadEpisode();
         refresh();
         isCollect();
         loadAD1();
         setFrom(mVideoInfo);
+        if (mVideoInfo.getVideoDetailList() != null && mVideoInfo.getVideoDetailList().size() > 1) {
+            rv_episode.setVisibility(View.VISIBLE);
+        } else
+            rv_episode.setVisibility(View.GONE);
     }
 
 
     public void onEventMainThread(Playlocation playlocation) {
         mPlayingPosition = playlocation.getPosition();
-        //TODO 閲嶆柊璧嬪��
-        // episodeAdapter = new EpisodeAdapter(mVideoInfo,
-        //                mPlayingPosition);
+        loadEpisode();
         refresh();
     }
 
@@ -385,21 +385,32 @@
      * 鍒锋柊adapter
      */
     public void refresh() {
-        rv_episode.setAdapter(episodeAdapter);
+        if (rv_episode.getAdapter() != null)
+            rv_episode.getAdapter().notifyDataSetChanged();
+        else
+            rv_episode.postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    Log.i(TAG, "refresh");
+                    rv_episode.setAdapter(episodeAdapter);
+                }
+            }, 500);
+
+
     }
 
     // 鍔犺浇鎾斁椤电涓�鏉″箍鍛婏紝鍏堣缃姞杞戒笂涓嬫枃鐜鍜屾潯浠�
     private void loadAD1() {
-        new ExpressAdManager(ExpressAdManager.SOURCE_GDT, getContext()).loadVideoDetailAd(1, new ExpressAdManager.IAdLoadListener() {
+        new ExpressAdManager(ExpressAdManager.SOURCE_GDT2, getContext()).loadVideoDetailPlayerBottomAd(new ExpressAdManager.IAdLoadListener() {
             @Override
             public void onSuccess(List<ExpressAdContainer> adList) {
-
-                ExpressAdManager.render(getActivity(), adList.get(0), fl_native_ad1, new ExpressAdManager.IAdEventListener() {
-                    @Override
-                    public void closeAd() {
-                        fl_native_ad1.removeAllViews();
-                    }
-                });
+                if (adList != null && adList.size() > 0)
+                    ExpressAdManager.render(getActivity(), adList.get(0), fl_native_ad1, new ExpressAdManager.IAdEventListener() {
+                        @Override
+                        public void closeAd() {
+                            fl_native_ad1.removeAllViews();
+                        }
+                    });
             }
         });
     }
@@ -504,10 +515,15 @@
 
     public void onEventMainThread(VideoInfo videoInfo) {
         mVideoInfo = videoInfo;
+        if (mVideoInfo.getVideoDetailList() != null && mVideoInfo.getVideoDetailList().size() > 1) {
+            rv_episode.setVisibility(View.VISIBLE);
+        } else
+            rv_episode.setVisibility(View.GONE);
         setFrom(videoInfo);
         iv_favourite.setEnabled(true);
         fl_report.setEnabled(true);
         rv_episode.setAdapter(episodeAdapter);
+
     }
 
     private void setFrom(VideoInfo info) {

--
Gitblit v1.8.0