public override void ShowWebView(string url, GamebaseRequest.Webview.GamebaseWebViewConfiguration configuration = null, int closeCallbackHandle = -1, List <string> schemeList = null, int schemeEventHandle = -1)
        {
            GamebaseCallback.ErrorDelegate closeCallback = null;
            if (-1 != closeCallbackHandle)
            {
                closeCallback = GamebaseCallbackHandler.GetCallback <GamebaseCallback.ErrorDelegate>(closeCallbackHandle);
                GamebaseCallbackHandler.UnregisterCallback(closeCallbackHandle);
            }

            GamebaseCallback.GamebaseDelegate <string> schemeEvent = null;
            if (-1 != schemeEventHandle)
            {
                schemeEvent = GamebaseCallbackHandler.GetCallback <GamebaseCallback.GamebaseDelegate <string> >(schemeEventHandle);
                GamebaseCallbackHandler.UnregisterCallback(schemeEventHandle);
            }

            bool hasAdapter = WebviewAdapterManager.Instance.CreateWebviewAdapter("standalonewebviewadapter");

            if (false == hasAdapter)
            {
                GamebaseLog.Warn(GamebaseStrings.WEBVIEW_ADAPTER_NOT_FOUND, this);
                if (null != closeCallback)
                {
                    closeCallback(new GamebaseError(GamebaseErrorCode.WEBVIEW_UNKNOWN_ERROR, message: GamebaseStrings.WEBVIEW_ADAPTER_NOT_FOUND));
                }

                return;
            }

            WebviewAdapterManager.Instance.ShowWebView(url, configuration, closeCallback, schemeList, schemeEvent);
        }
        public IEnumerator Connect(GamebaseCallback.ErrorDelegate callback)
        {
            CreateSocket();

            float waitTime = 0;

            while (false == IsConnected() && null == GetErrorMessage() && waitTime < CommunicatorConfiguration.connectionTimeout)
            {
                waitTime += Time.unscaledDeltaTime;
                yield return(null);
            }

            GamebaseError error = null;

            if (false == string.IsNullOrEmpty(GetErrorMessage()))
            {
                error = new GamebaseError(GamebaseErrorCode.SOCKET_ERROR, message: GetErrorMessage());
            }
            else
            {
                if (waitTime >= CommunicatorConfiguration.connectionTimeout)
                {
                    error = new GamebaseError(GamebaseErrorCode.SOCKET_ERROR);
                }
                else
                {
                    GamebaseLog.Debug("socket connected.", this, "Connect");
                }
            }

            StartRecvPolling();

            callback(error);
        }
Example #3
0
        public static void FireNotSupportedAPI(object classObj, string methodName, GamebaseCallback.ErrorDelegate callback)
        {
            if (callback == null)
            {
                return;
            }

            GamebaseLog.Warn(string.Format("{0}", CreateNotSupportedMessage()), classObj, methodName);
            string message = string.Format("{0} - {1}.", methodName, CreateNotSupportedMessage());

            callback(CreateNotSupportedError(classObj.GetType().Name, message));
        }
