From edeef504e654415c25d3816a4609f43edc79fbb3 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 07 四月 2021 19:13:14 +0800
Subject: [PATCH] androidx兼容,新版轮播图样式

---
 BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendFragment.java |  159 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 104 insertions(+), 55 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendFragment.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendFragment.java
index 062d712..34b6fe8 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendFragment.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendFragment.java
@@ -1,17 +1,20 @@
 package com.weikou.beibeivideo.ui.recommend;
 
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.os.Bundle;
 import android.provider.Settings;
-import android.support.v4.app.Fragment;
-import android.support.v4.view.ViewPager;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
+
+import androidx.fragment.app.Fragment;
+import androidx.viewpager.widget.ViewPager;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -35,6 +38,7 @@
 import com.lcjian.library.util.common.StorageUtils;
 import com.lcjian.library.util.common.StringUtils;
 import com.lcjian.library.widget.RatioLayout;
+import com.lzj.gallery.library.views.BannerViewPager;
 import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
 import com.umeng.analytics.MobclickAgent;
 import com.viewpagerindicator.CirclePageIndicator;
@@ -47,11 +51,14 @@
 import com.weikou.beibeivideo.entity.HomeVideo;
 import com.weikou.beibeivideo.entity.JumpDetail;
 import com.weikou.beibeivideo.entity.VideoInfo;
+import com.weikou.beibeivideo.entity.VideoType;
 import com.weikou.beibeivideo.entity.ad.ExpressAdContainer;
 import com.weikou.beibeivideo.entity.recommend.HomeClass;
 import com.weikou.beibeivideo.ui.category.bean.HotStar;
+import com.weikou.beibeivideo.ui.media.VideoDetailActivity;
 import com.weikou.beibeivideo.ui.mine.BrowserActivity;
 import com.weikou.beibeivideo.util.BeibeiConstant;
+import com.weikou.beibeivideo.util.CustomShareDialog;
 import com.weikou.beibeivideo.util.DimenUtils;
 import com.weikou.beibeivideo.util.JumpActivityUtil;
 import com.weikou.beibeivideo.util.ad.AdUtil;
@@ -71,6 +78,7 @@
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.Iterator;
 import java.util.List;
 
 public class RecommendFragment extends RetainViewFragment implements
@@ -183,10 +191,9 @@
         }
     }
 
-    private ViewPager vp_recommend;
+    private BannerViewPager vp_recommend;
     private LinearLayout ll_ad_containner;
     private RatioLayout rl_recommend_top;
-    private CirclePageIndicator indicator_recommend;
     private boolean isLoad;
     private View loading;
     private View noMoreDataView;
@@ -196,9 +203,7 @@
         vp_recommend = view.findViewById(R.id.vp_recommend);
         ll_ad_containner = view.findViewById(R.id.ll_ad_containner);
         rl_recommend_top = view.findViewById(R.id.rl_recommend_top);
-        indicator_recommend = view.findViewById(R.id.indicator_recommend);
         mRecommendNewAdapter.setHeaderView(view);
-        autoPlayBanner(vp_recommend);
     }
 
     @Override
@@ -381,58 +386,104 @@
         }
     }
 
-    private Runnable autoPlayBanner = null;
 
