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);
|
}
|
|
};
|
|
}
|