Example #4
0
        public static void FireNotSupportedAPI(object classObj, GamebaseCallback.ErrorDelegate callback, [System.Runtime.CompilerServices.CallerMemberName] string methodName = "")
        {
            if (callback == null)
            {
                return;
            }

            GamebaseLog.Warn(string.Format("{0}", CreateNotSupportedMessage()), classObj, methodName);
            string message = string.Format("{0} - {1}.", methodName, CreateNotSupportedMessage());

            callback(CreateNotSupportedError(classObj.GetType().Name, message));
        }
        public IEnumerator Reconnect(GamebaseCallback.ErrorDelegate callback)
        {
            GamebaseLog.Debug(string.Format("SocketState:{0}", SocketState(nativeRef)), this);

            if (DEFAULT_NATIVE_REF != nativeRef)
            {
                if ((int)WebSocketState.Open == SocketState(nativeRef))
                {
                    callback(null);
                    yield break;
                }
            }

            Close();
            yield return(GamebaseCoroutineManager.StartCoroutine(GamebaseGameObjectManager.GameObjectType.WEBSOCKET_TYPE, Connect(callback)));
        }
        public IEnumerator Reconnect(GamebaseCallback.ErrorDelegate callback)
        {
            GamebaseLog.Debug(string.Format("SocketState:{0}", SocketState(nativeRef)), this, "Reconnect");

            if (DEFAULT_NATIVE_REF != nativeRef)
            {
                if ((int)WebSocketState.Open == SocketState(nativeRef))
                {
                    callback(null);
                    yield break;
                }
            }

            Close();
            yield return(GamebaseUnitySDKSettings.Instance.StartCoroutine(Connect(callback)));
        }
        public IEnumerator Send(string jsonString, GamebaseCallback.ErrorDelegate callback)
        {
            if (false == IsConnected())
            {
                yield return(GamebaseUnitySDKSettings.Instance.StartCoroutine(Reconnect((error) =>
                {
                    callback(error);

                    if (null == error)
                    {
                        SocketSend(nativeRef, jsonString);
                    }
                })));
            }
            else
            {
                SocketSend(nativeRef, jsonString);
            }
        }
Example #8
0
        public IEnumerator Send(string jsonString, GamebaseCallback.ErrorDelegate callback)
        {
            if (false == IsConnected())
            {
                yield return(GamebaseCoroutineManager.StartCoroutine(GamebaseGameObjectManager.GameObjectType.WEBSOCKET_TYPE, Reconnect((error) =>
                {
                    callback(error);

                    if (null == error)
                    {
                        socket.Send(jsonString);
                    }
                })));
            }
            else
            {
                socket.Send(jsonString);
            }
        }
Example #9
0
        public IEnumerator Reconnect(GamebaseCallback.ErrorDelegate callback)
        {
            if (null == socket)
            {
                yield return(GamebaseCoroutineManager.StartCoroutine(GamebaseGameObjectManager.GameObjectType.WEBSOCKET_TYPE, Connect(callback)));

                yield break;
            }

            GamebaseLog.Debug(string.Format("socket.ReadyState:{0}", socket.ReadyState), this);

            if (WebSocketState.Open == socket.ReadyState)
            {
                callback(null);
                yield break;
            }

            Close();
            yield return(GamebaseCoroutineManager.StartCoroutine(GamebaseGameObjectManager.GameObjectType.WEBSOCKET_TYPE, Connect(callback)));
        }
Example #10
0
        public IEnumerator Reconnect(GamebaseCallback.ErrorDelegate callback)
        {
            if (null == socket)
            {
                yield return(GamebaseUnitySDKSettings.Instance.StartCoroutine(Connect(callback)));

                yield break;
            }

            GamebaseLog.Debug(string.Format("socket.ReadyState:{0}", socket.ReadyState), this, "Reconnect");

            if (WebSocketState.Open == socket.ReadyState)
            {
                callback(null);
                yield break;
            }

            Close();
            yield return(GamebaseUnitySDKSettings.Instance.StartCoroutine(Connect(callback)));
        }
