package com.secondworld.sdk; import android.app.Activity; import android.content.Intent; import android.widget.Toast; import androidx.annotation.NonNull; 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.secondworld.sdk.utils.CodeA2U; import com.secondworld.sdk.utils.LogUtil; import com.juefeng.sdk.juefengsdk.JFSDK; import org.json.JSONException; import org.json.JSONObject; public class MySdkMgr extends PlatformSdkMgr { private static final String TAG = MySdkMgr.class.getSimpleName(); public static MySdkMgr I = new MySdkMgr(); public static String uid; public static int viplevel; public void init(Activity activity) { sdkInitState = SdkInitState.LOADING; JFSDK.getInstance().init(activity, mSDKEventListener); } public void OnCreate(Activity activity) { JFSDK.getInstance().onCreate(GTGameMain.I.activity); init(activity); } public void onStart() { JFSDK.getInstance().onStart(GTGameMain.I.activity); } public void login() { switch (sdkInitState) { case FAILED: case UNKNOWN: { break; } case SUCCEED: { GameActivityProxy.I.activity.runOnUiThread(new Runnable() { @Override public void run() { JFSDK.getInstance().doLogin(GTGameMain.I.activity); } }); break; } case LOADING: { Toast.makeText(GameAppProxy.app, "Initializing", Toast.LENGTH_LONG).show(); break; } } } public void LogOutInitialize() { JFSDK.getInstance().logoutLogin(GTGameMain.I.activity); } public void pay(JfOrderInfo roleInfo) { JFSDK.getInstance().showPay(GTGameMain.I.activity, roleInfo); } public void onResume() { JFSDK.getInstance().onResume(GTGameMain.I.activity); } public void onPause() { JFSDK.getInstance().onPause(GTGameMain.I.activity); } public void onStop() { JFSDK.getInstance().onStop(GTGameMain.I.activity); } public void onDestroy() { //退出登录、退出游戏调用 JFSDK.getInstance().onDestroy(GTGameMain.I.activity); } public void onActivityResult(int requestCode, int resultCode, Intent data) { JFSDK.getInstance().onActivityResult(GTGameMain.I.activity, requestCode, resultCode, data); } public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { JFSDK.getInstance().onRequestPermissionsResult(GTGameMain.I.activity, requestCode, permissions, grantResults); } SDKEventListener mSDKEventListener = new SDKEventListener(){ @Override public void onLoginSuccess(LogincallBack logincallBack) {//登录成功 JFSDK.getInstance().showFloatView(GTGameMain.I.activity); try { 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); } LogUtil.i(TAG, "login success,uid:" + uid + " userName:" + logincallBack.userName); } @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 onExit(String desc) {//退出成功 } @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); } }; }