package com.secondworld.sdk;
|
|
import android.app.Activity;
|
import android.content.Intent;
|
import android.widget.Toast;
|
|
import androidx.annotation.NonNull;
|
|
import com.quickgame.android.sdk.QuickGameManager;
|
import com.quickgame.android.sdk.QuickGameManager.QGPaymentCallback;
|
import com.quickgame.android.sdk.QuickGameManager.SDKCallback;
|
import com.quickgame.android.sdk.bean.QGOrderInfo;
|
import com.quickgame.android.sdk.bean.QGRoleInfo;
|
import com.quickgame.android.sdk.bean.QGUserData;
|
import com.quickgame.android.sdk.model.QGUserHolder;
|
import com.secondworld.sdk.utils.CodeA2U;
|
import com.secondworld.sdk.utils.LogUtil;
|
|
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();
|
QuickGameManager sdkInstance;
|
|
public void init(Activity activity) {
|
sdkInitState = SdkInitState.LOADING;
|
SampleSDKCallback sdkCallback = new SampleSDKCallback();
|
sdkInstance.init(activity, "28593039166907658241154673876478", sdkCallback);
|
}
|
|
public void OnCreate(Activity activity) {
|
//sdk init
|
|
sdkInstance = QuickGameManager.getInstance();
|
// init by your product code
|
init(activity);
|
sdkInstance.onCreate(activity);
|
}
|
|
public void onStart()
|
{
|
sdkInstance.onStart(GTGameMain.I.activity);
|
}
|
|
public void login() {
|
|
switch (sdkInitState) {
|
case FAILED:
|
case UNKNOWN: {
|
break;
|
}
|
case SUCCEED: {
|
sdkInstance.login(GTGameMain.I.activity);
|
break;
|
}
|
case LOADING: {
|
Toast.makeText(GameAppProxy.app, "Initializing", Toast.LENGTH_LONG).show();
|
break;
|
}
|
}
|
}
|
|
public void SetRoleDate(String roleID, String roleName, String level, String serverID, String serverName, String vipLevel) {
|
//上报角色信息
|
QGRoleInfo roleInfo = new QGRoleInfo();
|
roleInfo.setRoleId(roleID);
|
roleInfo.setRoleName(roleName);
|
roleInfo.setRoleLevel(level);
|
roleInfo.setServerId(serverID);
|
roleInfo.setServerName(serverName);
|
roleInfo.setVipLevel(vipLevel);
|
sdkInstance.submitRoleInfo(roleInfo);
|
}
|
|
public void LogOutInitialize() {
|
sdkInstance.logout(GameActivityProxy.I.activity);
|
|
}
|
|
|
public void pay(String roleID, String money, String serverID, String productID, String productName,
|
String cpOrderID, String Extra, QGRoleInfo roleInfo) {
|
|
LogUtil.i(TAG, "调起充值:roleID-" + roleID +
|
" money-" + money +
|
" serverID-" + serverID +
|
" productID-" + productID +
|
" productName-" + productName +
|
" Extra-" + Extra);
|
SamplePaymentCallback paymentCallback = new SamplePaymentCallback();
|
|
QGOrderInfo orderInfo = new QGOrderInfo();
|
orderInfo.setOrderSubject(productName);
|
orderInfo.setProductOrderId(cpOrderID);
|
orderInfo.setAmount(Double.parseDouble(money));
|
orderInfo.setSuggestCurrency("CNY");
|
orderInfo.setGoodsId(productID);
|
orderInfo.setExtrasParams(Extra);
|
|
sdkInstance.pay(GTGameMain.I.activity, orderInfo, roleInfo, paymentCallback);
|
|
}
|
|
|
/**
|
* sdk login callback
|
*/
|
private class SampleSDKCallback implements SDKCallback {
|
|
@Override
|
public void onLoginFinished(QGUserData userData, QGUserHolder loginState) {
|
if (loginState.getStateCode() == QGUserHolder.LOGIN_SUCCESS) {
|
//show float view
|
sdkInstance.showFloatView(GameActivityProxy.I.activity);
|
try
|
{
|
args.clear();
|
JSONObject info = new JSONObject();
|
String channelID = sdkInstance.getChannelId();
|
if (channelID == null || channelID.isEmpty())
|
channelID = "9997";
|
String account = userData.getUid() + "@" + channelID;
|
info.put("account", account);
|
info.put("userName", userData.getUid());
|
info.put("token", userData.getToken());
|
args.put("info", info);
|
UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginOk, args);
|
} catch (JSONException e) {
|
e.printStackTrace();
|
LogUtil.e("SdkManager 登录成功 但信息处理失败", e);
|
}
|
|
LogUtil.i(TAG, "login success,uid:" + userData.getUid() + " displayUid>:" + userData.getdisplayUid());
|
|
} else {
|
Toast.makeText(GameAppProxy.app, "login fail", Toast.LENGTH_LONG).show();
|
//登录失败
|
LogUtil.e("SdkManager", "登录失败:");
|
UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginFail);
|
}
|
|
}
|
|
@Override
|
public void onInitFinished(boolean isSuccess,String msg) {
|
if (isSuccess) {
|
LogUtil.i(TAG, "channelId:" + sdkInstance.getChannelId() + "init success->");
|
sdkInitState = SdkInitState.SUCCEED;
|
LogUtil.debug("SdkManager", "初始化成功");
|
UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitOk);
|
} else {
|
Toast.makeText(GameAppProxy.app, "init fail "+msg, Toast.LENGTH_LONG).show();
|
//初始化失败
|
sdkInitState = SdkInitState.FAILED;
|
LogUtil.e("SdkManager", "初始化失败 msg:" + msg);
|
UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitFail);
|
}
|
}
|
|
@Override
|
public void onLogout() {
|
GameActivityProxy.I.activity.runOnUiThread(new Runnable() {
|
|
@Override
|
public void run() {
|
//注销成功
|
//注销成功,需要把游戏切换回登陆前的场景,并重新弹出登录框等操作
|
UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk);
|
}
|
});
|
}
|
|
@Override
|
public void onGooglePlaySub(String goodsId, String sdkOrder, boolean isAutoRenewing, boolean isAcknowledged) {
|
LogUtil.i(TAG, "goodsId=" + goodsId + "&&sdkOrder=" + sdkOrder);
|
}
|
}
|
|
/**
|
* pay callback
|
*/
|
private class SamplePaymentCallback implements QGPaymentCallback {
|
|
@Override
|
public void onPaySuccess(String orderId, String orderNo, String goodsId, String extraParams) {
|
LogUtil.i(TAG,"pay success");
|
//支付成功
|
//sdkOrderID:quick订单号 cpOrderID:游戏订单号
|
UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayOk);
|
}
|
|
@Override
|
public void onPayFailed(String orderId, String orderNo, String errorMessage) {
|
LogUtil.i(TAG, "pay fail:" + errorMessage);
|
//支付失败
|
UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayFail);
|
}
|
|
@Override
|
public void onPayCancel(String orderId, String orderNo, String errorMessage) {
|
LogUtil.i(TAG, "pay cancel");
|
//支付取消
|
UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformPayCancel);
|
}
|
|
}
|
|
public void onResume() {
|
sdkInstance.onResume(GTGameMain.I.activity);
|
|
}
|
public void onPause() {
|
sdkInstance.onPause(GTGameMain.I.activity);
|
|
}
|
public void onStop() {
|
sdkInstance.onStop(GTGameMain.I.activity);
|
}
|
|
public void onDestroy() {
|
//退出登录、退出游戏调用
|
sdkInstance.onDestroy(GTGameMain.I.activity);
|
}
|
|
public void onActivityResult(int requestCode, int resultCode, Intent data)
|
{
|
sdkInstance.onActivityResult(requestCode,resultCode,data);
|
}
|
|
public void onRequestPermissionsResult(int requestCode,
|
@NonNull String[] permissions, @NonNull int[] grantResults) {
|
sdkInstance.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
}
|
}
|