package com.weikou.beibeivideo.util.ad; import android.content.Context; import android.content.SharedPreferences; import android.os.Build; import com.lcjian.library.util.common.AndroidManifestUtil; import com.weikou.beibeivideo.entity.ad.AdPositionEnum; import com.weikou.beibeivideo.entity.ad.AdTypeVO; import com.weikou.beibeivideo.util.BeibeiConstant; import com.weikou.beibeivideo.util.TimeUtil; import com.weikou.beibeivideo.util.TimeUtils; import com.weikou.beibeivideo.util.downutil.StringUtils; import org.json.JSONException; import org.json.JSONObject; //广告帮助 public class AdUtil { public enum AD_TYPE { gdt("广点通"), csj("穿山甲"), gdt2("广点通2.0"), hw("华为"), vivo("vivo"); private String name; private AD_TYPE(String name) { this.name = name; } } public static AD_TYPE getSmallExpressAdType() { if (BeibeiConstant.AD_TYPE != null && AdTypeVO.TYPE_CSJ.equalsIgnoreCase(BeibeiConstant.AD_TYPE.getExpressSmallType())) { return AD_TYPE.csj; } else { return AD_TYPE.gdt; } } public static AD_TYPE getBigExpressAdType() { if (BeibeiConstant.AD_TYPE != null && AdTypeVO.TYPE_CSJ.equalsIgnoreCase(BeibeiConstant.AD_TYPE.getExpressBigType())) { return AD_TYPE.csj; } else { return AD_TYPE.gdt2; } } /** * 保存广告配置 * * @param context * @param json */ public static void saveAdConfig(Context context, JSONObject json) { SharedPreferences share = context.getSharedPreferences("adConfig", Context.MODE_PRIVATE); SharedPreferences.Editor editor = share.edit(); editor.putString("config", json.toString()); editor.commit(); } /** * 获取广告类型 * * @param context * @param position * @return */ public static AD_TYPE getAdType(Context context, AdPositionEnum position) { SharedPreferences share = context.getSharedPreferences("adConfig", Context.MODE_PRIVATE); String config = share.getString("config", ""); if (!StringUtils.isNullOrEmpty(config)) {//万一没设置起就用广点通 try { JSONObject object = new JSONObject(config); object = object.optJSONObject(position.getPositionName()); if (object != null) if (AndroidManifestUtil.isHuaWeiChannel(context) && false) { return AD_TYPE.hw; } else { return AD_TYPE.valueOf(object.optString("type")); } } catch (JSONException e) { e.printStackTrace(); } catch (Exception e1) { return null; } } else { if (AndroidManifestUtil.isHuaWeiChannel(context) && false) { return AD_TYPE.hw; } else { return AD_TYPE.gdt; } } return null; } public static String getAdPid(Context context, AdPositionEnum position) { SharedPreferences share = context.getSharedPreferences("adConfig", Context.MODE_PRIVATE); String config = share.getString("config", ""); if (!StringUtils.isNullOrEmpty(config)) {//万一没设置起就用广点通 try { JSONObject object = new JSONObject(config); object = object.optJSONObject(position.getPositionName()); if (object != null) return object.optString("pid"); } catch (JSONException e) { e.printStackTrace(); } catch (Exception e1) { return null; } } else { return null; } return null; } /** * 是否显示PPTV免广告权益 * * @return */ public static boolean showPPTVNoAdReward(Context context) { return getAdType(context, AdPositionEnum.pptvNoAdReward) != null; } //是否已经获得pptv视频免广告权益 public static boolean isGetPPTVNoAdReward(Context context) { SharedPreferences share = context.getSharedPreferences("adConfig", Context.MODE_PRIVATE); long expireTime = share.getLong("pptvNoAdReward", 0); if (System.currentTimeMillis() > expireTime) { return false; } return true; } public static int getPPTVNoAdRewardLeftTimeWithMinute(Context context) { SharedPreferences share = context.getSharedPreferences("adConfig", Context.MODE_PRIVATE); long expireTime = share.getLong("pptvNoAdReward", 0); if (System.currentTimeMillis() > expireTime) { return 0; } else { return (int) ((expireTime - System.currentTimeMillis()) / (1000 * 60)); } } public static void setPPTVNoAdRewardSuccess(Context context) { int hour = getPPTVNoAdRewardHour(context); SharedPreferences share = context.getSharedPreferences("adConfig", Context.MODE_PRIVATE); SharedPreferences.Editor editor = share.edit(); editor.putLong("pptvNoAdReward", System.currentTimeMillis() + 1000 * 60 * 60L * hour); editor.commit(); } //获取pptv免广告权益的时间(小时记) public static int getPPTVNoAdRewardHour(Context context) { SharedPreferences share = context.getSharedPreferences("adConfig", Context.MODE_PRIVATE); return share.getInt("pptvNoAdRewardHour", 3); } /** * 设置pptv无广告权益的时间(小时记) * * @param context * @param hour */ public static void setPPTVNoAdRewardHour(Context context, int hour) { SharedPreferences share = context.getSharedPreferences("adConfig", Context.MODE_PRIVATE); SharedPreferences.Editor editor = share.edit(); editor.putInt("pptvNoAdRewardHour", hour); editor.commit(); } /** * 穿山甲广告是否需要初始化 * * @return */ public static boolean isCanInitCSJ() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP; // return true; } // 是否可以显示华为的广告 public static boolean canShowAdHuaWei(Context context, AdPositionEnum position) { return canShowAd(context, "huawei", position); } public static void setAdHuaWeiShown(Context context, AdPositionEnum position) { setAdShown(context, "huawei", position); } // 是否可以显示华为的广告 public static boolean canShowAd(Context context, String channel, AdPositionEnum position) { SharedPreferences share = context.getSharedPreferences("adConfig", Context.MODE_PRIVATE); long lastTime = share.getLong(channel + "_show_time_" + position.name(), 0); if (TimeUtils.millisToStringDate(System.currentTimeMillis(), "yyyyMMdd").equalsIgnoreCase(TimeUtils.millisToStringDate(lastTime, "yyyyMMdd"))) { //同一天 return false; } return true; } public static void setAdShown(Context context, String channel, AdPositionEnum position) { SharedPreferences share = context.getSharedPreferences("adConfig", Context.MODE_PRIVATE); SharedPreferences.Editor editor = share.edit(); editor.putLong(channel + "_show_time_" + position.name(), System.currentTimeMillis()); editor.commit(); } }