|
|
@@ -39,8 +39,10 @@ import com.sheep.jiuyan.samllsheep.SheepApp;
|
|
|
import com.sheep.jiuyan.samllsheep.utils.SpUtils;
|
|
|
import com.tencent.klevin.KleinManager;
|
|
|
import com.tencent.klevin.base.callback.KleinResponseCallback;
|
|
|
+
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+
|
|
|
import butterknife.BindView;
|
|
|
import butterknife.OnClick;
|
|
|
import io.reactivex.Observable;
|
|
|
@@ -48,6 +50,7 @@ import io.reactivex.Observer;
|
|
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
|
import io.reactivex.functions.Action;
|
|
|
import io.reactivex.schedulers.Schedulers;
|
|
|
+
|
|
|
import static com.sheep.gamegroup.view.activity.helper.AdHelper.*;
|
|
|
import static com.tencent.klevin.base.okhttp.ErrorCode.*;
|
|
|
|
|
|
@@ -75,6 +78,8 @@ public class SplashAct extends BaseActivity {
|
|
|
@BindView(R.id.ad_flag)
|
|
|
View ad_flag;
|
|
|
private boolean goLink;//跳转到了广告对应的页面
|
|
|
+ //是否强制跳转到主页面
|
|
|
+ private boolean mForceGoMain = false;
|
|
|
|
|
|
private RxjavaCountDownTimer timer;
|
|
|
|
|
|
@@ -123,11 +128,12 @@ public class SplashAct extends BaseActivity {
|
|
|
boolean isNewSmallSheep = baseMessage.getData(Boolean.class);
|
|
|
DataUtil.getInstance().setIsNewSmallSheep(isNewSmallSheep);
|
|
|
if (SysAppUtil.isNewSmallSheep()) {//新版本只显示引导页面,不展示弹窗和开屏广告
|
|
|
- fetchAdvertisement(()->{});//只更新,不加载
|
|
|
+ fetchAdvertisement(() -> {
|
|
|
+ });//只更新,不加载
|
|
|
sendHandlerMessages(2000);
|
|
|
} else {
|
|
|
//拉一次广告,并加载
|
|
|
- fetchAdvertisement(()->{
|
|
|
+ fetchAdvertisement(() -> {
|
|
|
if (ad != null) {
|
|
|
if (ad.getAd_type() == AD_TYPE_SHEEP) {
|
|
|
//是自己的广告,展示自己的广告
|
|
|
@@ -179,7 +185,7 @@ public class SplashAct extends BaseActivity {
|
|
|
public void onFail(int i) {
|
|
|
if (BuildConfig.DEBUG)
|
|
|
Log.d("!!!!!Fail", String.valueOf(i));
|
|
|
- if(i == KLSplashAdEvent_Timeout){
|
|
|
+ if (i == KLSplashAdEvent_Timeout) {
|
|
|
//拉取广告错误或超时,直接跳过
|
|
|
sendHandlerMessages(0);
|
|
|
}
|
|
|
@@ -218,19 +224,19 @@ public class SplashAct extends BaseActivity {
|
|
|
public void onSplashClick() {
|
|
|
Log.i("jasmine-ad", "点击广告");
|
|
|
AdHelper.stat(ad.getAd_id(), 2, ad.getAd_type());
|
|
|
- sendHandlerMessages(0);
|
|
|
+ //sendHandlerMessages(0);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onSplashDismissed() {
|
|
|
Log.i("jasmine-ad", "广告关闭");
|
|
|
- sendHandlerMessages(0);
|
|
|
+ next();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onSplashError(String err, boolean isTimeout) {
|
|
|
Log.i("jasmine-ad", "展示广告异常:" + err);
|
|
|
- sendHandlerMessages(0);
|
|
|
+ next();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -260,6 +266,18 @@ public class SplashAct extends BaseActivity {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 重要 mForceGoMain跳转主页 请参照此方法调用,否则可能导致广告展示链路断开 导致收益下降!!!
|
|
|
+ * 设置一个变量来控制当前开屏页面是否可以跳转,当开屏广告为普链类广告时,点击会打开一个广告落地页,此时开发者还不能打开自己的App主页。当从广告落地页返回以后,
|
|
|
+ * 才可以跳转到开发者自己的App主页;当开屏广告是App类广告时只会下载App。
|
|
|
+ */
|
|
|
+ private void next() {
|
|
|
+ if (mForceGoMain) {
|
|
|
+ sendHandlerMessages(0);
|
|
|
+ } else {
|
|
|
+ mForceGoMain = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
//从服务端拉取广告信息
|
|
|
private void fetchAdvertisement(Action action) {
|
|
|
@@ -440,6 +458,19 @@ public class SplashAct extends BaseActivity {
|
|
|
if (goLink) {
|
|
|
sendHandlerMessages(10);
|
|
|
}
|
|
|
+ //判断是否该跳转到主页面
|
|
|
+ if (mForceGoMain && ad != null && ad.getAd_type() == AD_SPLASH_TYPE_YT) {
|
|
|
+ next();
|
|
|
+ }
|
|
|
+ mForceGoMain = true;
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onStop() {
|
|
|
+ super.onStop();
|
|
|
+ mForceGoMain = true;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -447,6 +478,7 @@ public class SplashAct extends BaseActivity {
|
|
|
super.onPause();
|
|
|
if (splash_video_view != null)
|
|
|
splash_video_view.pause();
|
|
|
+ mForceGoMain = false;
|
|
|
}
|
|
|
|
|
|
@Override
|