瀏覽代碼

[修改]升级游可盈广告,未完成

zeki 4 年之前
父節點
當前提交
61927565d3

+ 1 - 0
WaterWaveProgress/build.gradle

@@ -24,6 +24,7 @@ android {
 
 dependencies {
     implementation fileTree(include: ['*.jar'], dir: 'libs')
+    testImplementation 'org.junit.jupiter:junit-jupiter:5.7.0'
     androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
         exclude group: 'com.android.support', module: 'support-annotations'
     })

+ 4 - 2
WaterWaveProgress/src/test/java/com/bingfor/waterwaveprogress/ExampleUnitTest.java

@@ -1,8 +1,10 @@
 package com.bingfor.waterwaveprogress;
 
-import org.junit.Test;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 
 /**
  * Example local unit test, which will execute on the development machine (host).

+ 1 - 1
app/build.gradle

@@ -202,7 +202,7 @@ dependencies {
     implementation 'com.tencent.bugly:crashreport_upgrade:1.3.5'
     implementation(name: 'alipaySdk-15.5.9', ext: 'aar')
     implementation(name: 'ad_dk_sdk', ext: 'aar')
-    implementation(name: 'klevinSDK', ext: 'aar')
+    implementation(name: 'klevinSDK_2.0.0.21', ext: 'aar')
     implementation(name: 'lygamewrapper-sheep-release', ext: 'aar'){
         exclude group: 'com.google.android',module: 'exoplayer2'
     }

二進制
app/libs/klevinSDK.aar


二進制
app/libs/klevinSDK_2.0.0.21.aar


+ 0 - 4
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -6,13 +6,9 @@ import com.sheep.gamegroup.absBase.IHomePageSearch;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.SystemNotification;
 import com.sheep.gamegroup.model.entity.UserFootprint;
-
 import org.afinal.simplecache.ApiKey;
-
 import java.util.Map;
-
 import javax.annotation.PostConstruct;
-
 import io.reactivex.Observable;
 import retrofit2.Call;
 import retrofit2.http.Body;

+ 66 - 83
app/src/main/java/com/sheep/gamegroup/module/task/fragments/FgtVideoTaskYKY.java

@@ -2,15 +2,9 @@ package com.sheep.gamegroup.module.task.fragments;
 
 import android.util.Log;
 import com.sheep.gamegroup.util.LogUtil;
-import com.sheep.gamegroup.util.PreferenceUtils;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.tencent.klevin.KleinManager;
-import com.tencent.klevin.base.callback.KleinResponseCallback;
-import com.tencent.klevin.util.AdUtils;
-import static com.tencent.klevin.base.okhttp.ErrorCode.KLSplashAdEvent_AdPlayCompletion;
-import static com.tencent.klevin.base.okhttp.ErrorCode.KLSplashAdEvent_AdSkip;
-import static com.tencent.klevin.base.okhttp.ErrorCode.KLSplashAdEvent_CreativeDownloadSuccess;
-import static com.tencent.klevin.base.okhttp.ErrorCode.KLSplashAdEvent_MeetTheRewardConditions;
+import com.sheep.jiuyan.samllsheep.utils.G;
+import com.tencent.klevin.ads.ad.RewardAd;
+import com.tencent.klevin.ads.ad.RewardAdRequest;
 
 /**
  * 游可盈广告视频
@@ -19,8 +13,6 @@ import static com.tencent.klevin.base.okhttp.ErrorCode.KLSplashAdEvent_MeetTheRe
 public class FgtVideoTaskYKY extends FgtVideoTaskBase {
     private static final String TAG = "游可盈视频广告页";
 
-    public static final String KEY_YKY_ENCOURAGE_VIDEO_PRE_DOWN = "key_has_pre_down_yky_video";
-
     @Override
     protected void initView() {
 
@@ -38,104 +30,95 @@ public class FgtVideoTaskYKY extends FgtVideoTaskBase {
 
     @Override
     protected void loadAd() {
-        KleinManager.getInstance().setCurrentActivity(getActivity());
-        boolean hasPreDownVideo = PreferenceUtils.getPrefBoolean(getContext(), KEY_YKY_ENCOURAGE_VIDEO_PRE_DOWN, false);
-        if (hasPreDownVideo) {
-            showAd();
-            preAd(false);
-        } else {
-            preAd(true);
-        }
-
+        preAd();
     }
 
     //是否领过奖了
     boolean hasGetReward = false;
 
     //预加载激励视频
-    private void preAd(boolean shouldShow) {
-        int posId = 30113;
-        int duration = 0;
-        //String data = "{\"placements\":[{\"pos_id\":" + posId + ",\"ad_count\":" + releaseTask.getTask().getVideo_num() + "}],\"ad_reward_trigger\":1, \"ad_reward_duration\":" + duration + ", \"ad_reward_automute\":1}";
-        String data = "{\"placements\":[{\"pos_id\":" + posId + ",\"ad_count\":1}],\"ad_reward_trigger\":1, \"ad_reward_duration\":" + duration + ", \"ad_reward_automute\":1}";
-
-        KleinManager.getInstance().loadEncourageAD(SheepApp.getInstance().getApplicationContext(), data, new KleinResponseCallback() {
+    private void preAd() {
+        int posId = 30113;  //正式30113  测试30031
 
-            @Override
-            public void onSuccess(int i) {
-                Log.d(TAG, "onSuccess : " + i);
-                handleSuccess(i, shouldShow);
-            }
+        RewardAdRequest.Builder rewardAdBuilder = new RewardAdRequest.Builder();
+        rewardAdBuilder.autoMute(true)//【可选】设置是否自动静音,默认 false
+                .setRewardTrigger(RewardAdRequest.TRIGGER_OTHER)//【可选】激励类型
+                .setPosId(posId)//【必须】激励视频广告位 id
+                .setAdCount(1);//【可选】广告个数,默认 1
 
+        RewardAd.load(rewardAdBuilder.build(), new RewardAd.RewardAdLoadListener() {
             @Override
-            public void onFail(int i) {
-                Log.e(TAG, "onFail : " + i);
+            public void onAdLoadError(int i, String s) {
+                G.showToast("游可盈video 加载onFail" + i + "  " + s);
             }
 
             @Override
-            public void onEvent(int i) {
-                Log.d(TAG, "onEvent : " + i);
-                handleEvent(i);
+            public void onAdLoaded(RewardAd rewardAd) {
+                Log.d(TAG, "yky video load success ");
+                //下载激励视频素材成功,开始播放
+                showAd(rewardAd);
             }
         });
+
     }
 
+    RewardAd mRewardAd;
+
     //播放激励视频
-    private void showAd() {
-        PreferenceUtils.setPrefBoolean(SheepApp.getInstance().getApplicationContext(), KEY_YKY_ENCOURAGE_VIDEO_PRE_DOWN, false);
-        KleinManager.getInstance().showAD(getContext(), AdUtils.TYPE_AD_REWARD,
-                new KleinResponseCallback() {
-
-                    @Override
-                    public void onSuccess(int i) {
-                        Log.d(TAG, "onSuccess : " + i);
-                        handleSuccess(i, false);
+    private void showAd(RewardAd ad) {
+        // 广告素材下载完成,参数 ad 为激励视频广告实例
+        // 在此回调中触发展示广告,则使用本地播放的方式读取广告 Log.i(TAG, "reward ad loaded");
+        mRewardAd = ad;
+        if (mRewardAd != null) {
+            //设置激励视频广告展示回调
+            mRewardAd.setListener(new RewardAd.RewardAdListener() {
+                @Override
+                public void onAdSkip() {
+                    //用户跳过广告回调 Log.i(TAG, "onAdSkip");
+                    if (!hasGetReward) {
+                        //未领奖,调用放弃任务接口
+                        giveUpTask();
+                    } else {
+                        if (getActivity() != null)
+                            getActivity().finish();
                     }
+                }
 
-                    @Override
-                    public void onFail(int i) {
-                        Log.e(TAG, "onFail : " + i);
-                    }
+                public void onReward() {
+                    //满足领奖条件,去领奖
+                    Log.i(TAG, "yky video onReward");
+                    hasGetReward = true;
+                    tryGetReward();
+                }
 
-                    @Override
-                    public void onEvent(int i) {
-                        Log.d(TAG, "onEvent : " + i);
-                        handleEvent(i);
-                    }
-                });
-    }
+                public void onVideoComplete() { //视频播放完成回调
+                    Log.i(TAG, "onVideoComplete");
+                    //G.showToast("游可盈video 播放结束");
+                }
 
-    private void handleSuccess(int i, boolean shouldShow) {
-        if (i == KLSplashAdEvent_CreativeDownloadSuccess) {
-            //下载激励视频素材成功
-            PreferenceUtils.setPrefBoolean(SheepApp.getInstance().getApplicationContext(), KEY_YKY_ENCOURAGE_VIDEO_PRE_DOWN, true);
-            if (shouldShow) showAd();
-        }
-    }
+                public void onAdShow() {
+                    //广告曝光回调 Log.i(TAG, "onAdShow");
+                }
 
-    private void handleEvent(int i) {
-        switch (i) {
-            case KLSplashAdEvent_MeetTheRewardConditions:
-                //满足领奖条件,去领奖
-                hasGetReward = true;
-                tryGetReward();
-                break;
-            case KLSplashAdEvent_AdPlayCompletion:
-                //一个视频播放结束
-                break;
-            case KLSplashAdEvent_AdSkip:
-                //用户点击关闭了界面
-                if (!hasGetReward) {
-                    //未领奖,调用放弃任务接口
-                    giveUpTask();
-                } else {
-                    if (getActivity() != null)
-                        getActivity().finish();
+                public void onAdClick() { //广告点击回调
+                    Log.i(TAG, "onAdClick");
                 }
-                break;
+
+                public void onAdClosed() {
+                    //广告关闭回调 Log.i(TAG, "onAdClosed");
+
+                }
+
+                public void onAdError(int i, String msg) {
+                    //广告展示失败回调
+                    Log.e(TAG, "onAdError err: " + i + " " + msg);
+                }
+            });
+            mRewardAd.show(); //展示激励视频广告
         }
     }
 
+
     @Override
     public int getLayoutId() {
         return 0;

+ 0 - 5
app/src/main/java/com/sheep/gamegroup/util/DeviceUtil.java

@@ -3,16 +3,11 @@ package com.sheep.gamegroup.util;
 import android.Manifest;
 import android.content.Context;
 import android.content.pm.PackageManager;
-import android.os.Build;
 import android.provider.Settings;
 import android.support.v4.app.ActivityCompat;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
-
-import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
-
-import java.lang.reflect.Field;
 import java.util.Random;
 
 /**

+ 0 - 9
app/src/main/java/com/sheep/gamegroup/view/activity/RechargeAct.java

@@ -1,7 +1,6 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.content.Context;
-import android.content.Intent;
 import android.os.Bundle;
 import android.support.v4.content.ContextCompat;
 import android.support.v7.widget.LinearLayoutManager;
@@ -11,8 +10,6 @@ import android.util.Log;
 import android.view.View;
 import android.widget.EditText;
 import android.widget.TextView;
-import android.widget.Toast;
-
 import com.alibaba.fastjson.JSONObject;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
@@ -47,19 +44,13 @@ import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.sheep.jiuyan.samllsheep.wxutil.WXAPIUtil;
-import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram;
-import com.tencent.mm.opensdk.openapi.IWXAPI;
-import com.tencent.mm.opensdk.openapi.WXAPIFactory;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
-
 import butterknife.BindView;
 import butterknife.OnClick;
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.schedulers.Schedulers;
-
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.RECHARGE_PAY;
 
 /**

+ 63 - 47
app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java

@@ -13,6 +13,7 @@ import android.support.annotation.Nullable;
 import android.support.v4.app.ActivityCompat;
 import android.support.v4.content.ContextCompat;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.View;
 import android.widget.*;
 import com.bumptech.glide.Glide;
@@ -40,13 +41,11 @@ import com.sheep.gamegroup.view.activity.helper.AdHelper;
 import com.sheep.jiuyan.samllsheep.R;
 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 com.tencent.klevin.ads.ad.SplashAd;
+import com.tencent.klevin.ads.ad.SplashAdRequest;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
-
 import butterknife.BindView;
 import butterknife.OnClick;
 import io.reactivex.Observable;
@@ -54,9 +53,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.*;
 
 /**
  * Created by ljy on 2018/3/9.
@@ -64,6 +61,8 @@ import static com.tencent.klevin.base.okhttp.ErrorCode.*;
 
 public class SplashAct extends BaseActivity {
 
+    private String TAG = "SplashAct";
+
     @Override
     protected void initSlidr() {
         // doNothing
@@ -84,12 +83,11 @@ public class SplashAct extends BaseActivity {
     @BindView(R.id.ad_flag)
     View ad_flag;
 
-    //掌酷广告控制器
-    private AtomicReference<ISplashAdController> controllerRef = new AtomicReference<>();
+    private AtomicReference<ISplashAdController> controllerRef = new AtomicReference<>(); //掌酷广告控制器
+
+    private boolean goLink; //跳转到了广告对应的页面
 
-    private boolean goLink;//跳转到了广告对应的页面
-    //是否强制跳转到主页面
-    private boolean mForceGoMain = false;
+    private boolean mForceGoMain = false; //是否强制跳转到主页面
 
     private RxjavaCountDownTimer timer;
 
@@ -180,48 +178,66 @@ public class SplashAct extends BaseActivity {
         }
     }
 
-
     //展示游可盈广告
+    SplashAd mSplashAd;
+
     private void launchYKYSplash() {
-        String data = "{\"placements\":[{\"pos_id\":" + ad.getThird_ad_id() + ",\"ad_count\":1}]}";
-        //"{\"placements\":[{\"pos_id\":" + posId + ",\"ad_count\":1}]}";
-        KleinManager.getInstance().prepareAD(
-                getApplicationContext(),
-                data,
-                5000,
-                true,
-                new KleinResponseCallback() {
-                    @Override
-                    public void onSuccess(int i) {
-                    }
+        SplashAdRequest.Builder splashAdBuilder = new SplashAdRequest.Builder();
+        splashAdBuilder.setWaitTime(3500)// 【可选】默认不限制,可传值范围[3000-5000]
+                .setAdCount(1)//【可选】广告个数,默认 1
+                .setPosId(30112);//【必须】开屏广告位 id  正式30112 测试30029
+
+        //开屏广告加载回调
+        SplashAd.load(splashAdBuilder.build(), new SplashAd.SplashAdLoadListener() {
+            public void onTimeOut() { //加载超时 Log.e(TAG, "splash ad load timeout");
+                //FileUtil.addContentToFile(eventLogFileName, "YKY splash onTimeOut" + "\n");
+                //todo 跳过
+            }
 
-                    @Override
-                    public void onFail(int i) {
-                        //拉取广告错误或超时,直接跳过
-                        sendHandlerMessages(0);
-                    }
+            public void onAdLoadError(int err, String msg) {
+                // 加载失败,err 是错误码,msg 是描述信息
+                //todo 跳过
+                Log.e(TAG, "yky splash ad load err: " + err + " " + msg);
 
-                    @Override
-                    public void onEvent(int i) {
-                        switch (i) {
-                            case KLSplashAdEvent_AdShowSucc:
-                                if (!aded && ad != null) {
-                                    AdHelper.stat(ad.getAd_id(), 1, ad.getAd_type());
-                                    aded = true;
-                                }
-                                break;
-                            case KLSplashAdEvent_AdTap:
-                                AdHelper.stat(ad.getAd_id(), 2, ad.getAd_type());
-                                break;
-                            case KLSplashAdEvent_AdPlayCompletion:
-                            case KLSplashAdEvent_AdShowFinish:
-                            case KLSplashAdEvent_AdSkip:
-                                sendHandlerMessages(0);
-                                break;
+            }
+
+            public void onAdLoaded(SplashAd adTmp) {//加载成功,ad 为开屏广告实例 Log.i(TAG, "splash ad loaded");
+                mSplashAd = adTmp;
+                if (mSplashAd != null) {
+                    //设置开屏广告展示回调
+                    mSplashAd.setListener(new SplashAd.SplashAdListener() {
+                        public void onAdSkip() { //用户跳过广告回调 Log.i(TAG, "onAdSkip");
+                            sendHandlerMessages(0);
                         }
-                    }
+
+                        public void onAdShow() { //广告曝光回调
+                            Log.e(TAG, "yky splash ad show success");
+                            if (!aded && ad != null) {
+                                AdHelper.stat(ad.getAd_id(), 1, ad.getAd_type());
+                                aded = true;
+                            }
+                        }
+
+                        public void onAdClick() { //广告点击回调 Log.i(TAG, "onAdClick");
+                            Log.e(TAG, "yky splash ad click");
+                            AdHelper.stat(ad.getAd_id(), 2, ad.getAd_type());
+                        }
+
+                        public void onAdClosed() { //广告关闭回调
+                            Log.i(TAG, "yky splash onAdClosed");
+                            sendHandlerMessages(0);
+                        }
+
+                        public void onAdError(int i, String err) { //广告展示失败回调
+                            Log.e(TAG, "yky splash onAdError err: " + i + " " + err);
+                            //拉取广告错误或超时,直接跳过
+                            sendHandlerMessages(0);
+                        }
+                    });
+                    mSplashAd.show(); //展示开屏广告 }
                 }
-        );
+            }
+        });
     }
 
     //展示优投开屏广告(新增boolean state:false----定值) 重要 mForceGoMain跳转主页 请参照此方法调用,否则可能导致广告展示链路断开 导致收益下降!!!

+ 29 - 26
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -50,8 +50,9 @@ import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.shuyu.gsyvideoplayer.player.PlayerFactory;
 import com.tencent.bugly.Bugly;
 import com.tencent.bugly.beta.Beta;
-import com.tencent.klevin.KleinManager;
-import com.tencent.klevin.base.callback.KleinResponseCallback;
+import com.tencent.klevin.KlevinConfig;
+import com.tencent.klevin.KlevinManager;
+import com.tencent.klevin.listener.InitializationListener;
 import com.tencent.mm.opensdk.openapi.IWXAPI;
 import com.tencent.mm.opensdk.openapi.WXAPIFactory;
 import com.tencent.smtt.export.external.TbsCoreSettings;
@@ -248,34 +249,36 @@ public class SheepApp extends MultiDexApplication {
 
     //初始化游可盈广告
     private void initYKYAd(String appId) {
-        //游可盈广告初始化
-        KleinManager.getInstance().initKleinAdSDK(
-                this,
-                "{\"app_id\":" + Integer.parseInt(appId) + ",\"app_bundle\":\"abc.kfzs.com\",\"app_version\":\"6.3.1\",\"is_debug\":" + BuildConfig.DEBUG + "}",
-                new KleinResponseCallback() {
-                    @Override
-                    public void onSuccess(int code) {
-                        if (BuildConfig.DEBUG)
-                            G.showToast("游可赢广告初始化:init onSuccess : " + code);
-                        //code:KLAdEvent_InitSuccess = 800; // 宿主初始化成功
+        KlevinConfig.Builder builder = new KlevinConfig.Builder()
+                .appId(appId) //【必须】AppId,AndroidManifest.xml 中配置后可不调用
+                .debugMode(true) //打开调试日志,上线前关闭,【可选】
+                .networkType(KlevinConfig.NETWORK_NOTLIMIT);//可下载的网络,【可选】
 
-                    }
+        KlevinManager.init(this, builder.build(), new InitializationListener() {
+            @Override
+            public void onSuccess() {
+                if (BuildConfig.DEBUG)
+                    G.showToast("游可赢广告初始化:init onSuccess ");
+            }
 
-                    @Override
-                    public void onFail(int code) {
-                        if (BuildConfig.DEBUG)
-                            G.showToast("游可赢广告初始化:init onFail : " + code);
-                        //code:KLAdEvent_InitError = 801; // 宿主初始化错误
-                    }
+            @Override
+            public void onError(int i, String s) {
+                if (BuildConfig.DEBUG)
+                    G.showToast("游可赢广告初始化:init onFail : " + i + ":  " + s);
+                //code:KLAdEvent_InitError = 801; // 宿主初始化错误
+            }
 
-                    @Override
-                    public void onEvent(int code) {
-                        // 初始化不会回调
-                        if (BuildConfig.DEBUG)
-                            G.showToast("游可赢广告事件:init onSuccess : " + code);
-                    }
-                });
+            @Override
+            public void onIdentifier(boolean support, String oaid) {
 
+                // support 为 true 时,oaid 返回设备的 oaid。false 时返回为空或错误码
+                /*if (support) {
+                    Log.i(TAG, "oaid=" + oaid);
+                } else {
+                    Log.e(TAG, "not support oaid");
+                }*/
+            }
+        });
     }
 
     //初始化优投广告