示例#1
0
        public static void Authenticate(Action <SA_Result> callback)
        {
            if (m_successAuthenticateResultCache != null)
            {
                callback.Invoke(m_successAuthenticateResultCache);
                return;
            }

            m_onAuthenticateLocalPlayerComplete += callback;
            if (m_isAuthenticateInProgress)
            {
                return;
            }


            m_isAuthenticateInProgress = true;

            ISN_GKLib.API.AuthenticateLocalPlayer(result =>
            {
                m_isAuthenticateInProgress = false;
                if (result.IsSucceeded)
                {
                    m_successAuthenticateResultCache = result;
                }
                m_onAuthenticateLocalPlayerComplete.Invoke(result);
                m_onAuthenticateLocalPlayerComplete = delegate { };
            });
        }
示例#2
0
        private void RetrivePlayer(Action <SA_Result> callback)
        {
            AN_Logger.Log("UM_AndroidSignInClient, cleint sigined-in, getting the player info");

            //When Sign in is finished with successes
            var gamesClient = AN_Games.GetGamesClient();

            gamesClient.SetViewForPopups(AN_MainActivity.Instance);

            //optionally
            gamesClient.SetGravityForPopups(AN_Gravity.TOP | AN_Gravity.CENTER_HORIZONTAL);

            AN_PlayersClient client = AN_Games.GetPlayersClient();
            SA_Result        apiResult;

            client.GetCurrentPlayer((result) => {
                if (result.IsSucceeded)
                {
                    apiResult = new SA_Result();

                    AN_Logger.Log("UM_AndroidSignInClient, player info retrived, OnPlayerChnaged event will be sent");
                    UpdatePlayerInfo(result.Data);
                }
                else
                {
                    apiResult = new SA_Result(result.Error);
                }


                AN_Logger.Log("UM_AndroidSignInClient, sending sing in result");
                callback.Invoke(apiResult);
            });
        }
示例#3
0
            private void OnInstaPostFailed(string data)
            {
                int code = Convert.ToInt32(data);

                SA_Error  error  = new SA_Error(code, "Posting Failed");
                SA_Result result = new SA_Result(error);

                OnPostResult(result);
            }
        protected void SetRestoreTransactionsResult(SA_Result result)
        {
            if (m_Observer == null)
            {
                Debug.LogError("SetRestoreTransactionsResult has been called before m_observer is set");
                return;
            }

            UM_AnalyticsInternal.OnRestoreTransactions();
            m_Observer.OnRestoreTransactionsComplete(result);
        }
示例#5
0
 public static void DisplayResultMessage(SA_Result result)
 {
     if (result.IsSucceeded)
     {
         ShowMessage("Success", "Operation completed successfully!");
     }
     else
     {
         ShowMessage("Error", result.Error.FullMessage);
     }
 }
示例#6
0
 public static void PrintSharingResult(SA_Result result)
 {
     if (result.IsSucceeded)
     {
         AN_FirebaseAnalytics.LogEvent("Sharing_Completed");
         Debug.Log("Sharing Completed.");
     }
     else
     {
         Debug.Log("Failed to share: " + result.Error.FullMessage);
     }
 }
示例#7
0
 /// <summary>
 /// Remove event though EventKit by it's identifier.
 /// <summary>
 public void RemoveEvent(Action <SA_Result> callback, string identifier)
 {
     if (string.IsNullOrEmpty(identifier))
     {
         SA_Error  error  = new SA_Error(1, "Identifier parameter is empty or null.");
         SA_Result result = new SA_Result(error);
         callback.Invoke(result);
     }
     #if UNITY_IPHONE && EVENT_KIT_ENABLED
     _ISN_RemoveEvent(ISN_MonoPCallback.ActionToIntPtr <SA_Result>(callback), identifier);
     #endif
 }
