| | |
| | | import android.content.Intent; |
| | | import android.widget.Toast; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | import com.ald.common.callback.ExtendCallBack; |
| | | import com.ald.modules.adrevenue.adapter.AdRevenueView; |
| | | import com.ald.modules.adrevenue.adapter.OnAdRevenueListener; |
| | | import com.ald.sdk.AldGameManger; |
| | | import com.ald.sdk.Extend; |
| | | import com.ald.sdk.FuncType; |
| | | import com.ald.sdk.model.AldUserData; |
| | | |
| | | import com.juefeng.sdk.juefengsdk.interf.SDKEventListener; |
| | | import com.juefeng.sdk.juefengsdk.services.bean.CreatOrderInfo; |
| | | import com.juefeng.sdk.juefengsdk.services.bean.JfOrderInfo; |
| | | import com.juefeng.sdk.juefengsdk.services.bean.LoginErrorMsg; |
| | | import com.juefeng.sdk.juefengsdk.services.bean.LogincallBack; |
| | | import com.juefeng.sdk.juefengsdk.services.bean.PayFaildInfo; |
| | | import com.juefeng.sdk.juefengsdk.services.bean.PaySuccessInfo; |
| | | import com.ald.sdk.model.OrderInfo; |
| | | import com.secondworld.sdk.utils.CodeA2U; |
| | | import com.secondworld.sdk.utils.LogUtil; |
| | | import com.juefeng.sdk.juefengsdk.JFSDK; |
| | | |
| | | import org.json.JSONException; |
| | | import org.json.JSONObject; |
| | |
| | | private static final String TAG = MySdkMgr.class.getSimpleName(); |
| | | public static MySdkMgr I = new MySdkMgr(); |
| | | public static String uid; |
| | | public static int viplevel; |
| | | public static AldGameManger manger = AldGameManger.getInstance(); |
| | | public static AdRevenueView mAdRewardView,mAdRnterstitialView; //mAdSplashView, |
| | | |
| | | public void init(Activity activity) { |
| | | sdkInitState = SdkInitState.LOADING; |
| | | JFSDK.getInstance().init(activity, mSDKEventListener); |
| | | manger = AldGameManger.getInstance(); |
| | | //sdk初始化,初始化结果回调里面游戏需自己处理跳转逻辑 |
| | | manger.init(activity, new AldGameManger.SDKCallback() { |
| | | |
| | | @Override |
| | | public void onInitFinished(boolean isSuccess) { |
| | | if (isSuccess) { |
| | | //初始化成功,进入游戏 |
| | | sdkInitState = SdkInitState.SUCCEED; |
| | | LogUtil.debug("SdkManager", "初始化成功"); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitOk); |
| | | |
| | | initAdRevenueView(); |
| | | } else { |
| | | //初始化失败,则无法调起登录。游戏需继续调用SDK初始化接口及自行处理逻辑跳转 |
| | | Toast.makeText(GameAppProxy.app, "init fail ", Toast.LENGTH_LONG).show(); |
| | | //初始化失败 |
| | | sdkInitState = SdkInitState.FAILED; |
| | | LogUtil.e("SdkManager", "初始化失败"); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitFail); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onLoginFinished(boolean status, AldUserData userData) { |
| | | if (status) { |
| | | //登入成功 |
| | | uid = userData.getUserId(); //作为唯一标示 |
| | | String sign = userData.getSign();//获取签名 |
| | | String timestamp = userData.getTimestamp();//登入时间 |
| | | //判断登录方式: 3:goole登入,4:facebook登入 |
| | | int logintype = userData.getOpenType(); |
| | | |
| | | try |
| | | { |
| | | args.clear(); |
| | | JSONObject info = new JSONObject(); |
| | | String channelID = "1"; |
| | | String account = uid + "@" + channelID; |
| | | info.put("account", account); |
| | | info.put("userName", uid); |
| | | info.put("token", sign); |
| | | info.put("token_expire", timestamp);//时间戳 |
| | | info.put("session_id", String.valueOf(logintype));//判断登录方式 |
| | | args.put("info", info); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginOk, args); |
| | | } catch (JSONException e) { |
| | | e.printStackTrace(); |
| | | LogUtil.e("SdkManager 登录成功 但信息处理失败", e); |
| | | } |
| | | |
| | | LogUtil.i(TAG, "login success,uid:" + uid); |
| | | } else { |
| | | //登录取消 |
| | | Toast.makeText(GameAppProxy.app, "login fail " , Toast.LENGTH_LONG).show(); |
| | | //登录失败 |
| | | LogUtil.e("SdkManager", "登录失败"); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginFail); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onLogout() { |
| | | //悬浮窗 注销账号成功,注销账号成功后,游戏应从游戏的界面退回到登录界面中 |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk); |
| | | } |
| | | |
| | | @Override |
| | | public void onExit(boolean isSuccess) { |
| | | if (isSuccess) { |
| | | //退出游戏 |
| | | GameActivityProxy.I.activity.finish(); |
| | | } else { |
| | | //继续游戏 |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onPayFinished(boolean status, OrderInfo orderInfo) { |
| | | if (status) { |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayOk); |
| | | }else { |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutFail); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public void OnCreate(Activity activity) { |
| | | JFSDK.getInstance().onCreate(GTGameMain.I.activity); |
| | | init(activity); |
| | | |
| | | } |
| | | |
| | | public void onStart() |
| | | { |
| | | JFSDK.getInstance().onStart(GTGameMain.I.activity); |
| | | manger.onStart(GTGameMain.I.activity); |
| | | } |
| | | |
| | | public void login() { |
| | |
| | | |
| | | @Override |
| | | public void run() { |
| | | JFSDK.getInstance().doLogin(GTGameMain.I.activity); |
| | | manger.login(GTGameMain.I.activity); |
| | | } |
| | | }); |
| | | |
| | |
| | | |
| | | |
| | | public void LogOutInitialize() { |
| | | JFSDK.getInstance().logoutLogin(GTGameMain.I.activity); |
| | | manger.logout(GTGameMain.I.activity); |
| | | } |
| | | |
| | | |
| | | public void pay(JfOrderInfo roleInfo) { |
| | | JFSDK.getInstance().showPay(GTGameMain.I.activity, roleInfo); |
| | | public void pay(OrderInfo pauInfo) { |
| | | manger.pay(GTGameMain.I.activity, pauInfo); |
| | | } |
| | | |
| | | |
| | | |
| | | public void onResume() { |
| | | JFSDK.getInstance().onResume(GTGameMain.I.activity); |
| | | manger.onResume(GTGameMain.I.activity); |
| | | } |
| | | public void onPause() { |
| | | JFSDK.getInstance().onPause(GTGameMain.I.activity); |
| | | manger.onPause(GTGameMain.I.activity); |
| | | } |
| | | public void onStop() { |
| | | JFSDK.getInstance().onStop(GTGameMain.I.activity); |
| | | manger.onStop(GTGameMain.I.activity); |
| | | } |
| | | |
| | | public void onDestroy() { |
| | | //退出登录、退出游戏调用 |
| | | JFSDK.getInstance().onDestroy(GTGameMain.I.activity); |
| | | manger.onDestroy(GTGameMain.I.activity); |
| | | } |
| | | |
| | | public void onActivityResult(int requestCode, int resultCode, Intent data) |
| | | { |
| | | JFSDK.getInstance().onActivityResult(GTGameMain.I.activity, requestCode, resultCode, data); |
| | | manger.onActivityResult(requestCode, resultCode, data); |
| | | if(requestCode == 8002){ |
| | | // 只要跳转后无论玩家是否分享,回到此页面就发放奖励 |
| | | // Logger.d("facebook分享页面返回"); |
| | | //分享成功 |
| | | args.clear(); |
| | | args.put("state", 1); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.ShareState, args); |
| | | } |
| | | } |
| | | |
| | | public void onRequestPermissionsResult(int requestCode, |
| | | @NonNull String[] permissions, @NonNull int[] grantResults) { |
| | | JFSDK.getInstance().onRequestPermissionsResult(GTGameMain.I.activity, requestCode, permissions, grantResults); |
| | | public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { |
| | | manger.onRequestPermissionsResult(requestCode, permissions, grantResults); |
| | | } |
| | | |
| | | |
| | | SDKEventListener mSDKEventListener = new SDKEventListener(){ |
| | | @Override |
| | | public void onLoginSuccess(LogincallBack logincallBack) {//登录成功 |
| | | JFSDK.getInstance().showFloatView(GTGameMain.I.activity); |
| | | /** |
| | | * 分享 |
| | | * @param type FuncType.SHARE_URL//分享链接 FuncType.SHARE_IMG//分享图片 |
| | | */ |
| | | public void facebookShare(int type) { |
| | | // 判断是否支持分享功能 |
| | | if (Extend.getInstance().isFunctionSupported(type)) { |
| | | Extend.getInstance().callFunctionWithParamsCallBack(GTGameMain.I.activity, type, new ExtendCallBack() { |
| | | @Override |
| | | public void onSuccess() { |
| | | //分享成功 |
| | | args.clear(); |
| | | args.put("state", 1); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.ShareState, args); |
| | | } |
| | | |
| | | try |
| | | { |
| | | @Override |
| | | public void onFailed() { |
| | | //分享失败 |
| | | args.clear(); |
| | | args.put("state", 2); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.ShareState, args); |
| | | } |
| | | }); |
| | | } else { |
| | | //此渠道暂不支持功能 |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 跳到粉絲頁 |
| | | */ |
| | | public void facebookFansHome() { |
| | | // 判断是否支持功能 |
| | | if (Extend.getInstance().isFunctionSupported(FuncType.FANSHOME)) { |
| | | Extend.getInstance().callFunctionWithParamsCallBack(GTGameMain.I.activity, FuncType.FANSHOME, new ExtendCallBack() { |
| | | @Override |
| | | public void onSuccess() { |
| | | //跳轉成功 |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.GotoFBOK); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailed() { |
| | | |
| | | } |
| | | }); |
| | | } else { |
| | | //此渠道暂不支持功能 |
| | | } |
| | | } |
| | | |
| | | public void transferToAppStore() { |
| | | // 判断是否支持分享功能 |
| | | if (Extend.getInstance().isFunctionSupported(FuncType.APPSTORE)) { |
| | | Extend.getInstance().callFunctionWithParamsCallBack(GTGameMain.I.activity, FuncType.APPSTORE, new ExtendCallBack() { |
| | | @Override |
| | | public void onSuccess() { |
| | | //跳轉成功 |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.GotoShopOK); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailed() { |
| | | } |
| | | }); |
| | | } else { |
| | | //此渠道暂不支持功能 |
| | | } |
| | | } |
| | | |
| | | private void initAdRevenueView(){ |
| | | // mAdSplashView= manger.createSplashAdView(GTGameMain.I.activity, new OnAdRevenueListener() { |
| | | // @Override |
| | | // public void onAdLoadFailed(String errCode, String msg) { |
| | | // LogUtil.debug("SdkManager","开屏广告加载失败:"+errCode+" "+msg); |
| | | // |
| | | // args.clear(); |
| | | // JSONObject info = new JSONObject(); |
| | | // try { |
| | | // info.put("type", 1); |
| | | // info.put("success", false); |
| | | // } catch (JSONException e) { |
| | | // throw new RuntimeException(e); |
| | | // } |
| | | // args.put("info", info); |
| | | // UnityMsgHandler.sendMessageToUnity(CodeA2U.AdCallBack, args); |
| | | // } |
| | | // |
| | | // @Override |
| | | // public void onAdLoadedSuccess() { |
| | | // LogUtil.debug("SdkManager","开屏广告加载成功"); |
| | | // |
| | | // } |
| | | // |
| | | // @Override |
| | | // public void onAdShow() { |
| | | // LogUtil.debug("SdkManager","开屏广告开始展示"); |
| | | // |
| | | // } |
| | | // |
| | | // @Override |
| | | // public void onAdShowClosed(boolean isReward) { |
| | | // LogUtil.debug("SdkManager","开屏广告播放关闭,是否到达奖励区域:"+isReward); |
| | | // args.clear(); |
| | | // JSONObject info = new JSONObject(); |
| | | // try { |
| | | // info.put("type", 1); |
| | | // info.put("success", isReward); |
| | | // } catch (JSONException e) { |
| | | // throw new RuntimeException(e); |
| | | // } |
| | | // args.put("info", info); |
| | | // UnityMsgHandler.sendMessageToUnity(CodeA2U.AdCallBack, args); |
| | | // } |
| | | // |
| | | // @Override |
| | | // public void onAdShowFailed(String errCode, String msg) { |
| | | // LogUtil.debug("SdkManager","开屏广告播放失败:"+errCode+" "+msg); |
| | | // args.clear(); |
| | | // JSONObject info = new JSONObject(); |
| | | // try { |
| | | // info.put("type", 1); |
| | | // info.put("success", false); |
| | | // } catch (JSONException e) { |
| | | // throw new RuntimeException(e); |
| | | // } |
| | | // args.put("info", info); |
| | | // UnityMsgHandler.sendMessageToUnity(CodeA2U.AdCallBack, args); |
| | | // |
| | | // } |
| | | // }); |
| | | mAdRnterstitialView= manger.createInterstitialAdView(GTGameMain.I.activity,new OnAdRevenueListener() { |
| | | @Override |
| | | public void onAdLoadFailed(String errCode, String msg) { |
| | | LogUtil.debug("SdkManager","插屏广告加载失败:"+errCode+" "+msg); |
| | | args.clear(); |
| | | JSONObject info = new JSONObject(); |
| | | String channelID = "9996"; |
| | | uid = logincallBack.userId; |
| | | String account = uid + "@" + channelID; |
| | | info.put("account", account); |
| | | info.put("userName", uid); |
| | | info.put("token", logincallBack.token); |
| | | args.put("info", info); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginOk, args); |
| | | } catch (JSONException e) { |
| | | e.printStackTrace(); |
| | | LogUtil.e("SdkManager 登录成功 但信息处理失败", e); |
| | | args.put("type", 2); |
| | | args.put("success", false); |
| | | |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.AdCallBack, args); |
| | | } |
| | | |
| | | LogUtil.i(TAG, "login success,uid:" + uid + " userName:" + logincallBack.userName); |
| | | } |
| | | @Override |
| | | public void onAdLoadedSuccess() { |
| | | LogUtil.debug("SdkManager","插屏广告加载成功"); |
| | | |
| | | @Override |
| | | public void onLoginFailed(LoginErrorMsg loginErrorMsg) {//登录失败 |
| | | Toast.makeText(GameAppProxy.app, "login fail " + loginErrorMsg.getCode(), Toast.LENGTH_LONG).show(); |
| | | //登录失败 |
| | | LogUtil.e("SdkManager", "登录失败:" + loginErrorMsg.getErrorMsg()); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginFail); |
| | | } |
| | | @Override |
| | | public void onInitSuccess(String desc,boolean isAutoLogin) { |
| | | sdkInitState = SdkInitState.SUCCEED; |
| | | LogUtil.debug("SdkManager", "初始化成功"); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitOk); |
| | | } |
| | | @Override |
| | | public void onInitFaild(String desc) { |
| | | Toast.makeText(GameAppProxy.app, "init fail "+desc, Toast.LENGTH_LONG).show(); |
| | | //初始化失败 |
| | | sdkInitState = SdkInitState.FAILED; |
| | | LogUtil.e("SdkManager", "初始化失败 msg:" + desc); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitFail); |
| | | } |
| | | @Override |
| | | public void onPaySuccessCallback(PaySuccessInfo paySuccessInfo) { |
| | | //支付成功 |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayOk); |
| | | } |
| | | |
| | | @Override |
| | | public void onPayFaildCallback(PayFaildInfo payFaildInfo) { |
| | | //支付失败 |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayFail); |
| | | @Override |
| | | public void onAdShow() { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onExit(String desc) {//退出成功 |
| | | @Override |
| | | public void onAdShowClosed(boolean isReward) { |
| | | LogUtil.debug("SdkManager","插屏广告播放关闭"); |
| | | args.clear(); |
| | | args.put("type", 2); |
| | | args.put("success", isReward); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.AdCallBack, args); |
| | | |
| | | } |
| | | @Override |
| | | public void onCancleExit(String desc) { |
| | | } |
| | | |
| | | } |
| | | @Override |
| | | public void onCreatedOrder(CreatOrderInfo infoBean) { |
| | | //订单创建成功 |
| | | LogUtil.i("SdkManager", "订单创建成功"); |
| | | } |
| | | @Override |
| | | public void onLogoutLogin(){//此处需回到游戏登录界面游戏方执行 |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk); |
| | | } |
| | | public void onSwitchAccountSuccess(LogincallBack login) |
| | | { |
| | | /*此回调接口是在当SDK内部有切换帐号的功能,且切换成功时会调用,游 |
| | | 戏方需要在这个回调接口中注销原来的角色数据,然后根据新的openid(参数 |
| | | login中可以获取到)来重新加载角色数据;*/ |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk); |
| | | } |
| | | @Override |
| | | public void onGameSwitchAccount() |
| | | { |
| | | /*此接口是在游戏内有账号切换功能点击 调用 JFSDK.getInstance().switchAccount(MainActivity.this);后回调 |
| | | 游戏方账号切换逻辑需要在此回调中执行 |
| | | * */ |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk); |
| | | } |
| | | @Override |
| | | public void onAdShowFailed(String errCode, String msg) { |
| | | LogUtil.debug("SdkManager","插屏广告播放失败:"+errCode+" "+msg); |
| | | args.clear(); |
| | | args.put("type", 2); |
| | | args.put("success", false); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.AdCallBack, args); |
| | | } |
| | | }); |
| | | mAdRewardView= manger.createRewardAdView(GTGameMain.I.activity,new OnAdRevenueListener() { |
| | | @Override |
| | | public void onAdLoadFailed(String errCode, String msg) { |
| | | LogUtil.debug("SdkManager","激励广告加载失败:"+errCode+" "+msg); |
| | | args.clear(); |
| | | args.put("type", 3); |
| | | args.put("success", false); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.AdCallBack, args); |
| | | } |
| | | |
| | | }; |
| | | @Override |
| | | public void onAdLoadedSuccess() { |
| | | LogUtil.debug("SdkManager","激励广告加载成功"); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onAdShow() { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onAdShowClosed(boolean isReward) { |
| | | LogUtil.debug("SdkManager","激励广告播放关闭,是否到达奖励区域:"+isReward); |
| | | args.clear(); |
| | | args.put("type", 3); |
| | | args.put("success", isReward); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.AdCallBack, args); |
| | | } |
| | | |
| | | @Override |
| | | public void onAdShowFailed(String errCode, String msg) { |
| | | LogUtil.debug("SdkManager","激励广告播放失败:"+errCode+" "+msg); |
| | | args.clear(); |
| | | args.put("type", 3); |
| | | args.put("success", false); |
| | | UnityMsgHandler.sendMessageToUnity(CodeA2U.AdCallBack, args); |
| | | } |
| | | }); |
| | | //mAdSplashView.load(GTGameMain.I.activity); |
| | | mAdRewardView.load(GTGameMain.I.activity); |
| | | mAdRnterstitialView.load(GTGameMain.I.activity); |
| | | } |
| | | } |