package com.secondworld.univeralsdk; 
 | 
  
 | 
import android.app.Activity; 
 | 
import android.os.Bundle; 
 | 
  
 | 
import com.sp.sdk.core.SPGameController; 
 | 
import com.sp.sdk.core.callback.CallbackCode; 
 | 
import com.sp.sdk.core.callback.SPInitCallback; 
 | 
import com.sp.sdk.core.callback.SPLoginCallback; 
 | 
import com.sp.sdk.core.callback.SPLogoutCallback; 
 | 
import com.sp.sdk.core.callback.SPPayCallback; 
 | 
import com.sp.sdk.service.GameData; 
 | 
import com.sp.sdk.service.LoginResponse; 
 | 
import com.sp.sdk.service.PayOrder; 
 | 
  
 | 
import org.json.JSONException; 
 | 
import org.json.JSONObject; 
 | 
  
 | 
import java.util.HashMap; 
 | 
import java.util.Map; 
 | 
  
 | 
/** 
 | 
 * Created by Administrator on 2018/9/18 0018. 
 | 
 */ 
 | 
  
 | 
public class SpPlatformUtil 
 | 
{ 
 | 
    private static final String TAG = "SpPlatformUtil"; 
 | 
  
 | 
    private static SpPlatformUtil m_Instance; 
 | 
  
 | 
    public static SpPlatformUtil getInstance() 
 | 
    { 
 | 
        if (m_Instance == null) 
 | 
        { 
 | 
            m_Instance = new SpPlatformUtil(); 
 | 
        } 
 | 
        return m_Instance; 
 | 
    } 
 | 
  
 | 
    private Map<String, Object> m_Message = new HashMap<>(); 
 | 
    public boolean payProcessing = false; 
 | 
  
 | 
    public void onCreate(Activity activity, Bundle savedInstanceState) 
 | 
    { 
 | 
        //初始化SDK 
 | 
        // 参数1:上下文对象 
 | 
        // 参数2:Bundle对象 
 | 
        // 参数3:SDK的横竖屏管理 (ORIENTATION_HORIZONTAL 代表横屏,ORIENTATION_VERTICAL 代表竖屏) 
 | 
        // 参数4:初始化回调 
 | 
        SPGameController.getInstance(). 
 | 
                onCreate(activity, savedInstanceState, 
 | 
                         SPGameController.ORIENTATION_HORIZONTAL, 
 | 
                         new SPInitCallback() 
 | 
                         { 
 | 
                             @Override 
 | 
                             public void onResult(int code, String msg) 
 | 
                             { 
 | 
                                 m_Message.clear(); 
 | 
                                 LogUtil.i(TAG, "SPGameController  :" + msg); 
 | 
                                 switch (code) 
 | 
                                 { 
 | 
                                     case CallbackCode.SUCCESS://初始化成功 
 | 
                                         m_Message.put("code", CodeA2U.FreePlatformInitOk); 
 | 
                                         UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                                         break; 
 | 
                                     case CallbackCode.FAIL://初始化失败 
 | 
                                         m_Message.put("code", CodeA2U.FreePlatformInitFail); 
 | 
                                         UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                                         break; 
 | 
                                 } 
 | 
                             } 
 | 
                         }); 
 | 
  
 | 
        //设置登出监听 
 | 
        SPGameController.getInstance().setLogoutListener(new SPLogoutCallback() 
 | 
        { 
 | 
            @Override 
 | 
            public void onResult(int status, String msg) 
 | 
            { 
 | 
                m_Message.clear(); 
 | 
                switch (status) 
 | 
                { 
 | 
                    case CallbackCode.SUCCESS://注销成功 
 | 
                        //需要把游戏切换回登陆前的场景,并重新弹出登录框等操作 
 | 
                        m_Message.put("code", CodeA2U.FreePlatformLogoutOk); 
 | 
                        UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                        break; 
 | 
                    case CallbackCode.FAIL://注销失败 
 | 
                        //注销失败也可以执行注销成功的操作 
 | 
                        LogUtil.i(TAG,"!!!!!!! 登出失败 !!!!!!!"); 
 | 
                        m_Message.put("code", CodeA2U.FreePlatformLogoutOk); 
 | 
                        UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                        break; 
 | 
                } 
 | 
            } 
 | 
        }); 
 | 
  
 | 
    } 
 | 
  
 | 
    public void login(final Activity activity) 
 | 
    { 
 | 
        SPGameController.getInstance().login(new SPLoginCallback() 
 | 
        { 
 | 
            @Override 
 | 
            public void onResult(LoginResponse response) 
 | 
            { 
 | 
                m_Message.clear(); 
 | 
                switch (response.getStatus()) 
 | 
                { 
 | 
                    case CallbackCode.SUCCESS://登陆成功 
 | 
                        //根据回调获取用户信息 
 | 
                        String userName = response.getUsername(); 
 | 
                        String sessionId = response.getSession_id(); 
 | 
                        String timestamp = response.getTimestamp() + ""; 
 | 
                        String token = response.getToken(); 
 | 
                        try 
 | 
                        { 
 | 
                            JSONObject _info = new JSONObject(); 
 | 
                            _info.put("account", userName); 
 | 
                            _info.put("token", token); 
 | 
                            _info.put("session_id", sessionId); 
 | 
                            _info.put("timeStamp", timestamp); 
 | 
                            m_Message.put("code", CodeA2U.FreePlatformLoginOk); 
 | 
                            m_Message.put("info", _info); 
 | 
                            UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                        } catch (JSONException e) 
 | 
                        { 
 | 
                            e.printStackTrace(); 
 | 
                        } 
 | 
                        LogUtil.i(TAG, "登陆的账号为: " + userName); 
 | 
                        break; 
 | 
                    case CallbackCode.FAIL://登陆失败 
 | 
                        m_Message.put("code", CodeA2U.FreePlatformLoginFail); 
 | 
                        UniversalUtil.sendMessageToUnity(m_Message); 
 | 
                        LogUtil.i(TAG, "登陆失败 - " + response.getMsg()); 
 | 
                        break; 
 | 
                } 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    public void logout() 
 | 
    { 
 | 
        SPGameController.getInstance().logout(); 
 | 
    } 
 | 
  
 | 
    public void pay(final Activity activity, String productName, String productID, float price, 
 | 
                    String extData) 
 | 
    { 
 | 
        SPGameController.getInstance().pay(String.valueOf(price), 
 | 
                                           extData, 
 | 
                                           productID, 
 | 
                                           productName, 
 | 
                                           new SPPayCallback() 
 | 
                                           { 
 | 
                                               @Override 
 | 
                                               public void onResult(PayOrder payOrder) 
 | 
                                               { 
 | 
                                                   m_Message.clear(); 
 | 
                                                   switch (payOrder.getStatus()) 
 | 
                                                   { 
 | 
                                                       case 7://支付中 
 | 
                                                           break; 
 | 
                                                       case 1://支付成功 
 | 
                                                           //根据回调获取支付订单信息 
 | 
                                                           String s = payOrder.toString(); 
 | 
                                                           LogUtil.i(TAG, 
 | 
                                                                     payOrder.getStatus() + "  " + s); 
 | 
                                                           m_Message.put("code", 
 | 
                                                                         CodeA2U.FreePlatformPayOk); 
 | 
                                                           UniversalUtil.sendMessageToUnity( 
 | 
                                                                   m_Message); 
 | 
                                                           payProcessing = false; 
 | 
                                                           break; 
 | 
                                                       case 404://支付失败 
 | 
                                                           m_Message.put("code", 
 | 
                                                                         CodeA2U.FreePlatformPayFail); 
 | 
                                                           UniversalUtil.sendMessageToUnity( 
 | 
                                                                   m_Message); 
 | 
                                                           LogUtil.i(TAG, 
 | 
                                                                     "STATUS: " + payOrder.getStatus()); 
 | 
                                                           payProcessing = false; 
 | 
                                                           break; 
 | 
                                                   } 
 | 
                                               } 
 | 
                                           }); 
 | 
        payProcessing = true; 
 | 
    } 
 | 
  
 | 
    public void createRole(String serverID, 
 | 
                           String serverName, 
 | 
                           String roleID, 
 | 
                           String roleName, 
 | 
                           String roleLevel, 
 | 
                           String FamilyName, 
 | 
                           String GameName, 
 | 
                           String Job, 
 | 
                           String vipLevel, 
 | 
                           String surplusMoney) 
 | 
    { 
 | 
        GameData gamedata = createGameData(serverID, serverName, roleID, roleName, roleLevel, 
 | 
                                           FamilyName, GameName, Job, vipLevel, surplusMoney); 
 | 
        SPGameController.getInstance().setGameData(gamedata, 1); 
 | 
    } 
 | 
  
 | 
    public void enterWorld(String serverID, 
 | 
                           String serverName, 
 | 
                           String roleID, 
 | 
                           String roleName, 
 | 
                           String roleLevel, 
 | 
                           String FamilyName, 
 | 
                           String GameName, 
 | 
                           String Job, 
 | 
                           String vipLevel, 
 | 
                           String surplusMoney) 
 | 
    { 
 | 
//        long roleCTime 
 | 
        GameData gamedata = createGameData(serverID, serverName, roleID, roleName, roleLevel, 
 | 
                                           FamilyName, GameName, Job, vipLevel, surplusMoney); 
 | 
        SPGameController.getInstance().setGameData(gamedata, 2); 
 | 
    } 
 | 
  
 | 
    public void levelUp(String serverID, 
 | 
                        String serverName, 
 | 
                        String roleID, 
 | 
                        String roleName, 
 | 
                        String roleLevel, 
 | 
                        String FamilyName, 
 | 
                        String GameName, 
 | 
                        String Job, 
 | 
                        String vipLevel, 
 | 
                        String surplusMoney) 
 | 
    { 
 | 
        GameData gamedata = createGameData(serverID, serverName, roleID, roleName, roleLevel, 
 | 
                                           FamilyName, GameName, Job, vipLevel, surplusMoney); 
 | 
        SPGameController.getInstance().setGameData(gamedata, 3); 
 | 
    } 
 | 
  
 | 
    private GameData createGameData(String serverID, 
 | 
                                    String serverName, 
 | 
                                    String roleID, 
 | 
                                    String roleName, 
 | 
                                    String roleLevel, 
 | 
                                    String FamilyName, 
 | 
                                    String GameName, 
 | 
                                    String Job, 
 | 
                                    String vipLevel, 
 | 
                                    String surplusMoney) 
 | 
    { 
 | 
        GameData gamedata = new GameData(); 
 | 
        gamedata.setServerid(serverID); 
 | 
        gamedata.setServerName(serverName); 
 | 
        gamedata.setRoleId(roleID); 
 | 
        gamedata.setRoleName(roleName); 
 | 
        gamedata.setLevel(roleLevel); 
 | 
        gamedata.setPartyName(FamilyName); 
 | 
        gamedata.setGameName(GameName); 
 | 
        gamedata.setRoleType(Job); 
 | 
        gamedata.setVip(vipLevel); 
 | 
        gamedata.setGamemoney(surplusMoney); 
 | 
        return gamedata; 
 | 
    } 
 | 
  
 | 
    public void SendRegisterEvent() 
 | 
    { 
 | 
    } 
 | 
} 
 |