-    private synchronized void autoPlayBanner(final ViewPager viewPager) {
+    private void setHomeAdsData(float ratio) {
+        List<String> urlList = new ArrayList<>();
+        for (HomeAd ad : mHomeAds)
+            urlList.add(ad.getPicture());
 
-        if (autoPlayBanner == null) {
-            autoPlayBanner = new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        if (viewPager.getAdapter() != null && viewPager.getAdapter().getCount() > 0) {
-                            if (viewPager.getCurrentItem() >= viewPager.getAdapter().getCount() - 1) {
-                                viewPager.setCurrentItem(0, true);
+
+        if (!vp_recommend.hasAdapter()) {
+
+            int width = ScreenUtils.getScreenWidth(getContext());
+
+            vp_recommend.initBanner(urlList, false, ratio)//寮�鍚�3D鐢诲粖鏁堟灉
+                    .addPageMargin((int) (DimenUtils.dip2px(getContext(), 1) * 1.5), DimenUtils.dip2px(getContext(), 3))//鍙傛暟1page涔嬮棿鐨勯棿璺�,鍙傛暟2涓棿item璺濈杈圭晫鐨勯棿璺�
+//                    .addPointMargin(5)//鎸囩ず鍣ㄧ偣闂磋窛
+                    .addStartTimer(3)//鑷姩杞挱3绉掗棿闅�
+//                    .addPointBottom(0)//搴曢儴闂磋窛
+                    .addDefaultImg(R.drawable.shape_video_list_cover_placeholder)
+                    .addRoundCorners(DimenUtils.dip2px(getContext(), 8))//鍦嗚
+                    .finishConfig()//杩欏彞蹇呴』鍔�
+                    .addBannerListener(new BannerViewPager.OnClickBannerListener() {
+                        @Override
+                        public void onBannerClick(int position) {
+                            if (position >= mHomeAds.size())
+                                return;
+                            Intent intent = null;
+                            if (mHomeAds.get(position).getLinkType() == 1) {
+                                intent = new Intent(getContext(),
+                                        VideoDetailActivity.class);
+                                intent.putExtra("video_info", mHomeAds.get(position)
+                                        .getVideo());
+                            } else if (mHomeAds.get(position).getLinkType() == 5) {
+                                try {
+                                    JSONObject object = new JSONObject(mHomeAds
+                                            .get(position).getParams()
+                                            .replace("\\", ""));
+                                    String thumb = object.optString("thumb");
+                                    String title = object.optString("title");
+                                    String desc = object.optString("desc");
+                                    String path = object.optString("path");
+                                    String username = object.optString("username");
+                                    String url = object.optString("url");
+
+                                    CustomShareDialog.Builder builder = new CustomShareDialog.Builder(getActivity());
+                                    builder.setMessage(desc);
+                                    builder.setUrl(url);
+                                    builder.setContentImage(thumb);
+                                    builder.setTitle(title);
+                                    builder.setPath(path);
+                                    builder.setUserName(username);
+                                    builder.setNegativeButton("鍙栨秷鍒嗕韩", new DialogInterface.OnClickListener() {
+                                        @Override
+                                        public void onClick(DialogInterface dialog, int which) {
+                                            dialog.dismiss();
+                                        }
+                                    });
+                                    builder.create().show();
+                                } catch (Exception e) {
+
+                                }
+
                             } else {
-                                viewPager.setCurrentItem(viewPager.getCurrentItem() + 1, true);
+                                try {
+                                    intent = new Intent(getContext(), Class
+                                            .forName(mHomeAds.get(position).getClazz()));
+                                    JSONObject object = new JSONObject(mHomeAds
+                                            .get(position).getParams()
+                                            .replace("\\", ""));
+                                    if (mHomeAds.get(position).getClazz().contains("FXBrowserActivity") && object.optString("url").endsWith(".apk")) {
+//                                        startDownLoadFile(object.optString("url"));
+                                        return;
+                                    }
+                                    if (mHomeAds.get(position).getParams() != null) {
+                                        @SuppressWarnings("unchecked")
+                                        Iterator<String> its = object.keys();
+                                        while (its.hasNext()) {
+                                            String key = its.next();
+                                            String value = object.optString(key);
+                                            intent.putExtra(key, value);
+                                            intent.putExtra("isPush", true);
+                                        }
+                                    }
+                                } catch (ClassNotFoundException e) {
+                                    e.printStackTrace();
+                                } catch (Exception e) {
+                                    e.printStackTrace();
+                                }
+
                             }
+                            if (intent != null)
+                                getContext().startActivity(intent);
                         }
-                        autoPlayBanner(viewPager);
-                    } catch (Exception e) {
 
-                    }
-                }
-            };
-            viewPager.postDelayed(autoPlayBanner, 3000);
+                    });
         } else {
-            viewPager.removeCallbacks(autoPlayBanner);
-            viewPager.postDelayed(autoPlayBanner, 3000);
+            vp_recommend.notifyDataSetChanged();
         }
     }
 
-    /**
-     * 璁剧疆骞垮憡鏁版嵁
-     */
-    private void setHomeAdsData() {
-        if (vp_recommend.getAdapter() == null) {
-            vp_recommend.setAdapter(new RecommendTopAdapter(mHomeAds, getActivity(), position == 0 ? false : true));
-            indicator_recommend.setViewPager(vp_recommend);
-            indicator_recommend.setViewPager(vp_recommend);
-        } else
-            vp_recommend.getAdapter().notifyDataSetChanged();
-
-        if (mHomeAds != null && mHomeAds.size() > 0) {
-            rl_recommend_top.setVisibility(View.VISIBLE);
-        } else {
-            rl_recommend_top.setVisibility(View.GONE);
-        }
-
-        if (vp_recommend.getChildCount() == 1) {
-            indicator_recommend.setVisibility(View.GONE);
-        } else
-            indicator_recommend.setVisibility(View.VISIBLE);
-
-    }
 
     private void loadCacheData() {
         if (cache != null && position == 0) {
@@ -478,7 +529,7 @@
                             if (adList != null && adList.size() > 0) {
                                 mHomeAds.clear();
                                 mHomeAds.addAll(adList);
-                                setHomeAdsData();
+                                setHomeAdsData(0.4375f);
                             }
                         } catch (JSONException e) {
                             e.printStackTrace();
@@ -687,7 +738,7 @@
                                 mHomeAds.addAll(homeAds);
                             }
 
-                            setHomeAdsData();
+                            setHomeAdsData(new BigDecimal(bannerSizeRate).floatValue());
 
 
                             if (position == 0) {
@@ -850,8 +901,6 @@
     @Override
     public void onDestroy() {
         super.onDestroy();
-        if (autoPlayBanner != null)
-            vp_recommend.removeCallbacks(autoPlayBanner);
     }
 
     private List<HomeVideo> adList1 = new ArrayList<>();

--
Gitblit v1.8.0