Example #11
0
        public void Logout(int handle)
        {
            GamebaseCallback.ErrorDelegate logoutCallback = (error) =>
            {
                if (Gamebase.IsSuccess(error) == true)
                {
                    GamebaseIndicatorReport.SendIndicatorData(
                        GamebaseIndicatorReportType.LogType.AUTH,
                        GamebaseIndicatorReportType.StabilityCode.GB_AUTH_LOGOUT_SUCCESS,
                        GamebaseIndicatorReportType.LogLevel.INFO,
                        new Dictionary <string, string>()
                    {
                        { GamebaseIndicatorReportType.AdditionalKey.GB_SUB_CATEGORY1, GamebaseIndicatorReportType.SubCategory.LOGOUT }
                    });
                }
                else
                {
                    GamebaseIndicatorReport.SendIndicatorData(
                        GamebaseIndicatorReportType.LogType.AUTH,
                        GamebaseIndicatorReportType.StabilityCode.GB_AUTH_LOGOUT_FAILED,
                        GamebaseIndicatorReportType.LogLevel.ERROR,
                        new Dictionary <string, string>()
                    {
                        { GamebaseIndicatorReportType.AdditionalKey.GB_SUB_CATEGORY1, GamebaseIndicatorReportType.SubCategory.LOGOUT }
                    },
                        error);
                }

                var callback = GamebaseCallbackHandler.GetCallback <GamebaseCallback.ErrorDelegate>(handle);

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

                GamebaseCallbackHandler.UnregisterCallback(handle);
            };

            int logoutHandle = GamebaseCallbackHandler.RegisterCallback(logoutCallback);

            if (CanLogout(logoutHandle) == false)
            {
                return;
            }

            var requestVO = AuthMessage.GetLogoutMessage();

            WebSocket.Instance.Request(requestVO, (response, error) =>
            {
                GamebaseAnalytics.Instance.IdPCode = string.Empty;

                GamebaseSystemPopup.Instance.ShowErrorPopup(error);

                var callback = GamebaseCallbackHandler.GetCallback <GamebaseCallback.ErrorDelegate>(logoutHandle);
                if (callback == null)
                {
                    return;
                }

                GamebaseCallbackHandler.UnregisterCallback(logoutHandle);

                RemoveLoginData();

                callback(error);
            });
        }
        public void RegisterPush(GamebaseRequest.Push.PushConfiguration pushConfiguration, GamebaseCallback.ErrorDelegate callback)
        {
            int handle = GamebaseCallbackHandler.RegisterCallback(callback);

            push.RegisterPush(pushConfiguration, handle);
        }
        public void Withdraw(GamebaseCallback.ErrorDelegate callback)
        {
            int handle = GamebaseCallbackHandler.RegisterCallback(callback);

            auth.Withdraw(handle);
        }
        public void ShowWebView(string url, GamebaseRequest.Webview.GamebaseWebViewConfiguration configuration = null, GamebaseCallback.ErrorDelegate closeCallback = null, List <string> schemeList = null, GamebaseCallback.GamebaseDelegate <string> schemeEvent = null)
        {
            int closeCallbackHandle = -1;
            int schemeEventHandle   = -1;

            if (null != closeCallback)
            {
                closeCallbackHandle = GamebaseCallbackHandler.RegisterCallback(closeCallback);
            }

            if (null != schemeEvent)
            {
                schemeEventHandle = GamebaseCallbackHandler.RegisterCallback(schemeEvent);
            }

            webview.ShowWebView(url, configuration, closeCallbackHandle, schemeList, schemeEventHandle);
        }
Example #15
0
        public void ShowWebView(string url, GamebaseRequest.Webview.GamebaseWebViewConfiguration configuration = null, GamebaseCallback.ErrorDelegate closeCallback = null, List <string> schemeList = null, GamebaseCallback.GamebaseDelegate <string> schemeEvent = null)
        {
            if (adapter == null)
            {
                if (null != closeCallback)
                {
                    closeCallback(new GamebaseError(GamebaseErrorCode.WEBVIEW_UNKNOWN_ERROR, message: GamebaseStrings.WEBVIEW_ADAPTER_NOT_FOUND));
                }
                return;
            }

            adapter.ShowWebView(url, configuration, closeCallback, schemeList, schemeEvent);
        }
        public void RemoveMapping(string providerName, GamebaseCallback.ErrorDelegate callback)
        {
            int handle = GamebaseCallbackHandler.RegisterCallback(callback);

            auth.RemoveMapping(providerName, handle);
        }
        public void Logout(GamebaseCallback.ErrorDelegate callback)
        {
            int handle = GamebaseCallbackHandler.RegisterCallback(callback);

            auth.Logout(handle);
        }
 public IEnumerator Connect(GamebaseCallback.ErrorDelegate callback)
 {
     yield return(GamebaseCoroutineManager.StartCoroutine(GamebaseGameObjectManager.GameObjectType.WEBSOCKET_TYPE, socket.Connect(callback)));
 }
