From 1bd61d859d83297f431ce1155f5a76fae03a86e4 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 13 十月 2020 10:30:40 +0800
Subject: [PATCH] 百度联盟内容分类,首页弹窗广告

---
 BuWanVideo/src/com/weikou/beibeivideo/ui/main/HomeFragment.java |  116 +++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 79 insertions(+), 37 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/main/HomeFragment.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/main/HomeFragment.java
index 0962b84..a7727fb 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/main/HomeFragment.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/main/HomeFragment.java
@@ -5,7 +5,10 @@
 import android.content.SharedPreferences;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
+import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
@@ -14,26 +17,33 @@
 import android.view.View;
 import android.widget.FrameLayout;
 
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.target.SimpleTarget;
+import com.bumptech.glide.request.transition.Transition;
 import com.google.gson.FieldNamingPolicy;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.google.gson.reflect.TypeToken;
-import com.lcjian.library.util.cache.DiskLruCache;
 import com.lcjian.library.util.common.StorageUtils;
+import com.lcjian.library.util.common.StringUtils;
 import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
 import com.viewpagerindicator.IconPagerAdapter;
 import com.viewpagerindicator.MainTabPageIndicator;
 import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
 import com.weikou.beibeivideo.BeibeiVideoAPI;
+import com.weikou.beibeivideo.BeibeiVideoApplication;
 import com.weikou.beibeivideo.R;
+import com.weikou.beibeivideo.entity.JumpDetail;
 import com.weikou.beibeivideo.entity.VideoType;
 import com.weikou.beibeivideo.entity.recommend.HomeClass;
 import com.weikou.beibeivideo.ui.MyRetainViewFragment;
+import com.weikou.beibeivideo.ui.dialog.FloatADDialog;
 import com.weikou.beibeivideo.ui.dialog.UserProtocolDialog;
 import com.weikou.beibeivideo.ui.recommend.NovelJNZFragment;
 import com.weikou.beibeivideo.ui.recommend.RecommendFragment;
 import com.weikou.beibeivideo.util.BeibeiConstant;
 import com.weikou.beibeivideo.util.UserUtil;
+import com.weikou.beibeivideo.util.cache.DiskLruCacheManager;
 
 import org.apache.http.Header;
 import org.json.JSONObject;
@@ -63,7 +73,6 @@
 
     FrameLayout fl_indicator;
 
-    private DiskLruCache cache;
 
     public HomeFragment() {
         super(HomeFragment.class.getClass().getName());
@@ -73,14 +82,6 @@
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        try {
-            cache = DiskLruCache.open(
-                    new File(StorageUtils.getCacheDirectory(getContext())
-                            .toString(), "http"), getVersionNum(getContext()),
-                    1, 1024 * 1024);
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
         if (!BeibeiConstant.IS_TEST)
             showProtocol();
     }
@@ -108,10 +109,67 @@
                 public void onClick(DialogInterface dialog, int which) {
                     dialog.dismiss();
                     UserUtil.agreeUserProtocol(getContext());
+                    showFloatImgAd();
                 }
             }).setData(data).create().show();
+        } else {
+            showFloatImgAd();
         }
     }
+
+    /**
+     * 灞曠ず鎮诞骞垮憡
+     */
+    private void showFloatImgAd() {
+        BeibeiVideoAPI.getHomeConfig(getContext(), new BasicTextHttpResponseHandler() {
+            @Override
+            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
+                if (jsonObject.optBoolean("IsPost")) {
+                    JSONObject data = jsonObject.optJSONObject("Data");
+                    if (data != null) {
+
+                        JSONObject ad = data.optJSONObject("floatAD");
+                        if (ad != null) {
+                            String id = ad.optString("id");
+                            if (FloatADDialog.Builder.canShow(getContext(), id)) {
+                                String picture = ad.optString("picture");
+                                Glide.with(getContext()).load(picture).into(new SimpleTarget<Drawable>() {
+                                    @Override
+                                    public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
+                                        JSONObject jumpDetailJSON = ad.optJSONObject("jumpDetail");
+                                        JSONObject params = ad.optJSONObject("params");
+                                        JumpDetail jumpDetail = new Gson().fromJson(jumpDetailJSON.toString(), JumpDetail.class);
+                                        final FloatADDialog.Builder builder = new FloatADDialog.Builder(getActivity())
+                                                .setId(id).setImage(resource);
+                                        if (params != null) {
+                                            builder.setJump(jumpDetail, com.alibaba.fastjson.JSONObject.parseObject(params.toString()));
+                                        }
+
+                                        fl_indicator.postDelayed(new Runnable() {
+                                            @Override
+                                            public void run() {
+                                                builder.create().show();
+                                            }
+                                        }, 2000);
+
+
+                                    }
+
+                                    @Override
+                                    public void onLoadCleared(@Nullable Drawable placeholder) {
+
+                                    }
+
+                                });
+                            }
+                        }
+                    }
+                }
+
+            }
+        });
+    }
+
 
     public static int getVersionNum(Context context) {
         try {
@@ -136,26 +194,16 @@
         if (fl_indicator.getChildCount() > 0) {
             fl_indicator.removeAllViews();
         }
-        DiskLruCache.Snapshot snapshot = null;
-        try {
-            if (cache != null) {
-                snapshot = cache.get(getKey("getCategories"));
-                if (snapshot != null) {
-                    Gson gson = new GsonBuilder().setFieldNamingPolicy(
-                            FieldNamingPolicy.UPPER_CAMEL_CASE).create();
-                    List<VideoType> list = gson.fromJson(
-                            snapshot.getString(0),
-                            new TypeToken<List<VideoType>>() {
-                            }.getType());
-//                    categories.addAll(list);
-                }
-            }
-        } catch (IOException e) {
-            e.printStackTrace();
-        } finally {
-            if (snapshot != null) {
-                snapshot.close();
-            }
+
+        String cacheValue = DiskLruCacheManager.getInstance(BeibeiVideoApplication.application).getCache(getKey("getCategories"));
+        if (!StringUtils.isBlank(cacheValue)) {
+            Gson gson = new GsonBuilder().setFieldNamingPolicy(
+                    FieldNamingPolicy.UPPER_CAMEL_CASE).create();
+            List<HomeClass> list = gson.fromJson(
+                    cacheValue,
+                    new TypeToken<List<HomeClass>>() {
+                    }.getType());
+            categories.addAll(list);
         }
 
         adapter = new HomePageAdapter(
@@ -230,13 +278,7 @@
 
 
                             count++;
-                            try {
-                                DiskLruCache.Editor editor = cache
-                                        .edit(getKey("getCategories"));
-                                editor.set(0, gson.toJson(categories));
-                                editor.commit();
-                            } catch (IOException e) {
-                            }
+                            DiskLruCacheManager.getInstance(BeibeiVideoApplication.application).cache(getKey("getCategories"), gson.toJson(categories));
                         }
                     }
 

--
Gitblit v1.8.0