コード例 #1
0
        public void SignIn(Session.SignInDelegate handler)
        {
            if (status == SessionStatus.NONE)
            {
                Result result = new Result(Result.NETMARBLES_DOMAIN, Result.SERVICE, "Not initialized");

                if (handler != null)
                {
                    handler(result);
                }
            }
            else if (status == SessionStatus.INITIALIZING)
            {
                waitForSignin = true;
                signInHandler = handler;
            }
            else if (status == SessionStatus.SIGNING)
            {
                Result result = new Result(Result.NETMARBLES_DOMAIN, Result.IN_PROGRESS, "It is currently in progress.");

                if (handler != null)
                {
                    handler(result);
                }
            }
            else
            {
                status = SessionStatus.SIGNING;
                SignIn(OnSignIn, handler);
            }
        }
コード例 #2
0
        private void OnSignIn(Result result, Session.SignInDelegate handler)
        {
            status        = SessionStatus.SIGNED;
            waitForSignin = false;

            if (handler != null)
            {
                handler(result);
            }

            signInHandler = null;
        }
コード例 #3
0
        private WWW SignIn(SignInDelegate callback, Session.SignInDelegate handler)
        {
            if (GMC2ServiceManager.Instance.GetConstantCount() == 0)
            {
                if (callback != null && callback is SignInDelegate)
                {
                    Result result = new Result(Result.NETMARBLES_DOMAIN, Result.SERVICE, "GMC2 is fail");
                    Log.Debug("[NMGPlayMode.SessionManager] SignIn Fail (" + result + ")");
                    callback(result, handler);
                }
                return(null);
            }

            deviceKey = NMGPlayerPrefs.GetDeviceKey();

            if (string.IsNullOrEmpty(deviceKey))
            {
                deviceKey = Guid.NewGuid().ToString().Replace("-", "").ToUpper();
                NMGPlayerPrefs.SetDeviceKey(deviceKey);
                Log.Debug("[NMGPlayMode.SessionManager] Save new deviceKey : " + deviceKey);
            }


            // UNDONE nmDeviceKey
            // string nmDeviceKey = null;
            // androidid, uuid

            WWWForm wwwForm = new WWWForm();

            wwwForm.AddField("gameCode", ConfigurationManager.Instance.GameCode);
            wwwForm.AddField("deviceKey", deviceKey);
            wwwForm.AddField("playerId", playerId);
            wwwForm.AddField("countryCode", countryCode);

            Dictionary <string, string> headerDic = new Dictionary <string, string>();

            headerDic["Content-Type"] = "application/x-www-form-urlencoded";
            headerDic["Accept"]       = "application/json";

            string authUrl = GMC2ServiceManager.Instance.GetConstantValue("authUrl");

            if (authUrl != null)
            {
                authUrl = authUrl.Replace("http://", "https://");
            }
            authUrl += NMGConstants.SIGN_IN;

            WWW www = new WWW(authUrl, wwwForm.data, headerDic);

            CallbackManager.NetmarbleGameObject.StartCoroutine(WaitForSignIn(www, callback, handler));
            return(www);
        }
コード例 #4
0
        private void OnChannelOptionSignIn(Result result, Session.SignInDelegate handler)
        {
            if (connectToChannelHandler != null)
            {
                connectToChannelHandler(result, null);
            }
            else if (selectChannelConnectOptionHandler != null)
            {
                selectChannelConnectOptionHandler(result);
            }

            connectToChannelHandler           = null;
            selectChannelConnectOptionHandler = null;
        }
コード例 #5
0
        private void OnCreateSession(Result result)
        {
            status = SessionStatus.INITIALIZED;

            if (result.IsSuccess())
            {
                Log.Debug("[NMGPlayMode.SessionManager] CreateSession Success");

                // TODO update locale, language
                // UNDONE push update

                if (waitForTermsOfService)
                {
                    UIViewManager.Instance.ShowTermsOfServiceView(termsOfServiceHandler);
                }

                if (waitForSignin)
                {
                    status = SessionStatus.SIGNING;
                    SignIn(OnSignIn, signInHandler);
                }
            }
            else
            {
                Log.Debug("[NMGPlayMode.SessionManager] CreateSession Fail");

                if (waitForTermsOfService)
                {
                    if (termsOfServiceHandler != null)
                    {
                        Log.Debug("[NMGPlayMode.SessionManager] Fail to get netmarbleS constants");
                        UIViewManager.Instance.OnShowView(UIViewState.FAILED, termsOfServiceHandler);
                    }
                }
                if (waitForSignin)
                {
                    if (signInHandler != null)
                    {
                        waitForSignin = false;
                        status        = SessionStatus.NONE;

                        Result signinResult = new Result(Result.NETMARBLES_DOMAIN, Result.SERVICE, "Fail to get netmarbleS constants");
                        signInHandler(signinResult);
                        signInHandler = null;
                    }
                }
            }
        }