示例#8
0
        protected override void ConnectToService(string appId, Action <SA_Result> callback)
        {
#if SA_UNITY_ADS_INSTALLED
            m_initCallback = callback;
            Monetization.Initialize(appId, UM_UnityAdsSettings.Instance.TestMode);

            SA_Coroutine.Start(WaitForInitialization());
#else
            var error  = new SA_Error(1, "Unity Ads SDK is missing");
            var result = new SA_Result(error);
            callback.Invoke(result);
#endif
        }
        public void OnRestoreTransactionsComplete(SA_Result result) {

            /// Tells the observer that the payment queue has finished sending restored transactions.
            /// 
            /// This method is called after all restorable transactions have been processed by the payment queue. 
            /// Your application is not required to do anything in this method.

            if (result.IsSucceeded) {
                Debug.Log("Restore Compleated");
            } else {
                Debug.Log("Error: " + result.Error.Code + " message: " + result.Error.Message);
            }
        }
示例#10
0
 public static void PrintSharingResult(SA_Result result)
 {
     if (result.IsSucceeded)
     {
         UM_DialogsUtility.ShowMessage("Result", "Sharing Completed.");
         Debug.Log("Sharing Completed.");
     }
     else
     {
         UM_DialogsUtility.ShowMessage("Result", "Failed to share: " + result.Error.FullMessage);
         Debug.Log("Failed to share: " + result.Error.FullMessage);
     }
 }
示例#11
0
    //--------------------------------------
    // AN_iSkuDetailsResponseListener
    //--------------------------------------

    public void OnSkuDetailsResponse(SA_Result billingResult, List <AN_SkuDetails> skuDetailsList)
    {
        AN_Logger.Log("OnSkuDetailsResponse IsSucceeded: " + billingResult.IsSucceeded);
        if (billingResult.IsSucceeded)
        {
            AN_Logger.Log("Loaded " + skuDetailsList.Count + " products");
            foreach (var skuDetails in skuDetailsList)
            {
                AN_Logger.Log("--------------------->");
                PrintSku(skuDetails);

                var productView = Instantiate(m_ProductView.gameObject, m_ProductView.transform.parent).GetComponent <AN_ProductView>();
                productView.transform.localScale = m_ProductView.transform.localScale;
                productView.gameObject.SetActive(true);
                productView.ProductTitle.text = skuDetails.Title;
                if (!string.IsNullOrEmpty(skuDetails.IconUrl))
                {
                    SA_CachedRequestsFactory.GetTexture2D(skuDetails.IconUrl, texture =>
                    {
                        productView.ProductImage.texture = texture;
                    });
                }

                var productPurchasedInfo = IsProductPurchased(skuDetails);

                if (productPurchasedInfo != null)
                {
                    productView.BuyButton.GetComponentInChildren <Text>().text = "Consume";
                    productView.BuyButton.onClick.AddListener(() =>
                    {
                        var paramsBuilder = AN_ConsumeParams.NewBuilder();
                        paramsBuilder.SetPurchaseToken(productPurchasedInfo.PurchaseToken);

                        m_BillingClientSample.Client.ConsumeAsync(paramsBuilder.Build(), this);
                    });
                }
                else
                {
                    productView.BuyButton.GetComponentInChildren <Text>().text = "Buy";
                    productView.BuyButton.onClick.AddListener(() =>
                    {
                        var paramsBuilder = AN_BillingFlowParams.NewBuilder();
                        paramsBuilder.SetSkuDetails(skuDetails);

                        m_BillingClientSample.Client.LaunchBillingFlow(paramsBuilder.Build());
                    });
                }
            }
        }
    }
        //--------------------------------------
        //  UM_AbstractInAppClient
        //--------------------------------------

        protected override void ConnectToService(Action <SA_Result> callback)
        {
            AN_Billing.Connect((result) => {
                if (!result.IsInAppsAPIAvalible && !result.IsSubsAPIAvalible)
                {
                    var error            = new SA_Error(100, "Current device does not support InApps");
                    var connectionResult = new SA_Result(error);
                    callback.Invoke(connectionResult);
                    return;
                }

                callback.Invoke(result);
            });
        }
