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

v1.0.0开发:SdkManager重构

#Suyghur 3 лет назад
Родитель
Сommit
23acee109d

+ 2 - 3
library_xinrui/src/main/java/com/yyrh/core/entity/bean/InitBean.java

@@ -29,10 +29,9 @@ public class InitBean {
         if (TextUtils.isEmpty(json)) {
             return null;
         }
-        InitBean bean = null;
+        InitBean bean = new InitBean();
         JSONObject jsonObject = null;
         try {
-            bean = new InitBean();
             jsonObject = new JSONObject(json);
             if (JsonUtils.hasJsonKey(jsonObject, "sdk_login")) {
                 bean.sdkLogin = jsonObject.getInt("sdk_login");
@@ -66,7 +65,7 @@ public class InitBean {
         } catch (JSONException e) {
             e.printStackTrace();
         }
-        return null;
+        return bean;
     }
 
 

+ 1 - 0
library_xinrui/src/main/java/com/yyrh/factory/ChannelSdkOperation.java

@@ -9,6 +9,7 @@ import android.os.Bundle;
 
 import com.yyrh.constant.RoleInfo;
 import com.yyrh.constant.SDKSettings;
+import com.yyrh.core.internal.IImplCallback;
 import com.yyrh.sdk.SDKEntry;
 import com.yyrh.sdk.YyrhSdkManager;
 import com.yyrh.sdk.callback.InitCallback;

+ 6 - 5
library_xinrui/src/main/java/com/yyrh/factory/ISdkOperation.java

@@ -8,6 +8,7 @@ import android.content.res.Configuration;
 import android.os.Bundle;
 
 import com.yyrh.constant.RoleInfo;
+import com.yyrh.core.internal.IImplCallback;
 import com.yyrh.sdk.callback.InitCallback;
 import com.yyrh.sdk.callback.RealNameMsgCallback;
 import com.yythird.base.ChannelSdkCallback;
@@ -47,18 +48,18 @@ public interface ISdkOperation {
 
     void sdkOnRestart(Activity activity);
 
-    void sdkOnNewIntent(Activity acitivty, Intent intent);
-
     void sdkOnStop(Activity activity);
 
-    void onConfigurationChanged(Configuration newConfigs);
-
     void sdkOnDestroy(Activity activity);
 
-    void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults);
+    void sdkOnNewIntent(Activity activity, Intent intent);
 
     void onActivityResult(Activity ac, int requestCode, int resultCode, Intent data);
 
+    void onConfigurationChanged(Configuration newConfigs);
+
+    void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults);
+
     void onWindowFocusChanged(Activity activity, boolean hasFocus);
 
 }

+ 89 - 20
library_xinrui/src/main/java/com/yyrh/factory/SdkManager.java

@@ -15,6 +15,7 @@ import android.os.Bundle;
 import android.support.v4.app.ActivityCompat;
 import android.text.TextUtils;
 
+import com.dolin.zap.Zap;
 import com.yyrh.constant.RoleInfo;
 import com.yyrh.core.SDKDrive;
 import com.yyrh.core.entity.ResultInfo;
