123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539 |
- package com.yyrh.sdk;
- import android.app.Activity;
- import android.content.Intent;
- import android.content.SharedPreferences;
- import android.content.res.Configuration;
- import android.os.Build;
- import android.os.Bundle;
- import android.util.Log;
- import com.yyrh.advertisement.AdSdkCallback;
- import com.yyrh.advertisement.AdvertiseManager;
- import com.yyrh.constant.RoleInfo;
- import com.yyrh.constant.SDKSettings;
- import com.yyrh.factory.SdkManager;
- import com.yyrh.imei.ImeiUtil;
- import com.yyrh.sdk.callback.RealNameMsgCallback;
- import com.yyrh.sdk.callback.ShowPolicyCallback;
- import com.yyrh.sdk.callback.UserPolicyCallback;
- import com.yyrh.utils.PermissionUtils;
- import com.yyrh.utils.ResourceUtil;
- import com.yyrh.easypermission.EasyPermission;
- import com.yyrh.easypermission.GrantResult;
- import com.yyrh.easypermission.Permission;
- import com.yyrh.easypermission.PermissionRequestListener;
- import com.yyrh.ui.GameSplashDialog;
- import com.yyrh.utils.TosUtil;
- import com.yythird.base.ChannelSdkCallback;
- import com.yythird.sdk.ChannelSDK;
- import com.yyrh.utils.Utils;
- import com.yyrh.utils.YYLog;
- import com.yyrh.networking.NetRequestApi;
- import com.yyrh.sdk.callback.ExitCallback;
- import com.yyrh.sdk.callback.InitCallback;
- import com.yyrh.sdk.callback.LoginCallback;
- import com.yyrh.sdk.callback.LogoutCallback;
- import com.yyrh.sdk.callback.PayCallback;
- import com.yyrh.sdk.callback.PayOrderCallback;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.HashMap;
- import java.util.Map;
- import static com.yyrh.constant.SDKSettings.sp_code;
- public class SDKEntry {
- public InitCallback initCall;
- public LoginCallback loginCall;
- public PayCallback payCall;
- public LogoutCallback logoutCall;
- public ExitCallback exitCall;
- public RealNameMsgCallback realNameMsgCallback;
- public Activity gameAct;
- private ChannelSDK sdk = null;
- private YyrhSdkManager manager = null;
- private static volatile SDKEntry sdkInstance = null;
- private String role_ctime="";
- public AdSdkCallback adSdkCallback = new AdSdkCallback() {
- @Override
- public void onRegisterSuccess(String msg) {
- AdvertiseManager.defaultManager(gameAct).registration(gameAct,msg);
- }
- @Override
- public void onLoginSuccess(String msg) {
- AdvertiseManager.defaultManager(gameAct).login(gameAct,msg);
- }
- @Override
- public void onPaySuccess(HashMap<String, Object> map) {
- AdvertiseManager.defaultManager(gameAct).paymentFinish(gameAct,map);
- }
- @Override
- public void onCreateOrder(HashMap<String, Object> map) {
- AdvertiseManager.defaultManager(gameAct).callPayment(gameAct,map);
- }
- @Override
- public void onUpLoadRoleInfo(String type, RoleInfo roleInfo) {
- AdvertiseManager.defaultManager(gameAct).upLoadRoleInfo(gameAct,type,roleInfo);
- }
- @Override
- public void onResume(Activity activity) {
- AdvertiseManager.defaultManager(activity).onResume(activity);
- }
- @Override
- public void onPause(Activity activity) {
- AdvertiseManager.defaultManager(activity).onPause(activity);
- }
- @Override
- public void onDestory(Activity activity) {
- AdvertiseManager.defaultManager(activity).onDestory(activity);
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
- AdvertiseManager.defaultManager(gameAct).onRequestPermissionsResult(requestCode,permissions,grantResults);
- }
- @Override
- public void onExitGame(Activity activity) {
- AdvertiseManager.defaultManager(activity).onExitGame(activity);
- }
- };
- public ChannelSdkCallback tCallBack = new ChannelSdkCallback() {
- @Override
- public void onSetChannelTagCallback(String msg) {
- }
- @Override
- public void onInitCallback(boolean success, String msg) {
- if (success){
- initCall.onInitSuccess(msg);
- }else{
- new TosUtil(gameAct,"blue", msg).show();
- initCall.onInitFailed(msg);
- }
- }
- @Override
- public void onLoginChannelCallback(String msg) {
- NetRequestApi.loginWithChannel(gameAct,msg,loginCall);
- }
- @Override
- public void onLogOutCallback(String msg) {
- logoutCall.onLogoutSuccess();
- }
- @Override
- public void onPayFinishCallback(boolean success, String msg) {
- if (success){
- payCall.onPaySuccess(msg);
- }else{
- payCall.onPayFailed(msg);
- }
- }
- @Override
- public void onExiGameCallback(boolean success, String msg) {
- exitCall.onExit(true);
- }
- @Override
- public void onPayExtParamCallback(HashMap<String, String> payInfo, String url) {
- NetRequestApi.payChannelNotify(payInfo,url);
- }
- @Override
- public void onGetChannelRealNameCallback(boolean isRealName, String report_type, String channelRealNameInfo) {
- if (isRealName){
- NetRequestApi.recordUserRealNameInfo(gameAct,report_type,channelRealNameInfo);
- }else{
- realNameMsgCallback.onLoadRealNameMsg(false,"");
- }
- }
- @Override
- public void onLoginChannelFail(String msg) {
- new TosUtil(gameAct,"blue", msg).show();
- sdk.SDKLoginChannelFail(msg);
- }
- @Override
- public void onLoginChannelSuccess(String msg) {
- sdk.SDKLoginChannelSuccess(msg);
- }
- @Override
- public void onUploadUserRealNameInfo(String report_type,String msg) {
- NetRequestApi.upLoadUserRealNameInfo(report_type,msg);
- }
- @Override
- public void onGetOaidCallback(final boolean isSuccess, final String oaid) {
- gameAct.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- if (isSuccess){
- if (Build.VERSION.SDK_INT > 28){
- SDKSettings.ifa_type = "2";
- initCall.onGetOaid(true,oaid);
- }else{
- initCall.onGetOaid(false,"");
- }
- SDKSettings.imei = oaid;
- Utils.setSharedPreferences("yyrh","simulateImei",oaid,gameAct);
- }else{
- SDKSettings.imei = ImeiUtil.getImei(gameAct);
- initCall.onGetOaid(false,"");
- }
- Log.i("imei:",SDKSettings.imei);
- manager.yyrhInit(gameAct);
- }
- });
- }
- @Override
- public String onGetChannelUid() {
- return SDKSettings.CHANNELUID;
- }
- };
- /**
- * 实现单例
- */
- private SDKEntry() {
- }
- public static SDKEntry getSdkInstance() {
- if (sdkInstance == null) {
- synchronized (SDKEntry.class) {
- if (sdkInstance == null) {
- sdkInstance = new SDKEntry();
- }
- }
- }
- return sdkInstance;
- }
- public void showPrivacyPolicy(Activity activity, UserPolicyCallback userPolicyCallback){
- YyrhSdkManager.defaultManager(activity).yyrhShowPolicy(activity,userPolicyCallback);
- }
- public void initSdk(final Activity activity, final InitCallback callback, final boolean isDebug){
- this.gameAct = activity;
- this.initCall = callback;
- sdk = ChannelSDK.getInstance();
- manager = YyrhSdkManager.defaultManager(activity);
- sdk.SDKInit(activity,tCallBack);
- InputStream inputStream = null;
- try {
- inputStream = activity.getAssets().open("yyrh_start_image.jpg");
- } catch (IOException e) {
- }
- if(inputStream != null){
- new GameSplashDialog(activity, ResourceUtil.getStyleId(activity,"yyrh_welcome_dialog")).show();
- }
- int checkResult;
- if (PermissionUtils.checkIsHasPermission(activity,PermissionUtils.CODE_READ_PHONE_STATE) == 0 &&
- PermissionUtils.checkIsHasPermission(activity,PermissionUtils.CODE_WRITE_EXTERNAL_STORAGE) == 0){
- checkResult = 0;
- }else{
- checkResult = -1;
- }
- switch (checkResult){
- case 0 :
- AdvertiseManager.defaultManager(activity).advertiseInit(activity);
- manager.yyrhInitDevice(activity, isDebug);
- break;
- case -1 :
- String[] permissions = new String[]{Permission.READ_PHONE_STATE,Permission.WRITE_EXTERNAL_STORAGE};
- EasyPermission.with(activity)
- .addPermissions(permissions) //申请打电话权限
- .request(new PermissionRequestListener() {
- @Override
- public void onGrant(Map<String, GrantResult> result) {
- //权限申请返回
- AdvertiseManager.defaultManager(activity).advertiseInit(activity);
- manager.yyrhInitDevice(activity, isDebug);
- }
- @Override
- public void onCancel(String stopPermission) {
- //在addRequestPermissionRationaleHandler的处理函数里面调用了NextAction.next(NextActionType.STOP,就会中断申请过程,直接回调到这里来
- }
- });
- break;
- }
- }
- public void login (Activity activity, LoginCallback callback){
- this.loginCall = callback;
- SdkManager.defaultManager(activity).login(activity);
- }
- public void pay(final HashMap<String, Object> map,
- final PayCallback callback, final Activity activity) {
- this.payCall = callback;
- YYLog.i("payOrderInit");
- map.put("role_ctime",this.role_ctime);
- if (SDKSettings.UNAME.equals("")){
- new TosUtil(activity,"blue", activity.getString(ResourceUtil.getStringId(activity, "yyrh_login2pay"))).show();
- return;
- }
- NetRequestApi.payOrderInit(map, activity, new PayOrderCallback() {
- @Override
- public void onPaySuccess(HashMap<String, Object> map) {
- adSdkCallback.onCreateOrder(map);
- SdkManager.defaultManager(activity).pay(activity, map);
- }
- @Override
- public void onPayFailed(String msg) {
- callback.onPayFailed(msg);
- }
- });
- }
- public void setSDKLogoutListener(Activity activity, final LogoutCallback callback) {
- YYLog.i("SDKLogoutListener");
- logoutCall = callback;
- SdkManager.defaultManager(activity).setSDKLogoutListener(activity, tCallBack);
- }
- public void logout(){
- YYLog.i("logout");
- SdkManager.defaultManager(gameAct).logOut();
- }
- public void exitGame(Activity activity, final ExitCallback callback) {
- YYLog.i("exitGame");
- this.exitCall = callback;
- SdkManager.defaultManager(activity).exit(activity);
- }
- public void upLoadRoleInfo(String type, Activity activity,RoleInfo roleInfo){
- YYLog.i("sdk uploadUserInfo");
- this.role_ctime = roleInfo.getRoleCreateTime();
- String roleId = roleInfo.getRoleId();
- String roleName = roleInfo.getRoleName();
- String roleLevel = roleInfo.getRoleLevel();
- String gender = roleInfo.getGender();
- String serverId = roleInfo.getServerId();
- String serverName = roleInfo.getServerName();
- String hasGold = roleInfo.getHasGold();
- String vipLevel = roleInfo.getVipLevel();
- String roleCreateTime = roleInfo.getRoleCreateTime();
- String partyName = roleInfo.getPartyName();
- String role_power = roleInfo.getRolePower();
- String partyId = roleInfo.getPartyId();
- String reincarnationCount = roleInfo.getReincarnationCount();
- String charge = roleInfo.getCharge();
- if (Utils.judgeStrNull(charge)){
- charge = "0";
- }
- if (Utils.judgeStrNull(roleId) || Utils.judgeStrNull(roleName)
- || Utils.judgeStrNull(roleLevel)
- || Utils.judgeStrNull(gender)
- || Utils.judgeStrNull(serverId)
- || Utils.judgeStrNull(serverName)
- || Utils.judgeStrNull(hasGold)
- || Utils.judgeStrNull(vipLevel)
- || Utils.judgeStrNull(roleCreateTime)
- || Utils.judgeStrNull(role_power)
- || Utils.judgeStrNull(reincarnationCount)) {
- YYLog.i("上报参数有空值,请检查: "+ roleInfo.getAllParam());
- }else{
- YYLog.i("游戏角色信息上报sdk相关参数: "+ roleInfo.getAllParam());
- YyrhSdkManager.defaultManager(activity).uploadRoleInfo(type, activity, roleId, roleName, roleLevel, serverId,
- serverName, hasGold, vipLevel, role_power, partyId, partyName, roleCreateTime,charge);
- SdkManager.defaultManager(activity).uploadRoleInfo(type, activity, roleInfo);
- adSdkCallback.onUpLoadRoleInfo(type,roleInfo);
- }
- }
- /**
- * 生命周期
- */
- public void sdkOnStart(Activity activity) {
- YYLog.i("sdk OnStart");
- SdkManager.defaultManager(activity).sdkOnStart(activity);
- }
- public void sdkOnCreate(Activity activity,Bundle savedInstanceState) {
- YYLog.i("sdk onCreate");
- SdkManager.defaultManager(activity).sdkOnCreate(activity, savedInstanceState);
- }
- public void sdkOnPause(Activity activity) {
- YYLog.i("sdk OnPause");
- SDKEntry.getSdkInstance().adSdkCallback.onPause(activity);
- SdkManager.defaultManager(activity).sdkOnPause(activity);
- }
- public void sdkOnResume(Activity activity) {
- YYLog.i("sdk OnResume");
- SDKEntry.getSdkInstance().adSdkCallback.onResume(activity);
- SdkManager.defaultManager(activity).sdkOnResume(activity);
- }
- public void sdkOnRestart(Activity activity) {
- YYLog.i("sdk onRestart");
- SdkManager.defaultManager(activity).sdkOnRestart(activity);
- }
- public void sdkOnNewIntent(Activity acitivty, Intent intent) {
- YYLog.i("sdk OnNewIntent");
- SdkManager.defaultManager(acitivty).sdkOnNewIntent(acitivty, intent);
- }
- public void sdkOnStop(Activity activity) {
- YYLog.i("sdk OnStop");
- SdkManager.defaultManager(activity).sdkOnStop(activity);
- }
- public void onConfigurationChanged(Configuration newConfigs) {
- YYLog.i("sdk onConfigurationChanged");
- SdkManager.defaultManager(gameAct).onConfigurationChanged(newConfigs);
- }
- public void sdkOnDestroy(Activity activity) {
- YYLog.i("sdk OnDestroy");
- SDKEntry.getSdkInstance().adSdkCallback.onDestory(activity);
- SdkManager.defaultManager(gameAct).sdkOnDestroy(activity);
- }
- public void onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults){
- YYLog.i("sdk onRequestPermissionsResult");
- SDKEntry.getSdkInstance().adSdkCallback.onRequestPermissionsResult(requestCode,permissions,grantResults);
- SdkManager.defaultManager(gameAct).onRequestPermissionsResult(requestCode, permissions, grantResults);
- }
- public void onActivityResult(Activity ac,int requestCode, int resultCode, Intent data) {
- YYLog.i("sdk onActivityResult");
- SdkManager.defaultManager(gameAct).onActivityResult(ac, requestCode, resultCode, data);
- }
- public void onWindowFocusChanged(Activity activity, boolean hasFocus){
- YYLog.i("sdk onWindowFocusChanged");
- SdkManager.defaultManager(gameAct).onWindowFocusChanged(activity, hasFocus);
- }
- public void getRealNameInfo(Activity activity, RealNameMsgCallback realNameMsgCallback){
- this.realNameMsgCallback = realNameMsgCallback;
- if (Utils.getTextIsNull(SDKSettings.UNAME)){
- new TosUtil(activity,"blue", activity.getString(ResourceUtil.getStringId(activity, "yyrh_login2pay"))).show();
- return;
- }
- SdkManager.defaultManager(gameAct).getRealNameInfo(activity, realNameMsgCallback);
- }
- }
|