Example #19
0
        public void OpenContact(GamebaseCallback.ErrorDelegate callback)
        {
            int handle = GamebaseCallbackHandler.RegisterCallback(callback);

            contact.OpenContact(handle);
        }
Example #20
0
 public IEnumerator Connect(GamebaseCallback.ErrorDelegate callback)
 {
     yield return(GamebaseUnitySDKSettings.Instance.StartCoroutine(socket.Connect(callback)));
 }
Example #21
0
        public void Withdraw(int handle)
        {
            GamebaseCallback.ErrorDelegate withdrawCallback = (error) =>
            {
                if (Gamebase.IsSuccess(error) == true)
                {
                    GamebaseIndicatorReport.SendIndicatorData(
                        GamebaseIndicatorReportType.LogType.AUTH,
                        GamebaseIndicatorReportType.StabilityCode.GB_AUTH_WITHDRAW_SUCCESS,
                        GamebaseIndicatorReportType.LogLevel.INFO,
                        new Dictionary <string, string>()
                    {
                        { GamebaseIndicatorReportType.AdditionalKey.GB_SUB_CATEGORY1, GamebaseIndicatorReportType.SubCategory.WITHDRAW }
                    });
                }
                else
                {
                    GamebaseIndicatorReport.SendIndicatorData(
                        GamebaseIndicatorReportType.LogType.AUTH,
                        GamebaseIndicatorReportType.StabilityCode.GB_AUTH_WITHDRAW_FAILED,
                        GamebaseIndicatorReportType.LogLevel.ERROR,
                        new Dictionary <string, string>()
                    {
                        { GamebaseIndicatorReportType.AdditionalKey.GB_SUB_CATEGORY1, GamebaseIndicatorReportType.SubCategory.WITHDRAW }
                    },
                        error);
                }

                var callback = GamebaseCallbackHandler.GetCallback <GamebaseCallback.ErrorDelegate>(handle);

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

                GamebaseCallbackHandler.UnregisterCallback(handle);
            };


            int withdrawHandle = GamebaseCallbackHandler.RegisterCallback(withdrawCallback);

            if (CanLogout(withdrawHandle) == false)
            {
                return;
            }

            var requestVO = AuthMessage.GetWithdrawMessage();

            WebSocket.Instance.Request(requestVO, (response, error) =>
            {
                GamebaseAnalytics.Instance.IdPCode = string.Empty;

                var callback = GamebaseCallbackHandler.GetCallback <GamebaseCallback.ErrorDelegate>(withdrawHandle);
                if (callback == null)
                {
                    return;
                }
                GamebaseCallbackHandler.UnregisterCallback(withdrawHandle);

                if (error == null)
                {
                    var vo = JsonMapper.ToObject <AuthResponse.WithdrawInfo>(response);
                    if (vo.header.isSuccessful == true)
                    {
                        RemoveLoginData();
                    }
                    else
                    {
                        if (GamebaseServerErrorCode.MEMBER_ALREADY_WITHDRAWN == vo.header.resultCode)
                        {
                            RemoveLoginData();
                        }
                        else
                        {
                            error = GamebaseErrorUtil.CreateGamebaseErrorByServerErrorCode(requestVO.transactionId, requestVO.apiId, vo.header, Domain);
                            GamebaseSystemPopup.Instance.ShowErrorPopup(error);
                        }
                    }
                }
                else
                {
                    GamebaseSystemPopup.Instance.ShowErrorPopup(error);
                }
                callback(error);
            });
        }