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