瀏覽代碼

[修改]多进程导致微信登录失败修复

zeki 5 年之前
父節點
當前提交
9d66d12f45

+ 1 - 1
app/src/main/java/com/kfzs/duanduan/utils/ApkUtils.java

@@ -96,7 +96,7 @@ public class ApkUtils {
      * @param apkPath apkPath
      */
     public static final void installApk(final Context context, final String apkPath) {
-        final ProgressDialog progress = new ProgressDialog(SheepApp.getInstance().getCurrentActivity());
+        final ProgressDialog progress = new ProgressDialog(context);
         progress.setMessage("正在检测安装程序的安全性,请稍候");
         progress.show();
         final ApkFileInfo apkFileInfo = new ApkFileInfo();

+ 0 - 3
app/src/main/java/com/sheep/gamegroup/di/modules/NetModule.java

@@ -1,13 +1,10 @@
 package com.sheep.gamegroup.di.modules;
 
-import android.util.Log;
-
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.api.StringConverterFactory;
 import com.sheep.gamegroup.model.cookie.CookieManager;
 import com.sheep.gamegroup.model.util.AddPublicParamsIntercept;
 import com.sheep.gamegroup.model.util.CacheInterceptor;
-import com.sheep.gamegroup.model.util.EntityUtils;
 import com.sheep.gamegroup.model.util.LogInterceptor;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.jiuyan.samllsheep.BuildConfig;

+ 6 - 4
app/src/main/java/com/sheep/gamegroup/model/entity/ApkFileInfo.java

@@ -3,15 +3,11 @@ package com.sheep.gamegroup.model.entity;
 import android.content.Context;
 import android.content.pm.PackageInfo;
 import android.text.TextUtils;
-
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.util.Md5Util;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
-
 import java.io.File;
 
-import rx.functions.Action1;
-
 /**
  * Created by realicing on 2018/11/9.
  * realicing@sina.com
@@ -29,12 +25,14 @@ public class ApkFileInfo {
     }
 
     private File file;
+
     public boolean existsPath() {
         file = new File(path);
         return file.exists();
     }
 
     private String packageName;
+
     public ApkFileInfo initPackageNameFromPath(Context context) {
         packageName = ApkUtils.getUnInstallApkPackageName(context, path);
         return this;
@@ -45,6 +43,7 @@ public class ApkFileInfo {
     }
 
     private boolean isAppInstalled;
+
     public boolean checkInstall(Context context) {
         isAppInstalled = PackageUtil.isAppInstalled(context, packageName);
         return isAppInstalled;
@@ -53,6 +52,7 @@ public class ApkFileInfo {
     public boolean isAppInstalled() {
         return isAppInstalled;
     }
+
     //是否 文件与安装的应用是否m签名d5相同
     private boolean isEqualsSignMd5;
 
@@ -62,6 +62,7 @@ public class ApkFileInfo {
 
     private PackageInfo appPackageInfo;
     private PackageInfo filePackageInfo;
+
     //检查文件与安装的应用是否m签名d5相同
     public boolean checkApkAndFileSignMd5() {
         String appSignMd5 = ApkUtils.getApkSignMd5StrByPackageName(packageName, packageInfo -> appPackageInfo = packageInfo);
@@ -70,6 +71,7 @@ public class ApkFileInfo {
         isEqualsSignMd5 = TextUtils.equals(fileSignMd5, appSignMd5);
         return isEqualsSignMd5;
     }
+
     //检查文件与安装的应用是否md5相同
     public boolean checkApkAndFileMd5() {
         return Md5Util.checkMD5(new File(appPackageInfo.applicationInfo.sourceDir), file);

+ 3 - 6
app/src/main/java/com/sheep/gamegroup/module/login/fragments/SignInFgt.java

@@ -23,16 +23,13 @@ import com.sheep.gamegroup.greendao.DDProviderHelper;
 import com.sheep.gamegroup.greendao.download.Account;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.LoginEntity;
+import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.module.login.controller.LoginController;
-import com.sheep.gamegroup.util.ChannelContent;
-import com.sheep.gamegroup.util.DataUtil;
-import com.sheep.gamegroup.util.GlideImageLoader;
-import com.sheep.gamegroup.util.PreferenceUtils;
-import com.sheep.gamegroup.util.StringUtils;
-import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.util.*;
 import com.sheep.gamegroup.util.filter.InputFilterUtil;
 import com.sheep.gamegroup.view.customview.CountDownButton;
+import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;

+ 3 - 3
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWebX5.java

@@ -215,9 +215,9 @@ public class FgtWebX5 extends BaseFgtWebX5 {
         // webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH);
 //        webSetting.setCacheMode(NetUtil.CAN_CONNECT_SERVICE ? WebSettings.LOAD_DEFAULT : WebSettings.LOAD_CACHE_ELSE_NETWORK);
 
-        if (TestUtil.isDev()) {
+        /*if (TestUtil.isDev()) {
             webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);
-        }
+        }*/
 
         // this.getSettingsExtension().setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);//extension
         // settings 的设计
@@ -242,7 +242,7 @@ public class FgtWebX5 extends BaseFgtWebX5 {
     public void onDetach() {
         if (mWebView != null) {
             try {
-                if (getWebUrl().contains(KEYWORD_XXL)) {
+                if (getWebUrl() != null && getWebUrl().contains(KEYWORD_XXL)) {
                     getGameUserInfo(false);
                 }
                 if (mWebView.getParent() != null) {

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

@@ -6,8 +6,6 @@ import android.content.Intent;
 import android.media.projection.MediaProjectionManager;
 import android.os.Bundle;
 import android.text.TextUtils;
-import android.util.Log;
-
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
@@ -23,7 +21,6 @@ import com.sheep.jiuyan.samllsheep.service.FloatShotScreenService;
 import com.sheep.jiuyan.samllsheep.utils.FileUtil;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
-
 import org.afinal.simplecache.ACache;
 import org.afinal.simplecache.ApiKey;
 

+ 5 - 3
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -961,12 +961,13 @@ public class Jump2View {
             return;
         }
         Intent intent;
-        if (SheepApp.getInstance().shouldOpenWebInNewProcess) {
-            //intent = new Intent(context, ActWebX5.class);
+        intent = new Intent(context, ActWebX5.class);
+        /*if (SheepApp.getInstance().shouldOpenWebInNewProcess) {
+            //
             intent = new Intent(context, ActWebX5NewProcess.class);
         } else {
             intent = new Intent(context, ActWebX5.class);
-        }
+        }*/
 
         intent.putExtra(WebParams.class.getSimpleName(), webParams);
         if (needNewTask) {
@@ -1045,6 +1046,7 @@ public class Jump2View {
     public void goH5Game(Context context, String url) {
         Uri uri = Uri.parse(url);
         String host = uri.getHost();
+        //FgtWebX5.saveWXToken(context, host, "", "dwfewdf");
         WebParams wp = new WebParams(url, "游戏");
         wp.setNeedJsInteract(true);
 //        wp.setJsUrl(Config.SMALL_STATION_URL + Config.STATION_SMALL_SHEEP_H5GAME + "/bridge.js");

+ 12 - 15
app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java

@@ -208,21 +208,18 @@ public class KFZSJs {
 
     @JavascriptInterface
     public void gotoRecharge(final boolean forResult) {
-        activity.runOnUiThread(new Runnable() {
-            @Override
-            public void run() {
-                String url = iWeb.getWebUrl();
-                int start = url.indexOf("authorization=");
-                if (start < 0) {
-                    url = iWeb.getFirstUrl();
-                    start = url.indexOf("authorization=");
-                }
-                String token = url.substring(url.indexOf("=", start) + 1, url.indexOf("&", start));
-                if (forResult) {
-                    Jump2View.getInstance().goRechargeActForResult(activity, "内部H5", token);//进入充值绵羊币界面
-                } else {
-                    Jump2View.getInstance().goRechargeAct(activity, "内部H5", token);//进入充值绵羊币界面
-                }
+        activity.runOnUiThread(() -> {
+            String url = iWeb.getWebUrl();
+            int start = url.indexOf("authorization=");
+            if (start < 0) {
+                url = iWeb.getFirstUrl();
+                start = url.indexOf("authorization=");
+            }
+            String token = url.substring(url.indexOf("=", start) + 1, url.indexOf("&", start));
+            if (forResult) {
+                Jump2View.getInstance().goRechargeActForResult(activity, "内部H5", token);//进入充值绵羊币界面
+            } else {
+                Jump2View.getInstance().goRechargeAct(activity, "内部H5", token);//进入充值绵羊币界面
             }
         });
     }

+ 98 - 83
app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java

@@ -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.*;
 
@@ -57,6 +60,9 @@ import static com.tencent.klevin.base.okhttp.ErrorCode.*;
 
 public class SplashAct extends BaseActivity {
 
+    public static boolean YTHasInit = false;
+    public static boolean YKYHasInit = false;
+
     @Override
     protected void initSlidr() {
         // doNothing
@@ -91,6 +97,7 @@ public class SplashAct extends BaseActivity {
         Log.d("!!!!!!", "初始化Splash");
         hideSystemStatusBar();
         hideSystemNavBar();
+
         try {
             if (!isTaskRoot()) {
                 LogUtil.println("SheepApp SplashAct isTaskRoot");
@@ -176,103 +183,111 @@ public class SplashAct extends BaseActivity {
 
     //展示游可盈广告
     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) {
-                        if (BuildConfig.DEBUG)
-                            Log.d("!!!!!Success", String.valueOf(i));
-                    }
+        if (YKYHasInit) {
+            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) {
+                            if (BuildConfig.DEBUG)
+                                Log.d("!!!!!Success", String.valueOf(i));
+                        }
 
-                    @Override
-                    public void onFail(int i) {
-                        if (BuildConfig.DEBUG)
-                            Log.d("!!!!!Fail", String.valueOf(i));
-                        //拉取广告错误或超时,直接跳过
-                        sendHandlerMessages(0);
-                    }
+                        @Override
+                        public void onFail(int i) {
+                            if (BuildConfig.DEBUG)
+                                Log.d("!!!!!Fail", String.valueOf(i));
+                            //拉取广告错误或超时,直接跳过
+                            sendHandlerMessages(0);
+                        }
 
-                    @Override
-                    public void onEvent(int i) {
-                        if (BuildConfig.DEBUG)
-                            Log.d("!!!!!Event", String.valueOf(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;
+                        @Override
+                        public void onEvent(int i) {
+                            if (BuildConfig.DEBUG)
+                                Log.d("!!!!!Event", String.valueOf(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;
+                            }
                         }
                     }
-                }
-        );
+            );
+        } else {
+            sendHandlerMessages(0);
+        }
+
     }
 
     //展示优投开屏广告(新增boolean state:false----定值) 重要 mForceGoMain跳转主页 请参照此方法调用,否则可能导致广告展示链路断开 导致收益下降!!!
     private void launchYTSplash() {
-        if (flSplashYT != null)
-            flSplashYT.setVisibility(View.VISIBLE);
-        new SplashEngine(SplashAct.this, false, new SplashEngine.SplashAdCallBack() {
-            @Override
-            public void onSplashClick() {
-                Log.i("jasmine-ad", "点击广告");
-                AdHelper.stat(ad.getAd_id(), 2, ad.getAd_type());
-                //sendHandlerMessages(0);
-            }
-
-            @Override
-            public void onSplashDismissed() {
-                Log.i("jasmine-ad", "广告关闭");
-                next();
-            }
+        if (YTHasInit) {
+            if (flSplashYT != null)
+                flSplashYT.setVisibility(View.VISIBLE);
+            new SplashEngine(SplashAct.this, false, new SplashEngine.SplashAdCallBack() {
+                @Override
+                public void onSplashClick() {
+                    Log.i("jasmine-ad", "点击广告");
+                    AdHelper.stat(ad.getAd_id(), 2, ad.getAd_type());
+                    //sendHandlerMessages(0);
+                }
 
-            @Override
-            public void onSplashError(String err, boolean isTimeout) {
-                Log.i("jasmine-ad", "展示广告异常:" + err);
-                next();
-            }
+                @Override
+                public void onSplashDismissed() {
+                    Log.i("jasmine-ad", "广告关闭");
+                    next();
+                }
 
-            @Override
-            public void onSplashShow() {
-                Log.i("jasmine-ad", "展示广告");
-                yt_splash_skip_view.setVisibility(View.VISIBLE);
-                if (!aded && ad != null) {
-                    AdHelper.stat(ad.getAd_id(), 1, ad.getAd_type());
-                    aded = true;
+                @Override
+                public void onSplashError(String err, boolean isTimeout) {
+                    Log.i("jasmine-ad", "展示广告异常:" + err);
+                    next();
                 }
-                //mHasLoaded = true;
-                //mHandler.removeCallbacksAndMessages(null);
-            }
 
-            @Override
-            public void onSplashPresent() {
-                Log.i("jasmine-ad", "广告数据加载");
-                if (splash_image_view != null)
-                    splash_image_view.setVisibility(View.GONE); // 广告展示后一定要把预设的开屏图片隐藏起来
-            }
+                @Override
+                public void onSplashShow() {
+                    Log.i("jasmine-ad", "展示广告");
+                    yt_splash_skip_view.setVisibility(View.VISIBLE);
+                    if (!aded && ad != null) {
+                        AdHelper.stat(ad.getAd_id(), 1, ad.getAd_type());
+                        aded = true;
+                    }
+                    //mHasLoaded = true;
+                    //mHandler.removeCallbacksAndMessages(null);
+                }
 
-            @Override
-            public void onSplashLoad() {
-                Log.i("Jasmine-ad", "拉取广告");
-            }
+                @Override
+                public void onSplashPresent() {
+                    Log.i("jasmine-ad", "广告数据加载");
+                    if (splash_image_view != null)
+                        splash_image_view.setVisibility(View.GONE); // 广告展示后一定要把预设的开屏图片隐藏起来
+                }
 
-        }).launchSplash(flSplashYT, 5 * 1000);
+                @Override
+                public void onSplashLoad() {
+                    Log.i("Jasmine-ad", "拉取广告");
+                }
 
+            }).launchSplash(flSplashYT, 5 * 1000);
+        } else {
+            sendHandlerMessages(0);
+        }
     }
 
     /**
@@ -452,7 +467,7 @@ public class SplashAct extends BaseActivity {
     //权限获取后的回调
     @Override
     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
-        if(requestCode == 1111 && requestPermissions()){
+        if (requestCode == 1111 && requestPermissions()) {
             Log.d("!!!!!!", "权限回调,requestCode" + requestCode);
             init();
         }

+ 22 - 14
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -60,7 +60,9 @@ import com.youmi.android.offer.YmConfig;
 import io.reactivex.android.schedulers.AndroidSchedulers;
 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;
@@ -183,7 +185,7 @@ public class SheepApp extends MultiDexApplication {
     public void onCreate() {
 //        configStrictMode();
         super.onCreate();
-        Log.d("!!!!!!","初始化APP");
+        Log.d("!!!!!!", "初始化APP");
         SharedPreferencesUtil.getInstance(this, "cache");
         mSheepApp = this;
         connectAddress = ConnectAddress.sheep.getDefaultConnectAddress();
@@ -283,7 +285,7 @@ public class SheepApp extends MultiDexApplication {
 
     }
 
-    //加载游可盈广告
+    //初始化游可盈广告
     private void initYKYAd(String appId) {
         //游可盈广告初始化
         KleinManager.getInstance().initKleinAdSDK(
@@ -292,6 +294,7 @@ public class SheepApp extends MultiDexApplication {
                 new KleinResponseCallback() {
                     @Override
                     public void onSuccess(int code) {
+                        SplashAct.YKYHasInit = true;
                         if (BuildConfig.DEBUG)
                             G.showToast("游可赢广告初始化:init onSuccess : " + code);
                         //code:KLAdEvent_InitSuccess = 800; // 宿主初始化成功
@@ -315,7 +318,7 @@ public class SheepApp extends MultiDexApplication {
 
     }
 
-    //加载优投广告
+    //初始化优投广告
     private void initYTAd(String appId, String adId) {
         JasmineEngine.getInstance(this).init(
                 appId,
@@ -323,6 +326,7 @@ public class SheepApp extends MultiDexApplication {
                 new JasmineEngine.InitCallBack() {
                     @Override
                     public void initSuccess() {
+                        SplashAct.YTHasInit = true;
                         LogUtils2.info("initSuccess");
                     }
 
@@ -637,18 +641,22 @@ public class SheepApp extends MultiDexApplication {
 
         @Override
         public void onActivityStarted(Activity activity) {
-            mActivityCount++;
-            if (!UMConfigUtils.isNotNeedAct(activity))
-                UMConfigUtils.onPageStart(activity);
-            if (mActivityCount > 0) {
-                if (!notStop) {
-                    notStop = true;
-                    LogUtil.println("SheepApp onActivityStarted", activity.getClass().getSimpleName(), mActivityCount);
-                    if (!UMConfigUtils.isNotNeedAct(activity))
-                        UMConfigUtils.Event.SHEEP_STARTED.onEvent();
-                    Jump2View.getInstance().startListenerShotService(activity);
-                    Jump2View.getInstance().startShotScreenFloat(activity, false);
+            try {
+                mActivityCount++;
+                if (!UMConfigUtils.isNotNeedAct(activity))
+                    UMConfigUtils.onPageStart(activity);
+                if (mActivityCount > 0) {
+                    if (!notStop) {
+                        notStop = true;
+                        LogUtil.println("SheepApp onActivityStarted", activity.getClass().getSimpleName(), mActivityCount);
+                        if (!UMConfigUtils.isNotNeedAct(activity))
+                            UMConfigUtils.Event.SHEEP_STARTED.onEvent();
+                        Jump2View.getInstance().startListenerShotService(activity);
+                        Jump2View.getInstance().startShotScreenFloat(activity, false);
+                    }
                 }
+            } catch (Exception e) {
+                e.printStackTrace();
             }
         }
 

+ 1 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/service/DownloadService.java

@@ -213,7 +213,7 @@ public class DownloadService extends Service {
                                     EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.DOWNLOAD_COMPLETE).setData(downLoadInfo));
                                 }
                                 ApkUtils.installApk(getApplicationContext(), task.getFile().getAbsolutePath());
-                                DownloadNotification.progress(task.getUrl(), -1l);
+                                DownloadNotification.progress(task.getUrl(), -1L);
                                 checkMd(downLoadInfo, task);
                             }
                             break;