コード例 #6
0
        private IEnumerator WaitForSignIn(WWW www, SignInDelegate callback, Session.SignInDelegate handler)
        {
            yield return(www);

            Log.Debug("[NMGPlayMode.SessionManager] SignIn Callback : " + www.text + ", error : " + www.error);

            if (www.error == null)
            {
                ProcessData(www.text, callback, handler);
            }
            else
            {
                if (callback != null && callback is SignInDelegate)
                {
                    Result result = new Result(Result.NETMARBLES_DOMAIN, Result.SERVICE, www.error);
                    Log.Debug("[NMGPlayMode.SessionManager] SignIn Fail (" + result + ")");
                    callback(result, handler);
                }
            }
        }
コード例 #7
0
        public int SetSignInCallback(Session.SignInDelegate callback)
        {
            if (null == callback)
            {
                return(0);
            }

            int handlerNum = CallbackManager.AddHandler(delegate(CallbackMessage message)
            {
                Log.Debug("[SessionCallback] SignInCallback: " + message.ToString());

                Result result = message.GetResult();

                if (null != callback)
                {
                    callback(result);
                }
            });

            return(handlerNum);
        }
コード例 #8
0
        public void SignIn(Session.SignInDelegate callback)
        {
            int handlerNum = sessionCallback.SetSignInCallback(callback);

            nmg_session_signIn(handlerNum);
        }
コード例 #9
0
 public void SignIn(Session.SignInDelegate callback)
 {
     SessionManager.Instance.SignIn(callback);
 }
コード例 #10
0
        private void ProcessData(string jsonString, SignInDelegate callback, Session.SignInDelegate handler)
        {
            JsonData jsonData = JsonMapper.ToObject(jsonString);

            int    resultCode    = (int)jsonData["resultCode"];
            string resultMessage = jsonData["resultMessage"].ToString();

            if (resultCode == 200)
            {
                JsonData    playerData = jsonData["player"];
                IDictionary playerDic  = playerData as IDictionary;

                playerId = playerDic["playerId"].ToString();

                string region = null;
                if (playerDic.Contains("gameRegion"))
                {
                    region = playerDic["gameRegion"].ToString();
                }
                NMGPlayerPrefs.SetRegion(region);
                Log.Debug("[NMGPlayMode.SessionManager] Save new region : " + region);

                string joinedCountryCode = null;

                if (playerDic.Contains("joinedCountryCode"))
                {
                    joinedCountryCode = playerDic["joinedCountryCode"].ToString();
                }
                NMGPlayerPrefs.SetJoinedCountryCode(joinedCountryCode);
                Log.Debug("[NMGPlayMode.SessionManager] Save new JoinedCountryCode : " + joinedCountryCode);

                JsonData resultData = jsonData["resultData"];
                gameToken = resultData["gameToken"].ToString();

                JsonData keyInfoData = resultData["cipherKeyList"]["keyInfos"];

                for (int i = 0; i < keyInfoData.Count; i++)
                {
                    string cipherType = keyInfoData[i]["cipherType"].ToString();
                    string secretKey  = keyInfoData[i]["secretKey"].ToString();

                    Cipher cipher = null;
                    if (cipherType == "CIPHER_RC4_40")
                    {
                        cipher = new Cipher(CipherType.RC4_40, secretKey, null);
                    }
                    else if (cipherType == "CIPHER_AES_128_CBC")
                    {
                        string aesInitVec = keyInfoData[i]["aesInitVec"].ToString();
                        cipher = new Cipher(CipherType.AES_128_CBC, secretKey, aesInitVec);
                    }

                    if (cipher != null)
                    {
                        cipherDataDic[cipher.CipherType] = cipher;
                    }
                }

                JsonData hmacInfoData = resultData["hmacInfoList"]["hmacInfos"];

                for (int i = 0; i < hmacInfoData.Count; i++)
                {
                    string hmacType = hmacInfoData[i]["hmacType"].ToString();
                    string hmacKey  = hmacInfoData[i]["hmacKey"].ToString();
                    hmacDataDic[hmacType] = hmacKey;
                }

                if (callback != null && callback is SignInDelegate)
                {
                    testData.SetChannelConnectionData(playerId, deviceKey);
                    CheckConnectedChannelAndAutoSignin(playerId);

                    // Talk
                    SignedTalkKit();

                    Result result = new Result(Result.NETMARBLES_DOMAIN, Result.SUCCESS, "Success");
                    Log.Debug("[NMGPlayMode.SessionManager] SignIn OK (" + result + ")");

                    callback(result, handler);
                }
            }
            else
            {
                if (callback != null && callback is SignInDelegate)
                {
                    Result result = new Result(Result.NETMARBLES_DOMAIN, Result.SERVICE, "ErrorCode(" + resultCode + "), ErrorMessage(" + resultMessage + ")");
                    Log.Debug("[NMGPlayMode.SessionManager] SignIn Fail (" + result + ")");
                    callback(result, handler);
                }
            }
        }
コード例 #11
0
 public void SignIn(Session.SignInDelegate callback)
 {
 }
コード例 #12
0
        public void SignIn(Session.SignInDelegate callback)
        {
            int handlerNum = sessionCallback.SetSignInCallback(callback);

            sessionAndroidClass.CallStatic("nmg_session_signIn", handlerNum);
        }