Просмотр исходного кода

[修改]修复开屏广告多次加载的问题

zeki лет назад: 5
Родитель
Сommit
3e36ca6319

+ 0 - 2
app/src/main/java/com/sheep/gamegroup/module/ActAdJumper.java

@@ -1,7 +1,5 @@
 package com.sheep.gamegroup.module;
 
-import android.app.Activity;
-
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.view.activity.helper.AdHelper;

+ 3 - 0
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -2351,16 +2351,19 @@ public class CommonUtil {
                         try {
                             List<SheepAd> ads = baseMessage.getDatas(SheepAd.class);
                             if (ads != null && ads.size() > 0) {
+                                Log.d("!!!!!!","拉到广告,闪屏页不为空");
                                 if (action != null) {
                                     action.call(ads.get(0));
                                 }
                             } else {
+                                Log.d("!!!!!!","拉到广告,闪屏页为空");
                                 if (action != null) {
                                     action.call(null);
                                 }
                             }
 
                         } catch (Exception e) {
+                            Log.d("!!!!!!","拉到广告,报了个错"+e.getMessage());
                             e.printStackTrace();
                             if (action != null)
                                 action.call(null);

+ 4 - 7
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -296,12 +296,9 @@ public class Jump2View {
      */
     public void checkOrGoHomePage(final Activity activity) {
         // todo checkOrGoHome
-        CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
-            @Override
-            public void call(UserEntity userEntity) {
-                if (userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
-                    GlideImageLoader.saveAndSetRqImage(null, userEntity.getShareLink(ShareLinkConfig.FACE_TO_FACE), 800);
-                }
+        CommonUtil.getInstance().updateUserInfo(userEntity -> {
+            if (userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
+                GlideImageLoader.saveAndSetRqImage(null, userEntity.getShareLink(ShareLinkConfig.FACE_TO_FACE), 800);
             }
         });
         checkLabel(activity, (baseMessage) -> {
@@ -1581,7 +1578,7 @@ public class Jump2View {
         goLoginView(SheepApp.getInstance().getCurrentActivity(), "other");
     }
 
-    public void gotoGuide(final Activity activity) {
+    public void gotoGuideOrMain(final Activity activity) {
         if (SysAppUtil.isNewSmallSheep()) {
             Intent intent = new Intent(activity, ActGuide.class);
             activity.startActivity(intent);

+ 2 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/MiddleSchemeAct.java

@@ -8,6 +8,7 @@ import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.text.TextUtils;
 
+import android.util.Log;
 import com.alibaba.fastjson.JSONObject;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.sheep.gamegroup.model.api.BaseMessageConverter;
@@ -259,6 +260,7 @@ public class MiddleSchemeAct extends Activity {
                 Jump2View.getInstance().goH5Game(SheepApp.getInstance(), json);
                 break;
             case "clickad":
+                Log.d("!!!!!!","点了个广告");
                 Intent intent = new Intent(SheepApp.getInstance(), ActAdJumper.class);
                 intent.putExtra("ad_id", Integer.parseInt(json));
                 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

+ 22 - 15
app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java

@@ -39,10 +39,8 @@ 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;
@@ -50,7 +48,6 @@ 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.*;
 
@@ -91,6 +88,7 @@ public class SplashAct extends BaseActivity {
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        Log.d("!!!!!!", "初始化Splash");
         hideSystemStatusBar();
         hideSystemNavBar();
         try {
@@ -105,24 +103,28 @@ public class SplashAct extends BaseActivity {
             ApiJSONUtil.postUserDeviceLog();
         }
         if (requestPermissions()) {
+            Log.d("!!!!!!", "有权限,去init");
             init();
         }
     }
 
     private void init() {
         if (SysAppUtil.isNotSupport(this)) return;
+        Log.d("!!!!!!", "开始init");
         SheepApp.getInstance().getNetComponent().getApiService().checkUserFirst()
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .onErrorResumeNext(new Observable<BaseMessage>() {
                     @Override
                     protected void subscribeActual(Observer<? super BaseMessage> observer) {
+                        Log.d("!!!!!!", "访问UserFirst出错");
                         //访问出错时,认为不是新设备
                         BaseMessage defaultBaseMessage = new BaseMessage();
                         defaultBaseMessage.setData(false);
                         observer.onNext(defaultBaseMessage);
                     }
                 })
+                .doOnSubscribe(disposable -> Log.d("!!!!!!", "开始CheckUserFirst"))
                 .doOnNext(baseMessage -> {
                     //是否为新设备
                     boolean isNewSmallSheep = baseMessage.getData(Boolean.class);
@@ -132,17 +134,22 @@ public class SplashAct extends BaseActivity {
                         });//只更新,不加载
                         sendHandlerMessages(2000);
                     } else {
+                        Log.d("!!!!!!", "开始拉广告");
                         //拉一次广告,并加载
                         fetchAdvertisement(() -> {
                             if (ad != null) {
+                                Log.d("!!!!!!", "拉到广告,不为空");
                                 if (ad.getAd_type() == AD_TYPE_SHEEP) {
+                                    Log.d("!!!!!!", "进入自己的广告");
                                     //是自己的广告,展示自己的广告
                                     loadSheepAdvertising();
                                 } else {
+                                    Log.d("!!!!!!", "进入SDK的广告");
                                     //SDK的广告,展示SDK的广告,并拉取一次广告并保存
                                     initSdkAdvertising(ad.getAd_type());
                                 }
                             } else {
+                                Log.d("!!!!!!", "拉到广告,为空");
                                 sendHandlerMessages(2000);
                             }
                         });
@@ -156,9 +163,11 @@ public class SplashAct extends BaseActivity {
      */
     private void initSdkAdvertising(int adType) {
         if (adType == AD_SPLASH_TYPE_YKY) {
+            Log.d("!!!!!!", "加载游可盈广告");
             //游可盈
             launchYKYSplash();
         } else if (adType == AD_SPLASH_TYPE_YT) {
+            Log.d("!!!!!!", "加载优投告");
             //优投
             launchYTSplash();
         }
@@ -216,7 +225,8 @@ public class SplashAct extends BaseActivity {
 
     //展示优投开屏广告(新增boolean state:false----定值) 重要 mForceGoMain跳转主页 请参照此方法调用,否则可能导致广告展示链路断开 导致收益下降!!!
     private void launchYTSplash() {
-        flSplashYT.setVisibility(View.VISIBLE);
+        if (flSplashYT != null)
+            flSplashYT.setVisibility(View.VISIBLE);
         new SplashEngine(SplashAct.this, false, new SplashEngine.SplashAdCallBack() {
             @Override
             public void onSplashClick() {
@@ -246,7 +256,7 @@ public class SplashAct extends BaseActivity {
                     aded = true;
                 }
                 //mHasLoaded = true;
-                mHandler.removeCallbacksAndMessages(null);
+                //mHandler.removeCallbacksAndMessages(null);
             }
 
             @Override
@@ -281,6 +291,7 @@ public class SplashAct extends BaseActivity {
     //从服务端拉取广告信息
     private void fetchAdvertisement(Action action) {
         CommonUtil.getInstance().refreshAds((ret, list) -> {
+            Log.d("!!!!!!", "拉了一次广告");
             if (ret) {
                 ad = DDProviderHelper.getInstance().getSheepAd(SheepAd.FORM_SPLASH);
                 try {
@@ -363,7 +374,7 @@ public class SplashAct extends BaseActivity {
     };
 
     private void gotoNext() {
-        SkinUtil.changeSkin(s -> Jump2View.getInstance().gotoGuide(this));
+        SkinUtil.changeSkin(s -> Jump2View.getInstance().gotoGuideOrMain(this));
     }
 
     @Override
@@ -433,11 +444,7 @@ public class SplashAct extends BaseActivity {
         if (permissions.size() > 0) {
             String[] permissionArrays = new String[permissions.size()];
             permissionArrays = permissions.toArray(permissionArrays);
-            ActivityCompat.requestPermissions(
-                    this,
-                    permissionArrays,
-                    1111
-            );
+            ActivityCompat.requestPermissions(this, permissionArrays, 1111);
         }
         return result;
     }
@@ -445,8 +452,10 @@ public class SplashAct extends BaseActivity {
     //权限获取后的回调
     @Override
     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
-        if (requestPermissions()) init();
-
+        if(requestCode == 1111 && requestPermissions()){
+            Log.d("!!!!!!", "权限回调,requestCode" + requestCode);
+            init();
+        }
     }
 
     @Override
@@ -462,8 +471,6 @@ public class SplashAct extends BaseActivity {
             next();
         }
         mForceGoMain = true;
-
-
     }
 
     @Override

+ 2 - 9
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -7,7 +7,6 @@ import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.StrictMode;
-import android.support.annotation.RequiresApi;
 import android.support.multidex.MultiDex;
 import android.support.multidex.MultiDexApplication;
 import android.text.TextUtils;
@@ -58,14 +57,10 @@ import com.tencent.smtt.sdk.WebView;
 import com.umeng.commonsdk.UMConfigure;
 import com.umeng.socialize.PlatformConfig;
 import com.youmi.android.offer.YmConfig;
-import io.reactivex.ObservableSource;
 import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.functions.Function;
 import io.reactivex.schedulers.Schedulers;
 import org.xutils.x;
-
 import java.lang.ref.WeakReference;
-
 import cn.jpush.android.api.JPushInterface;
 import io.reactivex.plugins.RxJavaPlugins;
 import ren.yale.android.cachewebviewlib.WebViewCacheInterceptor;
@@ -73,8 +68,6 @@ import ren.yale.android.cachewebviewlib.WebViewCacheInterceptorInst;
 import ren.yale.android.cachewebviewlib.config.CacheExtensionConfig;
 import tv.danmaku.ijk.media.exo2.Exo2PlayerManager;
 
-import static com.sheep.gamegroup.util.AppUtil.getCurProcessName;
-
 /**
  * Created by kemllor on 2017/12/21.
  */
@@ -190,10 +183,10 @@ public class SheepApp extends MultiDexApplication {
     public void onCreate() {
 //        configStrictMode();
         super.onCreate();
+        Log.d("!!!!!!","初始化APP");
         SharedPreferencesUtil.getInstance(this, "cache");
         mSheepApp = this;
         connectAddress = ConnectAddress.sheep.getDefaultConnectAddress();
-
         boolean isNotSupport = Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR1;
         ContextHolder.setContext(this);
 
@@ -216,11 +209,11 @@ public class SheepApp extends MultiDexApplication {
         /*Rx兜底策略*/
         RxJavaPlugins.setErrorHandler(throwable -> Log.e("RxThrowable", throwable.getMessage()));
 
-
         if (AppUtil.isMainProcess(this)) {
             /*三方广告SDK接入,点客、游可盈、优投等*/
             initThirdAd();
         }
+
     }
 
     /**

+ 1 - 0
app/src/main/res/layout/fgt_personacenter_item_top.xml

@@ -156,6 +156,7 @@
         <RelativeLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content">
+
             <RelativeLayout
                     android:id="@+id/vip_layout"
                     android:layout_marginStart="16dp"