BuWanVideo/AndroidManifest.xml
@@ -49,7 +49,7 @@ android:protectionLevel="signature" /> <uses-permission android:name="${applicationId}.permission.KW_SDK_BROADCAST" /> <uses-sdk tools:overrideLibrary="com.bytedance.pangrowthsdk,com.bytedance.novel.pangolin,com.bytedance.sdk.dp.dpsdk_lite,com.bytedance.sdk.dp.dpsdk_live,com.byted.live.api,com.bytedance.pangolin.game,com.bytedance.miniapp" /> <uses-sdk tools:overrideLibrary="com.bytedance.pangrowthsdk,com.bytedance.novel.pangolin,com.bytedance.sdk.dp.dpsdk_lite,com.bytedance.sdk.dp.dpsdk_live,com.byted.live.api,com.bytedance.pangolin.game,com.bytedance.miniapp,com.volcengine.mars.utility" /> <application android:name="com.weikou.beibeivideo.BeibeiVideoApplication" BuWanVideo/build.gradle
@@ -47,19 +47,19 @@ implementation files('libs/mtopsdk_allinone_open-3.1.2.5.jar') //登陆 implementation 'com.ali.auth.sdk:alibabauth_core:2.0.0.6@aar' implementation 'com.ali.auth.sdk:alibabauth_ui:2.0.0.6@aar' implementation 'com.ali.auth.sdk:alibabauth_ext:2.0.0.6@aar' implementation files('libs/alibabauth_core-2.0.0.12.aar') implementation files('libs/alibabauth_ext-2.0.0.12.aar') implementation files('libs/alibabauth_ui-2.0.0.12.aar') //安全组件 //applink implementation 'com.alibaba.sdk.android:alibc_link_partner:4.1.15@aar' implementation files('libs/alibc_link_partner-4.1.27.aar') //ut implementation 'com.alibaba.mtl:app-monitor-sdk:2.6.4.5_for_bc' implementation files('libs/app-monitor-sdk-2.6.4.11_for_bc.jar') // 电商基础组件 implementation 'com.alibaba.sdk.android:AlibcTradeCommon:4.0.0.15@aar' implementation 'com.alibaba.sdk.android:AlibcTradeBiz:4.0.0.15@aar' implementation 'com.alibaba.sdk.android:nb_trade:4.0.0.15@aar' implementation files('libs/AlibcTradeBiz-4.0.0.27.aar') implementation files('libs/AlibcTradeCommon-4.0.0.27.aar') implementation files('libs/nb_trade-4.0.0.27.aar') implementation 'androidx.cardview:cardview:1.0.0' @@ -82,10 +82,10 @@ implementation 'com.qhutch.elevationimageview:elevationimageview:2.4' //穿山甲 implementation 'com.pangle.cn:ads-sdk-pro:4.2.0.2' implementation 'com.pangle.cn:ads-sdk-pro:4.3.0.8' implementation('com.pangle.cn:pangrowth-sdk:1.8.0.0') { implementation('com.pangle.cn:pangrowth-sdk:2.3.0.0') { exclude group: 'com.pangle.cn', module: 'pangrowth-dpsdk-live' exclude group: 'com.pangle.cn', module: 'pangrowth-game-sdk' exclude group: 'com.pangle.cn', module: 'pangrowth-luckycat-sdk' @@ -129,8 +129,8 @@ defaultConfig { applicationId "com.doudou.ysvideo" versionCode 130 versionName "3.10.12" versionCode 132 versionName "3.10.14" multiDexEnabled = true minSdkVersion 17 targetSdkVersion 29 @@ -249,8 +249,17 @@ flatDir { dirs 'libs' } jcenter() mavenCentral() maven { url "https://artifact.bytedance.com/repository/pangle/" } maven { url 'https://jitpack.io' } maven { url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" } } BuWanVideo/libs/AlibcTradeBiz-4.0.0.27.aarBinary files differ
BuWanVideo/libs/AlibcTradeCommon-4.0.0.27.aarBinary files differ
BuWanVideo/libs/alibabauth_core-2.0.0.12.aarBinary files differ
BuWanVideo/libs/alibabauth_ext-2.0.0.12.aarBinary files differ
BuWanVideo/libs/alibabauth_ui-2.0.0.12.aarBinary files differ
BuWanVideo/libs/alibc_link_partner-4.1.27.aarBinary files differ
BuWanVideo/libs/app-monitor-sdk-2.6.4.11_for_bc.jarBinary files differ
BuWanVideo/libs/nb_trade-4.0.0.27.aarBinary files differ
BuWanVideo/src/J/N1.java
File was renamed from BuWanVideo/src/J/N.java @@ -1,6 +1,6 @@ package J; public class N { public class N1 { public static final boolean TESTING_ENABLED = false; public static final boolean REQUIRE_MOCK = false; public static boolean a; @@ -8,6 +8,6 @@ public static final native void M7xB0tc0(String var0, long[] var1, int var2); public N() { public N1() { } } BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoApplication.java
@@ -20,13 +20,13 @@ import com.alibaba.baichuan.android.trade.AlibcTradeSDK; import com.alibaba.baichuan.android.trade.callback.AlibcTradeInitCallback; import com.baidu.mobads.AppActivity; import com.bytedance.applog.AppLog; import com.bytedance.applog.InitConfig; import com.bytedance.applog.util.UriConstants; import com.bytedance.novel.pangolin.NovelConfig; import com.bytedance.novel.pangolin.NovelSDK; import com.bytedance.novel.pangolin.PangolinDocker; import com.bytedance.novel.pangolin.data.INovelInitListener; import com.bytedance.novel.pangolin.data.NormalFontType; import com.bytedance.novel.pangolin.data.ReaderFontType; import com.bytedance.sdk.dp.DPSdk; @@ -40,9 +40,7 @@ import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.assist.QueueProcessingType; import com.qq.e.comm.managers.GDTADManager; import com.qq.e.comm.managers.GDTAdSdk; import com.qq.e.comm.util.GDTLogger; import com.tencent.mm.opensdk.constants.ConstantsAPI; import com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.WXAPIFactory; @@ -57,7 +55,6 @@ import com.weikou.beibeivideo.ui.SplashActivity; import com.weikou.beibeivideo.ui.ad.SplashADFragment; import com.weikou.beibeivideo.ui.ad.SplashAdActivity; import com.weikou.beibeivideo.ui.push.PushOpenClickActivity; import com.weikou.beibeivideo.util.BeibeiConstant; import com.weikou.beibeivideo.util.CrashHandler; import com.weikou.beibeivideo.util.UserUtil; @@ -70,7 +67,6 @@ import org.apache.http.Header; import org.greenrobot.eventbus.EventBus; import org.json.JSONException; import org.json.JSONObject; import androidx.multidex.MultiDex; @@ -349,6 +345,12 @@ .jsonFileName("SDK_Setting_5095354.json")//json配置文件的名称 必填 .normalFontSize(NormalFontType.NORMAL) //全局字号大小 可选 .readerFontSize(ReaderFontType.TWO) //阅读器字号大小 可选 .initListener(new INovelInitListener() { @Override public void onInitComplete(boolean b) { } }) .build(); NovelSDK.INSTANCE.attach(new PangolinDocker(config), application); } @@ -373,7 +375,6 @@ DPSdkConfig.Builder configBuilder = new DPSdkConfig.Builder() .debug(false) .needInitAppLog(false) .setIsAndroidx(true) .initListener(new DPSdkConfig.InitListener() { @Override public void onInitComplete(boolean b) { BuWanVideo/src/com/weikou/beibeivideo/entity/ad/ExpressAdContainer.java
@@ -3,15 +3,12 @@ import com.bytedance.sdk.openadsdk.TTNativeExpressAd; import com.qq.e.ads.nativ.NativeExpressADView; import com.qq.e.ads.nativ.NativeUnifiedADData; import com.qq.e.ads.nativ.express2.NativeExpressAD2; import com.qq.e.ads.nativ.express2.NativeExpressADData2; //信息流原生广告容器 public class ExpressAdContainer { TTNativeExpressAd csj; NativeExpressADView gdt;//旧版广点通 NativeExpressADData2 gdt2;//2.0版广点通 NativeUnifiedADData gdt2Unfied;//2.0广点通自渲染 public NativeUnifiedADData getGdt2Unfied() { @@ -28,10 +25,6 @@ public ExpressAdContainer(NativeExpressADView gdt) { this.gdt = gdt; } public ExpressAdContainer(NativeExpressADData2 gdt2) { this.gdt2 = gdt2; } public ExpressAdContainer(NativeUnifiedADData gdt2Unfied) { @@ -53,14 +46,5 @@ public void setGdt(NativeExpressADView gdt) { this.gdt = gdt; } public NativeExpressADData2 getGdt2() { return gdt2; } public void setGdt2(NativeExpressADData2 gdt2) { this.gdt2 = gdt2; } } BuWanVideo/src/com/weikou/beibeivideo/entity/ad/RewardVideoAdContainer.java
@@ -1,19 +1,11 @@ package com.weikou.beibeivideo.entity.ad; import com.bytedance.sdk.openadsdk.TTRewardVideoAd; import com.qq.e.ads.rewardvideo.RewardVideoAD; import com.qq.e.ads.rewardvideo2.ExpressRewardVideoAD; //信息流原生广告容器 public class RewardVideoAdContainer { private TTRewardVideoAd csj; private ExpressRewardVideoAD gdt2; public RewardVideoAdContainer(ExpressRewardVideoAD gdt2) { this.gdt2 = gdt2; } public RewardVideoAdContainer(TTRewardVideoAd csj) { this.csj = csj; @@ -27,12 +19,4 @@ this.csj = csj; } public ExpressRewardVideoAD getGdt2() { return gdt2; } public void setGdt2(ExpressRewardVideoAD gdt2) { this.gdt2 = gdt2; } } BuWanVideo/src/com/weikou/beibeivideo/ui/ad/PlayVideoPreADFragment.java
@@ -205,7 +205,7 @@ } }); // loadCSJ(CSJConstant.PLAY_VIDEO_PRE, videoAdListener); loadGDT(setting.getGdtAppId(), pid, videoAdListener); loadGDT( pid, videoAdListener); } @@ -231,7 +231,6 @@ .setSupportDeepLink(true) .setImageAcceptedSize(width, height) .setAdCount(1) .setDownloadType(CSJConstant.CSJ_AD_DOWNLOAD_NOTIFY? TTAdConstant.DOWNLOAD_TYPE_POPUP :TTAdConstant.DOWNLOAD_TYPE_NO_POPUP) .build(); mTTAdNative.loadStream(adSlot, new TTAdNative.FeedAdListener() { @@ -260,17 +259,15 @@ /** * 加载广点通广告 * * @param appId * @param pid * @param videoAdListener */ private void loadGDT(String appId, String pid, IVideoAdListener videoAdListener) { private void loadGDT( String pid, IVideoAdListener videoAdListener) { Log.i(TAG, "loadGDT"); fl_ad.setVisibility(View.GONE); mContainer.setVisibility(View.VISIBLE); this.videoAdListener = videoAdListener; NativeUnifiedAD mAdManager = new NativeUnifiedAD(getContext(), appId, pid, new NativeADUnifiedListener() { NativeUnifiedAD mAdManager = new NativeUnifiedAD(getContext(), pid, new NativeADUnifiedListener() { @Override public void onNoAD(AdError adError) {//没有广告 System.out.println(adError); @@ -434,8 +431,6 @@ } }); mAdManager.setVastClassName("com.qq.e.union.demo.adapter.vast.unified.ImaNativeDataAdapter"); mAdManager.setVideoPlayPolicy(getVideoPlayPolicy(getContext())); mAdManager.setVideoADContainerRender(VideoOption.VideoADContainerRender.SDK); mAdManager.loadData(1); tv_skip.setOnClickListener(new View.OnClickListener() { @@ -464,41 +459,6 @@ builder.setEnableUserControl(false); return builder.build(); } public static int getVideoPlayPolicy(Context context) { if (1 > 0) return VideoOption.VideoPlayPolicy.MANUAL; VideoOption option = getVideoOption(); if (option == null) { return VideoOption.VideoPlayPolicy.AUTO; } int autoPlayPolicy = option.getAutoPlayPolicy(); if (autoPlayPolicy == VideoOption.AutoPlayPolicy.ALWAYS) { return VideoOption.VideoPlayPolicy.AUTO; } else if (autoPlayPolicy == VideoOption.AutoPlayPolicy.WIFI) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifiNetworkInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); return wifiNetworkInfo != null && wifiNetworkInfo.isConnected() ? VideoOption.VideoPlayPolicy.AUTO : VideoOption.VideoPlayPolicy.MANUAL; } else if (autoPlayPolicy == VideoOption.AutoPlayPolicy.NEVER) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); int hour = calendar.get(Calendar.HOUR_OF_DAY); // 简单的播放策略示例,虽然VideoOption设置了从不自动播放,SDK不会主动触发自动播放 // 但晚上10点以后,开发者自行调用了startVideoPlay进行了视频播放 // 这在用户看来仍然是"自动播放"的,因为用户没有进行任何操作,视频就开始播放了 return hour >= 22 ? VideoOption.VideoPlayPolicy.AUTO : VideoOption.VideoPlayPolicy.MANUAL; } return VideoOption.VideoPlayPolicy.UNKNOWN; } @Override public void onResume() { BuWanVideo/src/com/weikou/beibeivideo/ui/main/DiscoverNowFragment.java
@@ -161,7 +161,7 @@ // 1.加载广告,先设置加载上下文环境和条件 private void refreshAd() { NativeExpressAD nativeExpressAD = new NativeExpressAD(uniqueView.getContext(), new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT), BeibeiConstant.GDT_ID, BeibeiConstant.GDT_DISCOVER_NATIVE, new NativeExpressAD.NativeExpressADListener() { BeibeiConstant.GDT_DISCOVER_NATIVE, new NativeExpressAD.NativeExpressADListener() { @Override public void onADLoaded(List<NativeExpressADView> list) { adList.clear(); @@ -209,15 +209,6 @@ } @Override public void onADOpenOverlay(NativeExpressADView nativeExpressADView) { } @Override public void onADCloseOverlay(NativeExpressADView nativeExpressADView) { } @Override public void onNoAD(AdError adError) { BuWanVideo/src/com/weikou/beibeivideo/ui/main/GuessLikeFragment.java
@@ -92,7 +92,7 @@ // 1.加载广告,先设置加载上下文环境和条件 private void refreshAd() { NativeExpressAD nativeExpressAD = new NativeExpressAD(rl_guess_like.getContext(), new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT), BeibeiConstant.GDT_ID, BeibeiConstant.GDT_GUESS_LIKE_NATIVE, new NativeExpressAD.NativeExpressADListener() { BeibeiConstant.GDT_GUESS_LIKE_NATIVE, new NativeExpressAD.NativeExpressADListener() { @Override public void onADLoaded(List<NativeExpressADView> list) { adList.clear(); @@ -139,15 +139,7 @@ } @Override public void onADOpenOverlay(NativeExpressADView nativeExpressADView) { } @Override public void onADCloseOverlay(NativeExpressADView nativeExpressADView) { } @Override public void onNoAD(AdError adError) { BuWanVideo/src/com/weikou/beibeivideo/ui/main/MineFragment.java
@@ -89,7 +89,7 @@ public class MineFragment extends MyRetainViewFragment implements OnClickListener, LoaderManager.LoaderCallbacks<Cursor> { private final String TAG="MineFragment"; private final String TAG = "MineFragment"; public MineFragment() { @@ -407,7 +407,7 @@ @Override public void onResume() { super.onResume(); Log.i(TAG,"onResume"); Log.i(TAG, "onResume"); // 获取缓存中的消息状态 SharedPreferences preferences = tv_no_network.getContext().getSharedPreferences( "user", Context.MODE_PRIVATE); @@ -451,13 +451,17 @@ mAquery.id(R.id.ll_videos).visibility(View.VISIBLE); mAquery.id(R.id.ll_vip).visibility(View.VISIBLE); } String vipLink = ConfigUtil.getVipLink(tv_no_network.getContext()); if (StringUtils.isEmpty(vipLink)) { mAquery.id(R.id.ll_vip).visibility(View.GONE); } } @Override public void onPause() { Log.i(TAG,"onPause"); Log.i(TAG, "onPause"); super.onPause(); mChangeHelper.unregisterReceiver(); } BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java
@@ -341,7 +341,6 @@ //模板广告需要设置期望个性化模板广告的大小,单位dp,激励视频场景,只要设置的值大于0即可 .setExpressViewAcceptedSize(300, 500) .setSupportDeepLink(true) .setDownloadType(CSJConstant.CSJ_AD_DOWNLOAD_NOTIFY? TTAdConstant.DOWNLOAD_TYPE_POPUP :TTAdConstant.DOWNLOAD_TYPE_NO_POPUP) .setOrientation(TTAdConstant.VERTICAL)//必填参数,期望视频的播放方向:TTAdConstant.HORIZONTAL 或 TTAdConstant.VERTICAL .build(); mTTAdNative.loadFullScreenVideoAd(adSlot, new TTAdNative.FullScreenVideoAdListener() { BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java
@@ -1125,7 +1125,6 @@ //模板广告需要设置期望个性化模板广告的大小,单位dp,激励视频场景,只要设置的值大于0即可 .setExpressViewAcceptedSize(300, 500) .setSupportDeepLink(true) .setDownloadType(CSJConstant.CSJ_AD_DOWNLOAD_NOTIFY? TTAdConstant.DOWNLOAD_TYPE_POPUP :TTAdConstant.DOWNLOAD_TYPE_NO_POPUP) .setOrientation(TTAdConstant.VERTICAL)//必填参数,期望视频的播放方向:TTAdConstant.HORIZONTAL 或 TTAdConstant.VERTICAL .build(); mTTAdNative.loadFullScreenVideoAd(adSlot, new TTAdNative.FullScreenVideoAdListener() { BuWanVideo/src/com/weikou/beibeivideo/ui/push/PushOpenClickActivity.java
@@ -5,23 +5,16 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.webkit.WebChromeClient; import android.webkit.WebViewClient; import android.widget.TextView; import android.widget.Toast; import com.alibaba.baichuan.android.trade.AlibcTrade; import com.alibaba.baichuan.android.trade.AlibcTradeSDK; import com.alibaba.baichuan.android.trade.callback.AlibcTradeCallback; import com.alibaba.baichuan.android.trade.model.AlibcShowParams; import com.alibaba.baichuan.android.trade.model.OpenType; import com.alibaba.baichuan.trade.biz.applink.adapter.AlibcFailModeType; import com.alibaba.baichuan.trade.biz.context.AlibcTradeResult; import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams; import com.ut.device.UTDevice; import com.weikou.beibeivideo.ui.SplashActivity; import com.weikou.beibeivideo.ui.main.MainActivity; import com.weikou.beibeivideo.util.AlibcTradeUtil; import com.weikou.beibeivideo.util.BeibeiConstant; @@ -32,7 +25,6 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; /** * Created by jiguang on 17/7/5. BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java
@@ -445,7 +445,6 @@ } } }); mAdManager.setVideoPlayPolicy(VideoOption.VideoPlayPolicy.AUTO); mAdManager.loadData(1); } BuWanVideo/src/com/weikou/beibeivideo/util/AlibcTradeUtil.java
@@ -10,10 +10,10 @@ import android.widget.Toast; import com.alibaba.baichuan.android.trade.AlibcTrade; import com.alibaba.baichuan.android.trade.callback.AlibcTradeCallback; import com.alibaba.baichuan.android.trade.callback.AlibcTradeInitCallback; import com.alibaba.baichuan.android.trade.model.AlibcShowParams; import com.alibaba.baichuan.android.trade.model.OpenType; import com.alibaba.baichuan.trade.biz.AlibcTradeCallback; import com.alibaba.baichuan.trade.biz.applink.adapter.AlibcFailModeType; import com.alibaba.baichuan.trade.biz.context.AlibcTradeResult; import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams; BuWanVideo/src/com/weikou/beibeivideo/util/BeibeiConstant.java
@@ -6,7 +6,6 @@ public class BeibeiConstant { public final static String ALIYUN_ONE_KEY_LOGIN_SECRETINFO = "+KTOnd6EET2Hn8A0Fv3tY8jkuz90mazidn+1D+PWV79klpi3J2HRZQwTdlPox3VxWjtq+Qyt11Z4ENqAtGMBmbvoFJw/nFeobrPhtjEHJO5I5s0gvp4+HTJbQBRfx7gDGEr72r84SAVn/mVStPhXMZh582JvbArtiPpV8Owl6R5kRuaJ7StEdmhZqsHwMs4Sr4gYeRy1MPw9milzO3Us4UA6Z0l/jlbUfDggDQaT9tE9d2DS/EG0M9DFU9Gjo3BJGTTlV0bQvV/iVl7RynqCY4ZU9x4ktUZm9jHG6Pfa24N2Z8naaFjTww=="; public final static boolean IS_TEST = false; BuWanVideo/src/com/weikou/beibeivideo/util/ExitDialog.java
@@ -158,12 +158,6 @@ fl_advertisement.removeAllViews(); } }); if (adList.get(0).getGdt2() != null) { if (adList.get(0).getGdt2().getAdView().getParent() != null) { ((ViewGroup) adList.get(0).getGdt2().getAdView().getParent()).removeAllViews(); } fl_advertisement.addView(adList.get(0).getGdt2().getAdView()); } } } BuWanVideo/src/com/weikou/beibeivideo/util/JumpActivityUtil.java
@@ -11,11 +11,11 @@ import com.alibaba.baichuan.android.trade.AlibcTrade; import com.alibaba.baichuan.android.trade.AlibcTradeSDK; import com.alibaba.baichuan.android.trade.callback.AlibcTradeCallback; import com.alibaba.baichuan.android.trade.model.AlibcShowParams; import com.alibaba.baichuan.android.trade.model.OpenType; import com.alibaba.baichuan.android.trade.page.AlibcDetailPage; import com.alibaba.baichuan.trade.biz.AlibcConstants; import com.alibaba.baichuan.trade.biz.AlibcTradeCallback; import com.alibaba.baichuan.trade.biz.applink.adapter.AlibcFailModeType; import com.alibaba.baichuan.trade.biz.context.AlibcTradeResult; import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams; BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java
@@ -13,18 +13,12 @@ import com.bytedance.sdk.openadsdk.TTAdManager; import com.bytedance.sdk.openadsdk.TTAdNative; import com.bytedance.sdk.openadsdk.TTNativeExpressAd; import com.google.gson.Gson; import com.qq.e.ads.cfg.VideoOption; import com.qq.e.ads.nativ.ADSize; import com.qq.e.ads.nativ.NativeExpressAD; import com.qq.e.ads.nativ.NativeExpressADView; import com.qq.e.ads.nativ.express2.AdEventListener; import com.qq.e.ads.nativ.express2.NativeExpressAD2; import com.qq.e.ads.nativ.express2.NativeExpressADData2; import com.qq.e.ads.nativ.express2.VideoOption2; import com.qq.e.comm.util.AdError; import com.weikou.beibeivideo.entity.ad.ExpressAdContainer; import com.weikou.beibeivideo.ui.recommend.SearchActivity; import com.weikou.beibeivideo.util.BeibeiConstant; import com.weikou.beibeivideo.util.DimenUtils; @@ -71,7 +65,7 @@ * @param adLoadListener */ public void loadAd(int widthDP, int heightDP, String pid, int count, final IAdLoadListener adLoadListener) { if (sourceType == AdUtil.AD_TYPE.gdt) { if (sourceType == AdUtil.AD_TYPE.gdt||sourceType == AdUtil.AD_TYPE.gdt2) { loadGDT(pid, widthDP, heightDP, count, new IGDTAdLoadListener() { @Override public void onSuccess(List<NativeExpressADView> adList) { @@ -82,30 +76,7 @@ } adLoadListener.onSuccess(adContainerList); } @Override public void onSuccess2(List<NativeExpressADData2> adList) { } }, mContext); } else if (sourceType == AdUtil.AD_TYPE.gdt2) { loadGDT2(pid, widthDP, heightDP, count, new IGDTAdLoadListener() { @Override public void onSuccess(List<NativeExpressADView> adList) { } @Override public void onSuccess2(List<NativeExpressADData2> adList) { List<ExpressAdContainer> adContainerList = new ArrayList<>(); if (adList != null) for (NativeExpressADData2 ad : adList) { adContainerList.add(new ExpressAdContainer(ad)); } adLoadListener.onSuccess(adContainerList); } }, mContext); } else if (sourceType == AdUtil.AD_TYPE.csj) { loadCSJ(pid, widthDP, heightDP, count, new ICSJAdLoadListener() { @Override @@ -354,7 +325,7 @@ private void loadGDT(String positionId, int widthDP, int heightDP, int count, final IGDTAdLoadListener adLoadListener, Context context) { NativeExpressAD nativeExpressAD = new NativeExpressAD(context, new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT), NativeExpressAD nativeExpressAD = new NativeExpressAD(context, new ADSize(widthDP, ADSize.AUTO_HEIGHT), positionId, new NativeExpressAD.NativeExpressADListener() { @Override @@ -394,16 +365,6 @@ } @Override public void onADOpenOverlay(NativeExpressADView nativeExpressADView) { } @Override public void onADCloseOverlay(NativeExpressADView nativeExpressADView) { } @Override public void onNoAD(AdError adError) { if (adLoadListener != null) adLoadListener.onSuccess(null); @@ -413,47 +374,7 @@ .setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // WIFI 环境下可以自动播放视频 .setAutoPlayMuted(true) // 自动播放时为静音 .build()); // nativeExpressAD.setVideoPlayPolicy(VideoOption.VideoPlayPolicy.AUTO); nativeExpressAD.loadAD(count); } /** * 2.0版本广点通原生 * * @param positionId * @param widthDP * @param heightDP * @param count * @param adLoadListener * @param context */ private void loadGDT2(String positionId, int widthDP, int heightDP, int count, final IGDTAdLoadListener adLoadListener, Context context) { Log.i(TAG, String.format("loadGDT2:positionId-%s widthDP-%s heightDP-%s", positionId, widthDP, heightDP)); NativeExpressAD2 nativeExpressAD2 = new NativeExpressAD2(context, positionId, new NativeExpressAD2.AdLoadListener() { @Override public void onLoadSuccess(List<NativeExpressADData2> list) { if (adLoadListener != null) adLoadListener.onSuccess2(list); } @Override public void onNoAD(AdError adError) { if (adLoadListener != null) adLoadListener.onSuccess2(null); } }); nativeExpressAD2.setAdSize(widthDP, heightDP); VideoOption2.Builder builder = new VideoOption2.Builder(); builder.setAutoPlayPolicy(VideoOption2.AutoPlayPolicy.WIFI) // WIFI 环境下可以自动播放视频 .setAutoPlayMuted(true) // 自动播放时为静音 .setDetailPageMuted(false) // 视频详情页播放时不静音 .setMaxVideoDuration(0) // 设置返回视频广告的最大视频时长(闭区间,可单独设置),单位:秒,默认为 0 代表无限制,合法输入为:5<=maxVideoDuration<=60. 此设置会影响广告填充,请谨慎设置 .setMinVideoDuration(0); // 设置返回视频广告的最小视频时长(闭区间,可单独设置),单位:秒,默认为 0 代表无限制, 此设置会影响广告填充,请谨慎设置 nativeExpressAD2.setVideoOption2(builder.build()); nativeExpressAD2.loadAd(count); } /** @@ -472,7 +393,6 @@ .setSupportDeepLink(true) .setExpressViewAcceptedSize(width, height) .setAdCount(count) //请求广告数量为1到3条 .setDownloadType(CSJConstant.CSJ_AD_DOWNLOAD_NOTIFY? TTAdConstant.DOWNLOAD_TYPE_POPUP :TTAdConstant.DOWNLOAD_TYPE_NO_POPUP) .build(); if (mTTAdNative == null) { if (adLoadListener != null) @@ -517,49 +437,6 @@ ((ViewGroup) ad.getGdt().getParent()).removeAllViews(); } fl_ad.addView(ad.getGdt()); } else if (ad.getGdt2() != null) { if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt2().getAdView()) { return; } fl_ad.removeAllViews(); ad.getGdt2().setAdEventListener(new AdEventListener() { @Override public void onClick() { } @Override public void onExposed() { } @Override public void onRenderSuccess() { try { if (ad.getGdt2().getAdView().getParent() != null) { ((ViewGroup) ad.getGdt2().getAdView().getParent()).removeAllViews(); } fl_ad.addView(ad.getGdt2().getAdView()); } catch (Exception e) { } } @Override public void onRenderFail() { Log.i(TAG, "onRenderFail"); } @Override public void onAdClosed() { if (adEventListener != null) { adEventListener.closeAd(ad); } } }); ad.getGdt2().render(); } else if (ad.getCsj() != null) { if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getCsj().getExpressAdView()) { return; @@ -619,42 +496,6 @@ list.add(ad); if (adRenderListener != null) adRenderListener.onRenderSuccess(list); } else if (ad.getGdt2() != null) { ad.getGdt2().setAdEventListener(new AdEventListener() { @Override public void onClick() { } @Override public void onExposed() { } @Override public void onRenderSuccess() { List<ExpressAdContainer> list = new ArrayList<>(); list.add(ad); if (adRenderListener != null) adRenderListener.onRenderSuccess(list); } @Override public void onRenderFail() { List<ExpressAdContainer> list = new ArrayList<>(); list.add(ad); if (adRenderListener != null) adRenderListener.onRenderFail(list); } @Override public void onAdClosed() { if (adEventListener != null) adEventListener.closeAd(ad); } }); ad.getGdt2().render(); } else if (ad.getCsj() != null) { Log.i(TAG, "广告曝光:csj"); ad.getCsj().setExpressInteractionListener(new TTNativeExpressAd.ExpressAdInteractionListener() { @@ -730,35 +571,7 @@ if (ad.getGdt() != null) { return; } else if (ad.getGdt2() != null) { ad.getGdt2().setAdEventListener(new AdEventListener() { @Override public void onClick() { } @Override public void onExposed() { } @Override public void onRenderSuccess() { } @Override public void onRenderFail() { } @Override public void onAdClosed() { if (adEventListener != null) adEventListener.closeAd(ad); } }); } else if (ad.getCsj() != null) { } else if (ad.getCsj() != null) { ad.getCsj().setExpressInteractionListener(new TTNativeExpressAd.ExpressAdInteractionListener() { @Override public void onAdClicked(View view, int i) { @@ -833,17 +646,7 @@ } fl_ad.removeAllViews(); fl_ad.addView(ad.getGdt()); } else if (ad.getGdt2() != null) { if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt2().getAdView()) { return; } if (ad.getGdt2().getAdView().getParent() != null) { ((ViewGroup) ad.getGdt2().getAdView().getParent()).removeAllViews(); } fl_ad.removeAllViews(); fl_ad.addView(ad.getGdt2().getAdView()); } else if (ad.getCsj() != null) { }else if (ad.getCsj() != null) { if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getCsj().getExpressAdView()) { return; } @@ -872,8 +675,6 @@ interface IGDTAdLoadListener { public void onSuccess(List<NativeExpressADView> adList); public void onSuccess2(List<NativeExpressADData2> adList); } interface ICSJAdLoadListener { BuWanVideo/src/com/weikou/beibeivideo/util/ad/FullVideoAdManager.java
@@ -52,7 +52,6 @@ .setSupportDeepLink(true) .setExpressViewAcceptedSize(w, h) .setOrientation(TTAdConstant.VERTICAL) .setDownloadType(CSJConstant.CSJ_AD_DOWNLOAD_NOTIFY? TTAdConstant.DOWNLOAD_TYPE_POPUP :TTAdConstant.DOWNLOAD_TYPE_NO_POPUP) .build(); TTAdManager ttAdManager = null; try { BuWanVideo/src/com/weikou/beibeivideo/util/ad/GDTNativeADUnifiedManager.java
@@ -40,7 +40,6 @@ adLoadListener.onSuccess(list); } }); mAdManager.setVideoADContainerRender(VideoOption.VideoADContainerRender.SDK); mAdManager.loadData(count); } BuWanVideo/src/com/weikou/beibeivideo/util/ad/InterstitialAdUtil.java
@@ -35,7 +35,6 @@ //模板广告需要设置期望个性化模板广告的大小,单位dp,激励视频场景,只要设置的值大于0即可 .setExpressViewAcceptedSize(300, 300) .setSupportDeepLink(true) .setDownloadType(CSJConstant.CSJ_AD_DOWNLOAD_NOTIFY? TTAdConstant.DOWNLOAD_TYPE_POPUP :TTAdConstant.DOWNLOAD_TYPE_NO_POPUP) .setOrientation(TTAdConstant.VERTICAL)//必填参数,期望视频的播放方向:TTAdConstant.HORIZONTAL 或 TTAdConstant.VERTICAL .build(); BuWanVideo/src/com/weikou/beibeivideo/util/ad/RewardVideoAdManager.java
@@ -2,43 +2,19 @@ import android.app.Activity; import android.content.Context; import android.os.SystemClock; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.Toast; import com.bytedance.sdk.openadsdk.AdSlot; import com.bytedance.sdk.openadsdk.TTAdConstant; import com.bytedance.sdk.openadsdk.TTAdDislike; import com.bytedance.sdk.openadsdk.TTAdManager; import com.bytedance.sdk.openadsdk.TTAdNative; import com.bytedance.sdk.openadsdk.TTNativeExpressAd; import com.bytedance.sdk.openadsdk.TTRewardVideoAd; import com.qq.e.ads.cfg.VideoOption; import com.qq.e.ads.nativ.ADSize; import com.qq.e.ads.nativ.NativeExpressAD; import com.qq.e.ads.nativ.NativeExpressADView; import com.qq.e.ads.nativ.express2.AdEventListener; import com.qq.e.ads.nativ.express2.NativeExpressAD2; import com.qq.e.ads.nativ.express2.NativeExpressADData2; import com.qq.e.ads.nativ.express2.VideoOption2; import com.qq.e.ads.rewardvideo.RewardVideoAD; import com.qq.e.ads.rewardvideo.RewardVideoADListener; import com.qq.e.ads.rewardvideo2.ExpressRewardVideoAD; import com.qq.e.ads.rewardvideo2.ExpressRewardVideoAdListener; import com.qq.e.comm.util.AdError; import com.qq.e.comm.util.VideoAdValidity; import com.ut.device.UTDevice; import com.weikou.beibeivideo.entity.ad.ExpressAdContainer; import com.weikou.beibeivideo.entity.ad.RewardVideoAdContainer; import com.weikou.beibeivideo.util.BeibeiConstant; import com.weikou.beibeivideo.util.DimenUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 激励视频广告管理 @@ -93,19 +69,6 @@ adLoadListener.onError(msg); } }); } else if (sourceType == AdUtil.AD_TYPE.gdt2) { loadGdt2(pid, new IGDT2AdLoadListener() { @Override public void onSuccess(ExpressRewardVideoAD rewardVideoAD) { adLoadListener.onSuccess(new RewardVideoAdContainer(rewardVideoAD)); } @Override public void onError(String msg) { adLoadListener.onError(msg); } }, showListener); } } @@ -128,7 +91,6 @@ .setSupportDeepLink(true) .setUserID(UTDevice.getUtdid(mContext)) .setExpressViewAcceptedSize(width, height) .setDownloadType(CSJConstant.CSJ_AD_DOWNLOAD_NOTIFY? TTAdConstant.DOWNLOAD_TYPE_POPUP :TTAdConstant.DOWNLOAD_TYPE_NO_POPUP) .setOrientation(hrizontal ? TTAdConstant.HORIZONTAL : TTAdConstant.VERTICAL) .build(); if (mTTAdNative == null) { @@ -161,66 +123,6 @@ } }); } private ExpressRewardVideoAD rewardVideoAD = null; private void loadGdt2(String pid, IGDT2AdLoadListener adLoadListener, IAdShowListener adShowListener) { //广点通 rewardVideoAD = new ExpressRewardVideoAD(mContext, pid, new ExpressRewardVideoAdListener() { @Override public void onAdLoaded() { Log.i(TAG, "onAdLoaded"); } @Override public void onVideoCached() { Log.i(TAG, "onVideoCached"); adLoadListener.onSuccess(rewardVideoAD); } @Override public void onShow() { Log.i(TAG, "onShow"); adShowListener.onShow(); } @Override public void onExpose() { Log.i(TAG, "onExpose"); } @Override public void onReward(Map<String, Object> map) { Log.i(TAG, "onReward"); adShowListener.onReward(); } @Override public void onClick() { Log.i(TAG, "onClick"); } @Override public void onVideoComplete() { Log.i(TAG, "onVideoComplete"); } @Override public void onClose() { Log.i(TAG, "onClose"); adShowListener.onClose(); } @Override public void onError(AdError adError) { Log.i(TAG, "onError:" + adError.getErrorMsg()); adLoadListener.onError(adError.getErrorMsg()); } }); rewardVideoAD.loadAD(); } /** * 渲染模板和填充广告 @@ -294,29 +196,6 @@ }); ad.getCsj().showRewardVideoAd(activity, TTAdConstant.RitScenes.CUSTOMIZE_SCENES, "scenes_test"); ad.setCsj(null); } else if (ad.getGdt2() != null) { // 展示广告 VideoAdValidity validity = ad.getGdt2().checkValidity(); switch (validity) { case SHOWED: if (showListener != null) showListener.onError("广告已经展示过!"); return; // 在视频缓存成功后展示,以省去用户的等待时间,提升用户体验 case NONE_CACHE: if (showListener != null) showListener.onError("广告素材未缓存成功!"); return; case OVERDUE: if (showListener != null) showListener.onError("广告已经过期!"); return; case VALID: // 有效广告 break; } // 在视频缓存成功后展示,以省去用户的等待时间,提升用户体验 ad.getGdt2().showAD(null); } } @@ -324,18 +203,10 @@ interface IGDTAdLoadListener { public void onSuccess(List<NativeExpressADView> adList); public void onSuccess2(List<NativeExpressADData2> adList); } interface ICSJAdLoadListener { public void onSuccess(TTRewardVideoAd ad); public void onError(String msg); } interface IGDT2AdLoadListener { public void onSuccess(ExpressRewardVideoAD rewardVideoAD); public void onError(String msg); } BuWanVideo/src/com/weikou/beibeivideo/util/ad/SplashAdUtil.java
@@ -152,7 +152,6 @@ .setCodeId(code) .setSupportDeepLink(true) .setImageAcceptedSize(width, height) .setDownloadType(CSJConstant.CSJ_AD_DOWNLOAD_NOTIFY? TTAdConstant.DOWNLOAD_TYPE_POPUP :TTAdConstant.DOWNLOAD_TYPE_NO_POPUP) .build(); mTTAdNative.loadSplashAd(adSlot, new TTAdNative.SplashAdListener() { BuWanVideo/src/com/weikou/beibeivideo/util/downutil/DownFiles.java
@@ -5,7 +5,9 @@ import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import androidx.core.content.FileProvider; import android.util.Log; import com.weikou.beibeivideo.BuildConfig; @@ -75,17 +77,21 @@ Intent intent = new Intent(Intent.ACTION_VIEW); File file = new File(result); //判断是否是AndroidN以及更高的版本 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); Uri contentUri = FileProvider.getUriForFile(context.getApplicationContext(), "com.doudou.ysvideo.fileprovider", file); intent.setDataAndType(contentUri, "application/vnd.android.package-archive"); } else { Uri uri = Uri.fromFile(file); intent.setDataAndType(uri, "application/vnd.android.package-archive"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { //判断是否是AndroidN以及更高的版本 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); Uri contentUri = FileProvider.getUriForFile(context.getApplicationContext(), "com.doudou.ysvideo.fileprovider", file); intent.setDataAndType(contentUri, "application/vnd.android.package-archive"); } else { Uri uri = Uri.fromFile(file); intent.setDataAndType(uri, "application/vnd.android.package-archive"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } context.startActivity(intent); } catch (IllegalArgumentException e) { } context.startActivity(intent); } } build.gradle
@@ -2,15 +2,19 @@ buildscript { repositories { maven { url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" } maven { url 'http://developer.huawei.com/repo/' } //字节跳动SDK maven { url "https://artifact-maven.byted.org/repository/Volcengine/" } maven { url "https://artifact.bytedance.com/repository/Volcengine/" } maven { url "https://artifact.bytedance.com/repository/pangle/" } maven { url 'http://maven.byted.org/repository/android_public/' } maven { url "https://artifact.bytedance.com/repository/AwemeOpenSDK" } @@ -28,10 +32,8 @@ jcenter() mavenCentral() google() maven { url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" } maven { url 'http://developer.huawei.com/repo/' } @@ -48,16 +50,19 @@ allprojects { repositories { maven { url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" } //字节跳动SDK maven { url "https://artifact-maven.byted.org/repository/Volcengine/" } maven { url 'http://developer.huawei.com/repo/' } maven { url "https://artifact.bytedance.com/repository/Volcengine/" } maven { url "https://artifact.bytedance.com/repository/pangle/" } maven { url 'http://maven.byted.org/repository/android_public/' } maven { url "https://artifact.bytedance.com/repository/AwemeOpenSDK" } @@ -73,9 +78,7 @@ jcenter() google() maven { url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" } maven { url 'https://jitpack.io' } // maven { url 'https://dl.bintray.com/umsdk/release' } library-GDTSDK/build.gradle
@@ -3,7 +3,7 @@ dependencies { api fileTree(include: '*.jar', dir: 'libs') api 'androidx.legacy:legacy-support-v4:1.0.0' api 'com.qq.e.union:union:4.420.1290' api 'com.qq.e.union:union:4.452.1322' // implementation 'com.qq.e.union:union:4.410.1290' // api files("libs/GDTSDK.unionNormal.4.420.1290.aar") } library-common/build.gradle
@@ -12,7 +12,7 @@ api files('libs/universal-image-loader-1.9.5.jar') // api files('libs/android-async-http-1.4.8.jar') api 'com.taobao.android:utdid4all:1.5.2' api files('libs/utdid4all-1.1.5.3_proguard.jar') api files('libs/eventbus-3.1.1.jar') api files('libs/fastjson-1.2.7.jar') } library-common/libs/utdid4all-1.1.5.3_proguard.jarBinary files differ