adjust ad
This commit is contained in:
parent
5f6205b41d
commit
bdd6eff8c1
|
@ -406,7 +406,7 @@ public abstract class Activity_base extends AppCompatActivity {
|
|||
bannerContainer.removeAllViews();
|
||||
bannerContainer.addView(bannerView);
|
||||
// bannerContainer.setVisibility(View.VISIBLE);
|
||||
Log.d(TAG, "loadBannerAd: set banner VISIBLE");
|
||||
// Log.d(TAG, "loadBannerAd: set banner VISIBLE");
|
||||
// mTTAdNative.loadBannerAd(adSlot,null);
|
||||
//设置广告互动监听回调
|
||||
ad.setBannerInteractionListener(new TTBannerAd.AdInteractionListener() {
|
||||
|
@ -550,12 +550,12 @@ public abstract class Activity_base extends AppCompatActivity {
|
|||
public void onError(int code, String message) {
|
||||
// TToast.show(oContext, "load error : " + code + ", " + message);
|
||||
Log.e(TAG, "loadBannerAd: " + code + ", " + message);
|
||||
bannerContainer.setBackgroundResource(R.color.transparent);
|
||||
// bannerContainer.setBackgroundResource(R.color.transparent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNativeAdLoad(List<TTNativeAd> ads) {
|
||||
bannerContainer.setBackgroundResource(R.color.transparent);
|
||||
// bannerContainer.setBackgroundResource(R.color.transparent);
|
||||
List<TTNativeAd> tmp = new ArrayList<TTNativeAd>();
|
||||
for (TTNativeAd ad : ads) {
|
||||
if (ad != null) {
|
||||
|
@ -648,7 +648,7 @@ public abstract class Activity_base extends AppCompatActivity {
|
|||
//bannerContainer.setVisibility(View.VISIBLE);
|
||||
if (!Constants.AD_BACKGROUND_TRANSPARENT)
|
||||
bannerContainer.setBackgroundResource(R.color.mintcream); // @color/mintcream
|
||||
Log.d(TAG, "loadBannerAd: set banner VISIBLE,mShowAd " + mShowAd);
|
||||
// Log.d(TAG, "loadBannerAd: set banner VISIBLE,mShowAd " + mShowAd);
|
||||
//绑定原生广告的数据
|
||||
setAdData(bannerContainer, bannerView, nativeAd);
|
||||
// mTTAdNative.loadNativeAd(adSlot,null);
|
||||
|
|
|
@ -129,8 +129,8 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
|||
@BindView(R.id.tvUrl)
|
||||
TextView tvUrl;
|
||||
|
||||
@BindView(R.id.top_banner_container)
|
||||
FrameLayout mTopBannerContainer;
|
||||
// @BindView(R.id.top_banner_container)
|
||||
// FrameLayout mTopBannerContainer;
|
||||
|
||||
@BindView(R.id.imgLoading)
|
||||
pl.droidsonroids.gif.GifImageView imgLoading;
|
||||
|
@ -138,7 +138,7 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
|||
FrameLayout frmAD;
|
||||
|
||||
@BindView(R.id.native_banner_container )
|
||||
FrameLayout mNative_banner_container;
|
||||
FrameLayout mNative_status_banner_container;
|
||||
|
||||
@BindView(R.id.native_banner_container_in_lines )
|
||||
FrameLayout mNative_banner_container_in_lines;
|
||||
|
@ -212,7 +212,7 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
|||
pageFactory = PageFactory.getInstance(getApplicationContext());
|
||||
pageFactory.clear();
|
||||
pageFactory.setAd(this);
|
||||
mBannerContainer.setVisibility(View.GONE);
|
||||
// mBannerContainer.setVisibility(View.GONE);
|
||||
|
||||
// showProgress (false,"读取目录信息");
|
||||
/* int slept = 0;
|
||||
|
@ -480,16 +480,24 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
|||
|
||||
@Override
|
||||
public void showAdAfterIni() {
|
||||
if(frmAD.getVisibility()== View.INVISIBLE)
|
||||
// frmAD.setVisibility(View.VISIBLE);
|
||||
Log.d(TAG, "pageAnimation showAdAfterIni: ");
|
||||
// if(frmAD.getVisibility()== View.INVISIBLE)
|
||||
// frmAD.setVisibility(View.VISIBLE);
|
||||
/* if(mNative_banner_container_in_lines.getVisibility()== View.GONE)
|
||||
mNative_banner_container_in_lines.setVisibility(View.VISIBLE);*/
|
||||
// Log.d(TAG, "pageAnimation showAdAfterIni: ");
|
||||
pageFactory.showAd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hideAdBeforeIni() {
|
||||
if(frmAD.getVisibility()== View.VISIBLE)
|
||||
// frmAD.setVisibility(View.INVISIBLE);
|
||||
Log.d(TAG, "pageAnimation hideAdBeforeIni: ");
|
||||
// if(frmAD.getVisibility()== View.VISIBLE)
|
||||
// frmAD.setVisibility(View.INVISIBLE);
|
||||
/* if(mNative_banner_container_in_lines.getVisibility()== View.VISIBLE)
|
||||
mNative_banner_container_in_lines.setVisibility(View.GONE);*/
|
||||
// mNative_banner_container_in_lines.removeAllViews();
|
||||
// Log.d(TAG, "pageAnimation hideAdBeforeIni: ");
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -1071,67 +1079,104 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
|||
}
|
||||
*/
|
||||
|
||||
public void hideAds(){
|
||||
/* if(mNative_banner_container.getVisibility() ==View.VISIBLE) {
|
||||
mNative_banner_container.setVisibility(View.GONE);
|
||||
public void hideStatusAds(){
|
||||
Log.d(TAG, "loadBannerAd: hideAds()");
|
||||
/* try{
|
||||
throw new Exception("");
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "loadBannerAd: ", e);
|
||||
}*/
|
||||
if(mNative_status_banner_container.getVisibility() ==View.VISIBLE) {
|
||||
mNative_status_banner_container.setVisibility(View.GONE);
|
||||
}
|
||||
// mNative_banner_container_in_lines.removeAllViews();
|
||||
// mNative_banner_container_in_lines.setBackgroundResource(R.color.transparent);
|
||||
}
|
||||
private void hideAdSlot(ViewGroup view){
|
||||
mNative_banner_container_in_lines.removeAllViews();
|
||||
if(view.getVisibility() ==View.VISIBLE) {
|
||||
view.setVisibility(View.GONE);
|
||||
}
|
||||
/* FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
|
||||
params.width =0;
|
||||
view.setLayoutParams(params);*/
|
||||
// view.setBackgroundResource(R.color.transparent);
|
||||
|
||||
//mNative_banner_container_in_lines.removeAllViews();
|
||||
// mNative_banner_container_in_lines.setBackgroundResource(R.color.transparent);
|
||||
|
||||
}
|
||||
private void showAdSlot(ViewGroup view){
|
||||
Log.d(TAG, "loadBannerAd: showAdSlot()");
|
||||
if(view.getVisibility() ==View.GONE) {
|
||||
view.setVisibility(View.VISIBLE);
|
||||
}
|
||||
/* FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
|
||||
|
||||
params.width =-1;
|
||||
view.setLayoutParams(params);*/
|
||||
|
||||
}
|
||||
public void showNativeBannerInLines(int height,int adY){
|
||||
hideSystemUI();
|
||||
if(mNative_banner_container.getVisibility() ==View.VISIBLE) {
|
||||
mNative_banner_container.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
mNative_banner_container_in_lines .setVisibility(View.INVISIBLE);
|
||||
// hideSystemUI();
|
||||
// hideAdSlot(mNative_banner_container);
|
||||
// hideAdSlot(mNative_banner_container_in_lines);
|
||||
// mNative_banner_container_in_lines.removeAllViews();
|
||||
// mNative_banner_container_in_lines.removeAllViews();
|
||||
mNative_banner_container_in_lines.setBackgroundResource(R.color.transparent);
|
||||
// mNative_banner_container_in_lines.setBackgroundResource(R.color.transparent);
|
||||
hideAdSlot(mNative_banner_container_in_lines);
|
||||
if(height<=0){
|
||||
return;
|
||||
}
|
||||
Log.d(TAG, String.format("loadBannerAd:showNativeBannerInLines width %s, adY %s ",Constants.SCREEN_WIDTH_PIX-50, adY/Constants.ONE_DP_SIZE ));
|
||||
if( adY >400*Constants.ONE_DP_SIZE){
|
||||
return;
|
||||
}
|
||||
Log.d(TAG, String.format("loadBannerAd:showNativeBannerInLines width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,height,adY));
|
||||
loadNativeBannerAd(mNative_banner_container_in_lines,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID);
|
||||
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mNative_banner_container_in_lines.getLayoutParams();
|
||||
params.setMargins(10*Constants.ONE_DP_SIZE, adY+5*Constants.ONE_DP_SIZE, 10*Constants.ONE_DP_SIZE, 0*Constants.ONE_DP_SIZE);
|
||||
params.width =-1;
|
||||
params.height = (int) getResources().getDimension(R.dimen.nativeBannerHeight);
|
||||
mNative_banner_container_in_lines.setLayoutParams(params);
|
||||
mNative_banner_container_in_lines.setVisibility(View.VISIBLE);
|
||||
showAdSlot(mNative_banner_container_in_lines);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@Override
|
||||
public void showTopBanner( int adHeight,int adY) {
|
||||
hideSystemUI();
|
||||
mTopBannerContainer.setVisibility(View.INVISIBLE);//翻页引起抖动
|
||||
// mTopBannerContainer.removeAllViews();
|
||||
// hideSystemUI();
|
||||
// mTopBannerContainer.setVisibility(View.INVISIBLE);//翻页引起抖动
|
||||
//mTopBannerContainer.removeAllViews();
|
||||
Log.d(TAG, String.format("loadBannerAd:showTopBanner width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY));
|
||||
hideAdSlot(mNative_banner_container_in_lines);
|
||||
if(adHeight<=0){
|
||||
return;
|
||||
}
|
||||
Log.d(TAG, String.format("loadBannerAd:showTopBanner width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY));
|
||||
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mTopBannerContainer.getLayoutParams();
|
||||
loadBannerAd(mTopBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_ID, Constants.SCREEN_WIDTH_PIX-50,adHeight);
|
||||
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mNative_banner_container_in_lines.getLayoutParams();
|
||||
loadBannerAd(mNative_banner_container_in_lines,BuildConfig.AD_SLOT_TOUTIAO_BANNER_ID, Constants.SCREEN_WIDTH_PIX-50,adHeight);
|
||||
// loadNativeBannerAd(mTopBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID, 304,200);
|
||||
params.setMargins(10*Constants.ONE_DP_SIZE, adY -5*Constants.ONE_DP_SIZE, 10*Constants.ONE_DP_SIZE, 0);
|
||||
params.width =-1;
|
||||
mTopBannerContainer.setLayoutParams(params);
|
||||
mTopBannerContainer.setVisibility(View.VISIBLE);
|
||||
params.height = (int) getResources().getDimension(R.dimen.topBannerHeight);
|
||||
mNative_banner_container_in_lines.setLayoutParams(params);
|
||||
showAdSlot(mNative_banner_container_in_lines);
|
||||
}
|
||||
|
||||
|
||||
final int contentAdHight=80;
|
||||
|
||||
@Override
|
||||
public void showAd(boolean showAd ,int adHeight,int adY) {
|
||||
public void showStatusAd(boolean showAd ,int adHeight,int adY) {
|
||||
|
||||
hideSystemUI(); mShowAd =showAd;
|
||||
// hideSystemUI();
|
||||
mShowAd =showAd;
|
||||
// mBannerContainer.setVisibility(View.GONE);
|
||||
mNative_banner_container.setVisibility(View.INVISIBLE);
|
||||
if(mTopBannerContainer.getVisibility() ==View.VISIBLE) {
|
||||
mTopBannerContainer.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
if(mNative_banner_container_in_lines.getVisibility() ==View.VISIBLE) {
|
||||
mNative_banner_container_in_lines.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(!Constants.SHOWAD){
|
||||
return;
|
||||
}
|
||||
|
@ -1144,25 +1189,30 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
|||
|
||||
|
||||
|
||||
|
||||
if(adHeight >contentAdHight){
|
||||
|
||||
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mNative_banner_container.getLayoutParams();
|
||||
|
||||
|
||||
// Log.d(TAG, String.format("loadBannerAd:width %s, height %s ,adY %s",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY));
|
||||
|
||||
if(adHeight>150*Constants.ONE_DP_SIZE && adY <400*Constants.ONE_DP_SIZE){
|
||||
Log.d(TAG, String.format("loadBannerAd:width %s, height %s ,adY %s,showAd %s",Constants.SCREEN_WIDTH_PIX-50,adHeight/Constants.ONE_DP_SIZE,adY/Constants.ONE_DP_SIZE, showAd));
|
||||
// hideAdSlot(mNative_banner_container);
|
||||
// hideAdSlot(mTopBannerContainer);
|
||||
|
||||
mNative_banner_container.removeAllViews();
|
||||
mNative_banner_container.setBackgroundResource(R.color.transparent);
|
||||
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mNative_status_banner_container.getLayoutParams();
|
||||
hideAdSlot(mNative_status_banner_container);
|
||||
|
||||
loadNativeBannerAd(mNative_banner_container,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID);
|
||||
// mNative_banner_container_in_lines.removeAllViews();
|
||||
// mNative_banner_container_in_lines.setBackgroundResource(R.color.transparent);
|
||||
|
||||
loadNativeBannerAd(mNative_status_banner_container,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID);
|
||||
params.setMargins(10*Constants.ONE_DP_SIZE, adY-20*Constants.ONE_DP_SIZE, 10*Constants.ONE_DP_SIZE, 50*Constants.ONE_DP_SIZE);
|
||||
|
||||
mNative_banner_container.setLayoutParams(params);
|
||||
mNative_banner_container.setVisibility(View.VISIBLE);
|
||||
showTopBanner(0,0);
|
||||
params.height=-1;
|
||||
mNative_status_banner_container.setLayoutParams(params);
|
||||
showAdSlot(mNative_status_banner_container);
|
||||
// mNative_banner_container.setVisibility(View.VISIBLE);
|
||||
// showTopBanner(0,0);
|
||||
}else
|
||||
{
|
||||
/* loadBannerAd(mBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_ID, Constants.SCREEN_WIDTH_PIX-50,adHeight);
|
||||
|
@ -1177,332 +1227,4 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
|||
}
|
||||
|
||||
|
||||
|
||||
/*private void loadBannerAd(String codeId,int width,int height) {
|
||||
//step4:创建广告请求参数AdSlot,具体参数含义参考文档
|
||||
|
||||
|
||||
*//* if(height >390){
|
||||
width =(int)(height*1.78);
|
||||
if(width > Constants.SCREEN_WIDTH_PIX-50 ){
|
||||
width= Constants.SCREEN_WIDTH_PIX-50;
|
||||
height =(int)(width/1.78);
|
||||
}
|
||||
}else if(height >150){
|
||||
width =(int)(height*1.78);
|
||||
}*//*
|
||||
width =990;
|
||||
//height=150;
|
||||
height=height > 500 ? 500: height;
|
||||
Log.d(TAG, String.format("loadBannerAd:finial width %s, height %s ",width,height));
|
||||
AdSlot adSlot = new AdSlot.Builder()
|
||||
.setCodeId(codeId) //广告位id
|
||||
.setSupportDeepLink(true)
|
||||
.setImageAcceptedSize(width, height)
|
||||
.build();
|
||||
//step5:请求广告,对请求回调的广告作渲染处理
|
||||
mTTAdNative.loadBannerAd(adSlot, new TTAdNative.BannerAdListener() {
|
||||
|
||||
@Override
|
||||
public void onError(int code, String message) {
|
||||
TToast.show(ReadActivity.this, "load error : " + code + ", " + message);
|
||||
mBannerContainer.removeAllViews();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBannerAdLoad(final TTBannerAd ad) {
|
||||
if (ad == null) {
|
||||
return;
|
||||
}
|
||||
View bannerView = ad.getBannerView();
|
||||
if (bannerView == null) {
|
||||
return;
|
||||
}
|
||||
//设置轮播的时间间隔 间隔在30s到120秒之间的值,不设置默认不轮播
|
||||
ad.setSlideIntervalTime(30 * 1000);
|
||||
mBannerContainer.removeAllViews();
|
||||
mBannerContainer.addView(bannerView);
|
||||
//设置广告互动监听回调
|
||||
ad.setBannerInteractionListener(new TTBannerAd.AdInteractionListener() {
|
||||
@Override
|
||||
public void onAdClicked(View view, int type) {
|
||||
TToast.show(ReadActivity.this, "广告被点击");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdShow(View view, int type) {
|
||||
TToast.show(ReadActivity.this, "广告展示");
|
||||
}
|
||||
});
|
||||
//(可选)设置下载类广告的下载监听
|
||||
bindDownloadListener(ad);
|
||||
//在banner中显示网盟提供的dislike icon,有助于广告投放精准度提升
|
||||
ad.setShowDislikeIcon(new TTAdDislike.DislikeInteractionCallback() {
|
||||
@Override
|
||||
public void onSelected(int position, String value) {
|
||||
TToast.show(ReadActivity.this, "点击 " + value);
|
||||
//用户选择不喜欢原因后,移除广告展示
|
||||
mBannerContainer.removeAllViews();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
TToast.show(ReadActivity.this, "点击取消 ");
|
||||
}
|
||||
});
|
||||
|
||||
//获取网盟dislike dialog,您可以在您应用中本身自定义的dislike icon 按钮中设置 mTTAdDislike.showDislikeDialog();
|
||||
*//*mTTAdDislike = ad.getDislikeDialog(new TTAdDislike.DislikeInteractionCallback() {
|
||||
@Override
|
||||
public void onSelected(int position, String value) {
|
||||
TToast.show(mContext, "点击 " + value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
TToast.show(mContext, "点击取消 ");
|
||||
}
|
||||
});
|
||||
if (mTTAdDislike != null) {
|
||||
XXX.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mTTAdDislike.showDislikeDialog();
|
||||
}
|
||||
});
|
||||
} *//*
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
private boolean mHasShowDownloadActive = false;
|
||||
private void bindDownloadListener(TTBannerAd ad) {
|
||||
ad.setDownloadListener(new TTAppDownloadListener() {
|
||||
@Override
|
||||
public void onIdle() {
|
||||
TToast.show(ReadActivity.this, "点击图片开始下载", Toast.LENGTH_LONG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDownloadActive(long totalBytes, long currBytes, String fileName, String appName) {
|
||||
if (!mHasShowDownloadActive) {
|
||||
mHasShowDownloadActive = true;
|
||||
TToast.show(ReadActivity.this, "下载中,点击图片暂停", Toast.LENGTH_LONG);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDownloadPaused(long totalBytes, long currBytes, String fileName, String appName) {
|
||||
TToast.show(ReadActivity.this, "下载暂停,点击图片继续", Toast.LENGTH_LONG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDownloadFailed(long totalBytes, long currBytes, String fileName, String appName) {
|
||||
TToast.show(ReadActivity.this, "下载失败,点击图片重新下载", Toast.LENGTH_LONG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstalled(String fileName, String appName) {
|
||||
TToast.show(ReadActivity.this, "安装完成,点击图片打开", Toast.LENGTH_LONG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDownloadFinished(long totalBytes, String fileName, String appName) {
|
||||
TToast.show(ReadActivity.this, "点击图片安装", Toast.LENGTH_LONG);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
/* //-------------native toutiao ad
|
||||
private void loadNativeBannerAd(String codeId) {
|
||||
//step4:创建广告请求参数AdSlot,注意其中的setNativeAdtype方法,具体参数含义参考文档
|
||||
final AdSlot adSlot = new AdSlot.Builder()
|
||||
.setCodeId(codeId)
|
||||
.setSupportDeepLink(true)
|
||||
.setImageAcceptedSize(690, 388)
|
||||
.setNativeAdType(AdSlot.TYPE_BANNER) //请求原生广告时候,请务必调用该方法,设置参数为TYPE_BANNER或TYPE_INTERACTION_AD
|
||||
.setAdCount(1)
|
||||
.build();
|
||||
|
||||
//step5:请求广告,对请求回调的广告作渲染处理
|
||||
mTTAdNative.loadNativeAd(adSlot, new TTAdNative.NativeAdListener() {
|
||||
@Override
|
||||
public void onError(int code, String message) {
|
||||
TToast.show(ReadActivity.this, "load error : " + code + ", " + message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNativeAdLoad(List<TTNativeAd> ads) {
|
||||
if (ads.get(0) == null) {
|
||||
return;
|
||||
}
|
||||
View bannerView = LayoutInflater.from(ReadActivity.this).inflate(R.layout.ad_toutiao_native_ad , mBannerContainer, false);
|
||||
if (bannerView == null) {
|
||||
return;
|
||||
}
|
||||
if (mCreativeButton != null) {
|
||||
//防止内存泄漏
|
||||
mCreativeButton = null;
|
||||
}
|
||||
mBannerContainer.removeAllViews();
|
||||
mBannerContainer.addView(bannerView);
|
||||
//绑定原生广告的数据
|
||||
setAdData(bannerView, ads.get(0));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressWarnings("RedundantCast")
|
||||
private void setAdData(View nativeView, TTNativeAd nativeAd) {
|
||||
((TextView) nativeView.findViewById(R.id.tv_native_ad_title)).setText(nativeAd.getTitle());
|
||||
((TextView) nativeView.findViewById(R.id.tv_native_ad_desc)).setText(nativeAd.getDescription());
|
||||
ImageView imgDislike = nativeView.findViewById(R.id.img_native_dislike);
|
||||
bindDislikeAction(nativeAd, imgDislike);
|
||||
if (nativeAd.getImageList() != null && !nativeAd.getImageList().isEmpty()) {
|
||||
TTImage image = nativeAd.getImageList().get(0);
|
||||
if (image != null && image.isValid()) {
|
||||
mAQuery.id(nativeView.findViewById(R.id.iv_native_image)).image(image.getImageUrl());
|
||||
}
|
||||
}
|
||||
TTImage icon = nativeAd.getIcon();
|
||||
if (icon != null && icon.isValid()) {
|
||||
ImageOptions options = new ImageOptions();
|
||||
mAQuery.id((nativeView.findViewById(R.id.iv_native_icon))).image(icon.getImageUrl(), options);
|
||||
}
|
||||
mCreativeButton = (Button) nativeView.findViewById(R.id.btn_native_creative);
|
||||
//可根据广告类型,为交互区域设置不同提示信息
|
||||
switch (nativeAd.getInteractionType()) {
|
||||
case TTAdConstant.INTERACTION_TYPE_DOWNLOAD:
|
||||
//如果初始化ttAdManager.createAdNative(getApplicationContext())没有传入activity 则需要在此传activity,否则影响使用Dislike逻辑
|
||||
nativeAd.setActivityForDownloadApp(this);
|
||||
mCreativeButton.setVisibility(View.VISIBLE);
|
||||
nativeAd.setDownloadListener(mDownloadListener); // 注册下载监听器
|
||||
break;
|
||||
case TTAdConstant.INTERACTION_TYPE_DIAL:
|
||||
mCreativeButton.setVisibility(View.VISIBLE);
|
||||
mCreativeButton.setText("立即拨打");
|
||||
break;
|
||||
case TTAdConstant.INTERACTION_TYPE_LANDING_PAGE:
|
||||
case TTAdConstant.INTERACTION_TYPE_BROWSER:
|
||||
mCreativeButton.setVisibility(View.VISIBLE);
|
||||
mCreativeButton.setText("查看详情");
|
||||
break;
|
||||
default:
|
||||
mCreativeButton.setVisibility(View.GONE);
|
||||
TToast.show(ReadActivity.this, "交互类型异常");
|
||||
}
|
||||
|
||||
//可以被点击的view, 也可以把nativeView放进来意味整个广告区域可被点击
|
||||
List<View> clickViewList = new ArrayList<>();
|
||||
clickViewList.add(nativeView);
|
||||
|
||||
//触发创意广告的view(点击下载或拨打电话)
|
||||
List<View> creativeViewList = new ArrayList<>();
|
||||
//如果需要点击图文区域也能进行下载或者拨打电话动作,请将图文区域的view传入
|
||||
//creativeViewList.add(nativeView);
|
||||
creativeViewList.add(mCreativeButton);
|
||||
|
||||
//重要! 这个涉及到广告计费,必须正确调用。convertView必须使用ViewGroup。
|
||||
nativeAd.registerViewForInteraction((ViewGroup) nativeView, clickViewList, creativeViewList, imgDislike, new TTNativeAd.AdInteractionListener() {
|
||||
@Override
|
||||
public void onAdClicked(View view, TTNativeAd ad) {
|
||||
if (ad != null) {
|
||||
TToast.show(ReadActivity.this, "广告" + ad.getTitle() + "被点击");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdCreativeClick(View view, TTNativeAd ad) {
|
||||
if (ad != null) {
|
||||
TToast.show(ReadActivity.this, "广告" + ad.getTitle() + "被创意按钮被点击");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdShow(TTNativeAd ad) {
|
||||
if (ad != null) {
|
||||
TToast.show(ReadActivity.this, "广告" + ad.getTitle() + "展示");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
//接入网盟的dislike 逻辑,有助于提示广告精准投放度
|
||||
private void bindDislikeAction(TTNativeAd ad, View dislikeView) {
|
||||
final TTAdDislike ttAdDislike = ad.getDislikeDialog(this);
|
||||
if (ttAdDislike != null) {
|
||||
ttAdDislike.setDislikeInteractionCallback(new TTAdDislike.DislikeInteractionCallback() {
|
||||
@Override
|
||||
public void onSelected(int position, String value) {
|
||||
mBannerContainer.removeAllViews();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
dislikeView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (ttAdDislike != null)
|
||||
ttAdDislike.showDislikeDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private final TTAppDownloadListener mDownloadListener = new TTAppDownloadListener() {
|
||||
@Override
|
||||
public void onIdle() {
|
||||
if (mCreativeButton != null) {
|
||||
mCreativeButton.setText("开始下载");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDownloadActive(long totalBytes, long currBytes, String fileName, String appName) {
|
||||
if (mCreativeButton != null) {
|
||||
if (totalBytes <= 0L) {
|
||||
mCreativeButton.setText("下载中 percent: 0");
|
||||
} else {
|
||||
mCreativeButton.setText("下载中 percent: " + (currBytes * 100 / totalBytes));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDownloadPaused(long totalBytes, long currBytes, String fileName, String appName) {
|
||||
if (mCreativeButton != null) {
|
||||
mCreativeButton.setText("下载暂停 percent: " + (currBytes * 100 / totalBytes));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDownloadFailed(long totalBytes, long currBytes, String fileName, String appName) {
|
||||
if (mCreativeButton != null) {
|
||||
mCreativeButton.setText("重新下载");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInstalled(String fileName, String appName) {
|
||||
if (mCreativeButton != null) {
|
||||
mCreativeButton.setText("点击打开");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDownloadFinished(long totalBytes, String fileName, String appName) {
|
||||
if (mCreativeButton != null) {
|
||||
mCreativeButton.setText("点击安装");
|
||||
}
|
||||
}
|
||||
};*/
|
||||
|
||||
}
|
||||
|
|
|
@ -373,8 +373,11 @@ public class NetUtil {
|
|||
Constants.AD_SPLASH_INVTERVAL =(long) 1000 * ads.getInt("splashInterval");
|
||||
Constants.AD_SPLASH_PAGES = ads.getInt("splashPageCount");
|
||||
Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT = ads.getInt("times4ChapterTopBanner");
|
||||
Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT = ads.getInt("times4ChapterContentBanner"); //TODO: put it in server
|
||||
Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT = ads.getInt("times4ChapterContentBanner");
|
||||
|
||||
if(Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT >1 && Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT == Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT ){
|
||||
Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT--; //顶部广告和页内广告要错开
|
||||
}
|
||||
|
||||
Log.d(TAG, String.format("initHostConstants: Constants.AD_SPLASH_INVTERVAL %s,AD_SPLASH_PAGES %s",Constants.AD_SPLASH_INVTERVAL,Constants.AD_SPLASH_PAGES ));
|
||||
// try {
|
||||
|
|
|
@ -6,7 +6,7 @@ public interface AdInterface {
|
|||
* @param height
|
||||
* @param adY
|
||||
*/
|
||||
public void showAd(boolean showAd,int height,int adY);
|
||||
public void showStatusAd(boolean showAd,int height,int adY);
|
||||
public void showTopBanner(int height,int adY);
|
||||
public void showNativeBannerInLines(int height,int adY);
|
||||
public void hideSystemUI();
|
||||
|
@ -16,5 +16,5 @@ public interface AdInterface {
|
|||
public void showLoading(boolean isShow);
|
||||
public void hideReadSetting();
|
||||
public void showReadSetting();
|
||||
public void hideAds();
|
||||
public void hideStatusAds();
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import android.content.ContentValues;
|
|||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SyncAdapterType;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
|
@ -194,6 +195,12 @@ public class PageFactory implements ChangeSource{
|
|||
return mAd;
|
||||
}
|
||||
|
||||
//页面宽
|
||||
private int mAdHeight;
|
||||
//页面高
|
||||
private int mAdY;
|
||||
private enum AdTpye {TOPBANNER,NATIVEINLINES,CHAPTEREND;};
|
||||
private AdTpye mAdType = AdTpye.TOPBANNER;
|
||||
public void setAd(AdInterface ad){
|
||||
mAd =ad;
|
||||
}
|
||||
|
@ -246,7 +253,7 @@ public class PageFactory implements ChangeSource{
|
|||
// Log.d(TAG, "loadBannerAd: set banner gone 0, showingStatusAd " +showingStatusAd);
|
||||
if(showingStatusAd) {
|
||||
if (mAd != null) {
|
||||
mAd.hideAds();
|
||||
mAd.hideStatusAds();
|
||||
// Log.d(TAG, "loadBannerAd: set banner gone 1");
|
||||
}
|
||||
}
|
||||
|
@ -481,6 +488,10 @@ public class PageFactory implements ChangeSource{
|
|||
page.setPageNo(pageNo);
|
||||
chaptPages.add(page);
|
||||
length= page.getEnd();
|
||||
if(length >=chars.length){
|
||||
if(page.getLines().size()< mLineCount/2)
|
||||
page.setTopBannerHeight(0);
|
||||
}
|
||||
// Log.d(TAG, String.format("prepare book build page %s ready for chapter %s,cost %s",pageNo, chaptId,new Date().getTime()-starttime1));
|
||||
}
|
||||
// Log.d(TAG, String.format(" prepare book build pages ready for chapter %s,cost %s", chaptId,new Date().getTime()-starttime));
|
||||
|
@ -490,43 +501,44 @@ public class PageFactory implements ChangeSource{
|
|||
|
||||
|
||||
|
||||
public TRPage getNextChapterPage(int chaptId,long position,int pageNo){
|
||||
mBookUtil.setPostition(chaptId,position);
|
||||
public TRPage getNextChapterPage(int chaptId,long position,int pageNo) {
|
||||
mBookUtil.setPostition(chaptId, position);
|
||||
|
||||
TRPage trPage = new TRPage();
|
||||
totalPageCnt++;
|
||||
float bannerH =0;
|
||||
if(Constants.SHOWAD && pageNo >1) {
|
||||
if (Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT >0 && totalPageCnt % Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT == 0) {
|
||||
bannerH = mContext.getResources().getDimension(R.dimen.topBannerHeight) +0*Constants.ONE_DP_SIZE;
|
||||
trPage.setTopBannerHeight((int)bannerH);
|
||||
}
|
||||
Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT=4;
|
||||
if (Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT >0 && totalPageCnt % Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT == 0) {
|
||||
bannerH = mContext.getResources().getDimension(R.dimen.nativeBannerHeight) +4*Constants.ONE_DP_SIZE;
|
||||
calculateLineCount();
|
||||
int adLines = (int) ( bannerH / ((m_fontSize + lineSpace)));
|
||||
float bannerH = 0;
|
||||
// Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT = 4;
|
||||
if (Constants.SHOWAD && pageNo > 1) {
|
||||
// Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT = 1;
|
||||
|
||||
int adLine = new Random().nextInt( mLineCount -adLines -1);
|
||||
adLine =adLine <mLineCount ? adLine :mLineCount-2;
|
||||
if(adLine>0) {
|
||||
trPage.setNativeBannerStartLine(adLine);
|
||||
//trPage.setNativeBannerHeight(Constants.AD_CHAPT_NATIVE_BANNER_HEIGHT);
|
||||
trPage.setNativeBannerHeight((int)bannerH);
|
||||
}
|
||||
if (Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT > 0 && totalPageCnt % Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT == 0) {
|
||||
bannerH = mContext.getResources().getDimension(R.dimen.nativeBannerHeight) + 4 * Constants.ONE_DP_SIZE;
|
||||
calculateLineCount();
|
||||
int adLines = (int) (bannerH / ((m_fontSize + lineSpace)));
|
||||
|
||||
int adLine = new Random().nextInt(mLineCount - adLines - 1);
|
||||
adLine = adLine < mLineCount ? adLine : mLineCount - 2;
|
||||
if (adLine > 0) {
|
||||
trPage.setNativeBannerStartLine(adLine);
|
||||
//trPage.setNativeBannerHeight(Constants.AD_CHAPT_NATIVE_BANNER_HEIGHT);
|
||||
trPage.setNativeBannerHeight((int) bannerH);
|
||||
}
|
||||
Log.d(TAG, String.format("getNextChapterPage: pageNo %s, topBannerHeight %s, adLines %s,adLine %s, nativeBannerHeight %s",
|
||||
pageNo,trPage.getTopBannerHeight(),adLines,adLine,trPage.getNativeBannerHeight()));
|
||||
pageNo, trPage.getTopBannerHeight(), adLines, adLine, trPage.getNativeBannerHeight()));
|
||||
} else if (Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT > 0 && totalPageCnt % Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT == 0) {
|
||||
bannerH = mContext.getResources().getDimension(R.dimen.topBannerHeight) + 0 * Constants.ONE_DP_SIZE;
|
||||
trPage.setTopBannerHeight((int) bannerH);
|
||||
}
|
||||
}
|
||||
trPage.setPageNo(pageNo);
|
||||
trPage.setBegin(position +1);
|
||||
trPage.setBegin(position + 1);
|
||||
|
||||
// Log.d(TAG,"page postion next begin:" + (position + 1) + "");
|
||||
trPage.setLines(getNextLines(chaptId,trPage));
|
||||
if(trPage.getNativeBannerStartLine() >0 && trPage.getNativeBannerStartLine() >= trPage.getLines().size()){
|
||||
trPage.setNativeBannerStartLine(trPage.getLines().size()-1);
|
||||
// Log.d(TAG,"page postion next begin:" + (position + 1) + "");
|
||||
trPage.setLines(getNextLines(chaptId, trPage));
|
||||
if (trPage.getNativeBannerStartLine() > 0 && trPage.getNativeBannerStartLine() >= trPage.getLines().size()) {
|
||||
trPage.setNativeBannerStartLine(trPage.getLines().size() - 1);
|
||||
}
|
||||
// Log.d(TAG,"page postion next end:" +mBookUtil.getPosition() + "");
|
||||
// Log.d(TAG,"page postion next end:" +mBookUtil.getPosition() + "");
|
||||
trPage.setEnd(mBookUtil.getPosition(chaptId));
|
||||
return trPage;
|
||||
}
|
||||
|
@ -877,7 +889,7 @@ private void hideSysUI(){
|
|||
while(!showingStatusAd || new Date().getTime() - showStatusAdTime > 2000) {
|
||||
showingStatusAd =true;
|
||||
showStatusAdTime = new Date().getTime();
|
||||
showAd((int) adHeight, (int) adY);
|
||||
showStatusAd((int) adHeight, (int) adY);
|
||||
Log.d(TAG, "loadBannerAd: AD is requested, mStatus:" +mStatus);
|
||||
}
|
||||
|
||||
|
@ -923,6 +935,9 @@ private void hideSysUI(){
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//上次翻书时间
|
||||
private long lastPageTime;
|
||||
|
||||
|
@ -950,13 +965,12 @@ private void hideSysUI(){
|
|||
}*/
|
||||
|
||||
|
||||
|
||||
handler.sendEmptyMessage(MSG_HID_AD);
|
||||
|
||||
|
||||
if(showAd && mAd!=null){
|
||||
// handler.sendEmptyMessage(MSG_HID_AD);
|
||||
handler.sendEmptyMessage(MSG_HID_AD);
|
||||
//handler.sendEmptyMessage(MSG_HID_AD);
|
||||
handler.sendEmptyMessage(MSG_HIDEPROGRESS);
|
||||
mAdHeight=0;
|
||||
mAdY=0;
|
||||
}
|
||||
mStatus =Status.FINISH;
|
||||
// Log.d(TAG, String.format(" prepare book onDraw chapter %s, getChapters().size() %s ",currentChapter ,getChapters().size() ) );
|
||||
|
@ -1034,8 +1048,12 @@ private void hideSysUI(){
|
|||
|
||||
|
||||
if(showAd && mAd!=null){
|
||||
mAd.showTopBanner(trPage.getTopBannerHeight(),(int)(marginHeight));
|
||||
mAd.showNativeBannerInLines(0,0);
|
||||
mAdHeight=trPage.getTopBannerHeight();
|
||||
mAdY=(int)marginHeight;
|
||||
mAdType =AdTpye.TOPBANNER;
|
||||
|
||||
// mAd.showTopBanner(trPage.getTopBannerHeight(),(int)(marginHeight));
|
||||
// mAd.showNativeBannerInLines(0,0);
|
||||
}
|
||||
|
||||
if (m_lines.size() > 0) {
|
||||
|
@ -1053,9 +1071,12 @@ private void hideSysUI(){
|
|||
|
||||
if(lineNo==trPage.getNativeBannerStartLine()){
|
||||
if(showAd && mAd!=null){
|
||||
mAd.showNativeBannerInLines(trPage.getNativeBannerHeight(),(int)y);
|
||||
mAdHeight=trPage.getNativeBannerHeight();
|
||||
mAdY=(int)y;
|
||||
mAdType =AdTpye.NATIVEINLINES;
|
||||
// mAd.showNativeBannerInLines(trPage.getNativeBannerHeight(),(int)y);
|
||||
}
|
||||
y+=trPage.getNativeBannerHeight() +m_fontSize;
|
||||
y+=trPage.getNativeBannerHeight() +m_fontSize*1.1;
|
||||
Log.d(TAG, String.format("onDraw showNativeBannerInLines : lineno %s,strline %s ",lineNo,strLine));
|
||||
|
||||
}else {
|
||||
|
@ -1085,8 +1106,11 @@ private void hideSysUI(){
|
|||
|
||||
float adHeight = mHeight -y - space -marginHeight-statusMarginBottom;
|
||||
float adY =y +space;
|
||||
if(showAd && trPage.getNativeBannerHeight()==0) {
|
||||
showAd((int) adHeight, (int) adY);
|
||||
if(mAdHeight ==0 && showAd ) {
|
||||
mAdY=(int)adY;
|
||||
mAdHeight =(int) adHeight;
|
||||
mAdType =AdTpye.CHAPTEREND;
|
||||
// showAd((int) adHeight, (int) adY);
|
||||
Log.d(TAG, "loadBannerAd: AD is requested, adHeight "+adHeight);
|
||||
}
|
||||
// Log.d(TAG,String.format("ad + statusMarginBottom %s ",200+ statusMarginBottom));
|
||||
|
@ -1176,13 +1200,24 @@ private void hideSysUI(){
|
|||
}
|
||||
}
|
||||
|
||||
private void showAd(int adHeight,int adY) {
|
||||
public void showAd(){
|
||||
Log.d(TAG, String.format("loadBannerAd showAd: mAdType %s",mAdType));
|
||||
if(mAdType ==AdTpye.TOPBANNER){
|
||||
mAd.showTopBanner(mAdHeight,mAdY);
|
||||
}else if(mAdType == AdTpye.NATIVEINLINES){
|
||||
mAd.showNativeBannerInLines(mAdHeight,mAdY);
|
||||
}else if(mAdType == AdTpye.CHAPTEREND){
|
||||
mAd.showNativeBannerInLines(mAdHeight,mAdY);
|
||||
}
|
||||
|
||||
}
|
||||
private void showStatusAd(int adHeight,int adY) {
|
||||
|
||||
boolean showAd = showingStatusAd || getCurrentPage()==null || getCurrentPage().getPageNo() > 1;
|
||||
|
||||
// boolean showAd =true;
|
||||
if (mAd != null) {
|
||||
mAd.showAd(showAd,adHeight, adY);
|
||||
mAd.showStatusAd(showAd,adHeight, adY);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -91,31 +91,36 @@
|
|||
|
||||
<FrameLayout
|
||||
android:id="@+id/frmAD"
|
||||
android:visibility="invisible"
|
||||
android:visibility="visible"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<FrameLayout
|
||||
android:id="@+id/native_banner_container_in_lines"
|
||||
style="@style/frmBannerContainer"
|
||||
android:layout_height="@dimen/nativeBannerHeight"
|
||||
android:id="@+id/native_banner_container_in_lines"/>
|
||||
<FrameLayout
|
||||
android:visibility="visible"
|
||||
/>
|
||||
<!-- <FrameLayout
|
||||
android:id="@+id/top_banner_container"
|
||||
style="@style/frmBannerContainer"
|
||||
android:layout_height="@dimen/topBannerHeight"
|
||||
android:id="@+id/top_banner_container"
|
||||
android:visibility="invisible"
|
||||
|
||||
android:visibility="visible"
|
||||
/>
|
||||
<FrameLayout
|
||||
android:id="@+id/banner_container"
|
||||
style="@style/frmBannerContainer"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/banner_container"
|
||||
android:visibility="invisible"
|
||||
/>
|
||||
|
||||
android:visibility="visible"
|
||||
/>-->
|
||||
<FrameLayout
|
||||
android:id="@+id/native_banner_container"
|
||||
style="@style/frmBannerContainer"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/native_banner_container"
|
||||
android:visibility="invisible"
|
||||
|
||||
android:visibility="visible"
|
||||
/>
|
||||
|
||||
</FrameLayout>
|
||||
|
|
|
@ -106,17 +106,13 @@
|
|||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_aapt_derived_proguard_rules" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_main_dex_list" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifest-checker" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged-not-compiled-resources" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/metadata_feature_manifest" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/processed_res" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-files" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-rules" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res_stripped" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/resources" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shader_assets" />
|
||||
|
@ -126,7 +122,6 @@
|
|||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/reports" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
|
||||
|
|
Loading…
Reference in New Issue