@@ -54,14 +55,14 @@ public class SdkManager {
     private long clickLoginTime = 0L;
 
     public InitBean initBean = null;
-    public String channelTag="";
+    public String channelTag = "";
     private static boolean hasReadIds = false;
     private static String deviceIds = "";
 
 
-    private volatile AtomicInteger timeCount = new AtomicInteger(0);
+    private final AtomicInteger timeCount = new AtomicInteger(0);
 
-    private final SdkCallback mSdkCallback = new SdkCallback() {
+    public final SdkCallback sdkCallback = new SdkCallback() {
         @Override
         public void onShowPolicyAgree() {
 
@@ -187,7 +188,6 @@ public class SdkManager {
     };
 
     private SdkManager() {
-        operation = SdkFactory.GetSdk();
     }
 
     public static SdkManager defaultManager() {
@@ -215,12 +215,12 @@ public class SdkManager {
 
     public void initApplication(Application application) {
         MMKVUtils.getInstance().init(application);
-        this.channelTag= FileUtils.readAssetsFileByKey(application,"YyrhParam.cnf","CHANNELTAG");
+        this.channelTag = FileUtils.readAssetsFileByKey(application, "YyrhParam.cnf", "CHANNELTAG");
     }
 
     public void initSdk(final Activity activity, final InitCallback callback, boolean isDebug) {
         this.initCallback = callback;
-        ChannelSDK.getInstance().SDKInit(activity, mSdkCallback);
+        ChannelSDK.getInstance().SDKInit(activity, sdkCallback);
         initDeviceInfo(activity);
 
         if (!hasReadIds) {
@@ -258,7 +258,7 @@ public class SdkManager {
         }
     }
 
-    public void initDeviceInfo(Activity activity) {
+    private void initDeviceInfo(Activity activity) {
         if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) {
             SDKDrive.getInstance().setParam("ifa_type", "2");
             ChannelSDK.getInstance().SDKGetOaid();
@@ -273,7 +273,7 @@ public class SdkManager {
                 ids = DeviceInfoUtils.getImei(activity);
                 SDKDrive.getInstance().setParam("ifa_type", "1");
             }
-            mSdkCallback.onGetOaidCallback(true, ids);
+            sdkCallback.onGetOaidCallback(true, ids);
         }
     }
 
@@ -284,6 +284,7 @@ public class SdkManager {
                 if (resultInfo.code == 1) {
                     // 初始化成功
                     initBean = InitBean.toBean(resultInfo.data);
+                    initSdkOperation();
                     callback.onInitSuccess("sdk初始化成功");
                 } else {
                     if (TextUtils.isEmpty(resultInfo.msg)) {
@@ -296,7 +297,18 @@ public class SdkManager {
         });
     }
 
+    private void initSdkOperation() {
+        if (initBean.sdkLogin == 1 && !channelTag.equals("YYRHSDK")) {
+            this.operation = new ChannelSdkOperation();
+        } else {
+            this.operation = new YyrhSdkOperation();
+        }
+    }
+
     public void login(Activity activity) {
+        if (operation == null) {
+            return;
+        }
         if (System.currentTimeMillis() - clickLoginTime < CLICK_INTERVAL) {
             YYLog.i("调用登录接口太频繁,拦截此次操作");
             return;
@@ -306,19 +318,28 @@ public class SdkManager {
     }
 
     public void uploadRoleInfo(String type, Activity activity, RoleInfo roleInfo) {
+        if (operation == null) {
+            return;
+        }
         operation.uploadRoleInfo(type, activity, roleInfo);
+
     }
 
     public void reportAdEvent(String event, JSONObject json) {
+        if (operation == null) {
+            return;
+        }
         operation.reportAdEvent(event, json);
     }
 
     public void pay(Activity activity, HashMap<String, Object> map) {
+        if (operation == null) {
+            return;
+        }
         operation.pay(activity, map);
     }
 
     public void forcePay(final Activity activity, HashMap<String, Object> map) {
-
         NetRequestApi.payOrderInit(PAYMENTWAY, map, activity, new PayOrderCallback() {
             @Override
             public void onPaySuccess(HashMap<String, Object> map) {
@@ -334,18 +355,30 @@ public class SdkManager {
     }
 
     public void exit(Activity activity) {
+        if (operation == null) {
+            return;
+        }
         operation.exit(activity);
     }
 
     public void logOut() {
+        if (operation == null) {
+            return;
+        }
         operation.logOut();
     }
 
     public void getRealNameInfo(Activity activity, RealNameMsgCallback realNameMsgCallback) {
+        if (operation == null) {
+            return;
+        }
         operation.getRealNameInfo(activity, realNameMsgCallback);
     }
 
     public void setSDKLogoutListener(Activity ac, ChannelSdkCallback sdkCallback) {
+        if (operation == null) {
+            return;
+        }
         operation.setSDKLogoutListener(ac, sdkCallback);
     }
 
@@ -354,53 +387,89 @@ public class SdkManager {
      * 生命周期
      */
     public void sdkOnStart(Activity activity) {
+        if (operation == null) {
+            return;
+        }
         operation.sdkOnStart(activity);
     }
 
     public void sdkOnCreate(Activity activity, Bundle savedInstanceState) {
+        if (operation == null) {
+            return;
+        }
         operation.sdkOnCreate(activity, savedInstanceState);
     }
 
     public void sdkOnPause(Activity activity) {
+        if (operation == null) {
+            return;
+        }
         operation.sdkOnPause(activity);
     }
 
     public void sdkOnResume(Activity activity) {
+        if (operation == null) {
+            return;
+        }
         operation.sdkOnResume(activity);
     }
 
     public void sdkOnRestart(Activity activity) {
+        if (operation == null) {
+            return;
+        }
         operation.sdkOnRestart(activity);
     }
 
-    public void sdkOnNewIntent(Activity acitivty, Intent intent) {
-        operation.sdkOnNewIntent(acitivty, intent);
-    }
-
     public void sdkOnStop(Activity activity) {
+        if (operation == null) {
+            return;
+        }
         operation.sdkOnStop(activity);
     }
 
-    public void onConfigurationChanged(Configuration newConfigs) {
-        operation.onConfigurationChanged(newConfigs);
-    }
 
     public void sdkOnDestroy(Activity activity) {
+        Zap.recycle();
+        if (operation == null) {
+            return;
+        }
         operation.sdkOnDestroy(activity);
     }
 
 
-    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
-        operation.onRequestPermissionsResult(requestCode, permissions, grantResults);
+    public void sdkOnNewIntent(Activity activity, Intent intent) {
+        if (operation == null) {
+            return;
+        }
+        operation.sdkOnNewIntent(activity, intent);
     }
 
     public void onActivityResult(Activity ac, int requestCode, int resultCode, Intent data) {
+        if (operation == null) {
+            return;
+        }
         operation.onActivityResult(ac, requestCode, resultCode, data);
     }
 
-    public void onWindowFocusChanged(Activity activity, boolean hasFocus) {
-        operation.onWindowFocusChanged(activity, hasFocus);
+    public void onConfigurationChanged(Configuration newConfigs) {
+        if (operation == null) {
+            return;
+        }
+        operation.onConfigurationChanged(newConfigs);
     }
 
+    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+        if (operation == null) {
+            return;
+        }
+        operation.onRequestPermissionsResult(requestCode, permissions, grantResults);
+    }
 
+    public void onWindowFocusChanged(Activity activity, boolean hasFocus) {
+        if (operation == null) {
+            return;
+        }
+        operation.onWindowFocusChanged(activity, hasFocus);
+    }
 }

+ 19 - 10
library_xinrui/src/main/java/com/yyrh/factory/YyrhSdkOperation.java

@@ -5,7 +5,10 @@ import android.content.Intent;
 import android.content.res.Configuration;
 import android.os.Bundle;
 
+import com.dolin.zap.Zap;
 import com.yyrh.constant.RoleInfo;
+import com.yyrh.core.impl.login.LoginActivity;
+import com.yyrh.core.internal.IImplCallback;
 import com.yyrh.sdk.SDKEntry;
 import com.yyrh.sdk.YyrhSdkManager;
 import com.yyrh.sdk.callback.RealNameMsgCallback;
@@ -17,14 +20,22 @@ import java.util.HashMap;
 
 public class YyrhSdkOperation implements ISdkOperation {
 
-
     public YyrhSdkOperation() {
     }
 
 
     @Override
     public void login(Activity activity) {
-        YyrhSdkManager.defaultManager().yyrhLogin(activity);
+        LoginActivity.start(activity, false, false, new IImplCallback() {
+            @Override
+            public void onResult(int code, String result) {
+                if (code == 1) {
+                    SdkManager.defaultManager().sdkCallback.onLoginSuccess("");
+                } else {
+                    SdkManager.defaultManager().sdkCallback.onLoginError("");
+                }
+            }
+        });
     }
 
     @Override
@@ -75,12 +86,10 @@ public class YyrhSdkOperation implements ISdkOperation {
 
     @Override
     public void sdkOnPause(Activity activity) {
-        YyrhSdkManager.defaultManager().onPause(activity);
     }
 
     @Override
     public void sdkOnResume(Activity activity) {
-        YyrhSdkManager.defaultManager().onResume(activity);
     }
 
     @Override
@@ -88,14 +97,14 @@ public class YyrhSdkOperation implements ISdkOperation {
 
     }
 
+
     @Override
-    public void sdkOnNewIntent(Activity acitivty, Intent intent) {
+    public void sdkOnStop(Activity activity) {
 
     }
 
     @Override
-    public void sdkOnStop(Activity activity) {
-
+    public void sdkOnDestroy(Activity activity) {
     }
 
     @Override
@@ -104,12 +113,12 @@ public class YyrhSdkOperation implements ISdkOperation {
     }
 
     @Override
-    public void sdkOnDestroy(Activity activity) {
-        YyrhSdkManager.defaultManager().onDestroy(activity);
+    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+
     }
 
     @Override
-    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+    public void sdkOnNewIntent(Activity acitivty, Intent intent) {
 
     }
 

+ 1 - 6
library_xinrui/src/main/java/com/yyrh/sdk/YyrhSdkManager.java

@@ -488,12 +488,7 @@ public class YyrhSdkManager {
 //            }
 //
 //        }
-        LoginActivity.start(activity, false, false, new IImplCallback() {
-            @Override
-            public void onResult(int code, String result) {
 
-            }
-        });
     }
 
     private void showLoginView(Activity activity, int type) {
@@ -771,7 +766,7 @@ public class YyrhSdkManager {
     }
 
     public void onDestroy(Activity activity) {
-        Zap.recycle();
+
     }
 
 }