示例#13
0
 public static SA_TestResult FromSAResult(SA_Result result)
 {
     if (result == null)
     {
         return(WithError("Result is null"));
     }
     else if (result.IsFailed)
     {
         return(WithError(result.Error.FullMessage));
     }
     else
     {
         return(OK);
     }
 }
 public void OnSkuDetailsResponse(SA_Result billingResult, List <AN_SkuDetails> skuDetailsList)
 {
     if (billingResult.IsSucceeded)
     {
         var result = new List <AN_SkuDetails>();
         foreach (var product in skuDetailsList)
         {
             var settingsProduct = GetProductFromSettings(product.Sku);
             JsonUtility.FromJsonOverwrite(JsonUtility.ToJson(product), settingsProduct);
             result.Add(settingsProduct);
         }
         m_Callback.Invoke(result);
     }
     else
     {
         m_Callback.Invoke(new List <AN_SkuDetails>());
     }
 }
示例#15
0
        internal static void OnGameSave(string name, SA_Result result)
        {
            if (!UM_AnalyticsService.Client.IsInitialized)
            {
                return;
            }
            if (!Settings.GameSaves)
            {
                return;
            }
            if (result.IsFailed)
            {
                return;
            }

            var data = new Dictionary <string, object>();

            data.Add("SaveName", name);

            UM_AnalyticsService.Client.Event("GameSave", data);
        }
示例#16
0
        internal static void OnScoreSubmit(string leaderboardId, long score, SA_Result result)
        {
            if (!UM_AnalyticsService.Client.IsInitialized)
            {
                return;
            }
            if (!Settings.Scores)
            {
                return;
            }
            if (result.IsFailed)
            {
                return;
            }


            var data = new Dictionary <string, object>();

            data.Add("LeaderboardId", leaderboardId);
            data.Add("score", score);

            UM_AnalyticsService.Client.Event("Score", data);
        }
示例#17
0
            private void OnMailSuccess()
            {
                SA_Result result = new SA_Result();

                OnSendMailResult(result);
            }
        void OnImageSave(string data)
        {
            SA_Result result = JsonUtility.FromJson <SA_Result>(data);

            m_onImageSave.Invoke(result);
        }
 public void OnRestoreTransactionsComplete(SA_Result result)
 {
     //Restore transaction flow was completed.
     //If you've set any flags before starting the Restoration flow, this is the perfect spot to drop it.
 }
示例#20
0
            private void OnTwitterPostSuccess()
            {
                SA_Result result = new SA_Result();

                OnPostResult(result);
            }
 protected void ReportScoreSubmited(string leaderboardId, long score, SA_Result result)
 {
     UM_AnalyticsInternal.OnScoreSubmit(leaderboardId, score, result);
 }
示例#22
0
        void OnRequestAuthorization(string json)
        {
            SA_Result result = JsonUtility.FromJson <SA_Result>(json);

            m_onRequestAuthorization.Invoke(result);
        }
示例#23
0
        void OnAddNotificationRequest(string json)
        {
            SA_Result result = JsonUtility.FromJson <SA_Result>(json);

            m_onAddNotificationRequest.Invoke(result);
        }
示例#24
0
 public void OnSkuDetailsResponse(SA_Result billingResult, List <AN_SkuDetails> skuDetailsList)
 {
     m_OnSkuDetailsCallback.Invoke(skuDetailsList);
 }
示例#25
0
            private void OnTwitterPostFailed()
            {
                SA_Result result = new SA_Result(new SA_Error(0, "Unknown Error"));

                OnPostResult(result);
            }
示例#26
0
 public void OnRestoreTransactionsComplete(SA_Result result)
 {
     SetRestoreTransactionsResult(result);
 }
            private void OnFacebookPostSuccess()
            {
                SA_Result result = new SA_Result();

                OnPostResult(result);
            }
 public void OnRestoreTransactionsComplete(SA_Result result)
 {
 }
 protected void ReportGameSave(string name, SA_Result result)
 {
     UM_AnalyticsInternal.OnGameSave(name, result);
 }
        public override void SaveImage(Texture2D image, string fileName, Action <SA_Result> callback)
        {
            var result = new SA_Result();

            callback.Invoke(result);
        }