//--------------------------------------
        // Protected Methods
        //--------------------------------------

        protected void UpdateSignedPlater(UM_PlayerInfo info)
        {
            m_currentPlayerInfo = info;
            m_onPlayerChanged.Invoke();

            UM_AnalyticsInternal.OnPlayerUpdated(info);
        }
        protected void RevealLocally(string id)
        {
            var achievement = GetAchievementById(id);

            if (achievement != null)
            {
                achievement.SetSate(UM_AchievementState.REVEALED);
                UM_AnalyticsInternal.OnAchievementUpdated(achievement);
            }
        }
        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);
        }
        //--------------------------------------
        //  Protected Methods
        //--------------------------------------

        protected void UpdateTransaction(UM_iTransaction transaction)
        {
            if (m_Observer == null)
            {
                Debug.LogError("UpdateTransaction has been called before m_observer is set");
                return;
            }

            UM_AnalyticsInternal.OnTransactionUpdated(transaction);
            m_Observer.OnTransactionUpdated(transaction);
        }
        protected void IncrementLocally(string id, int numSteps)
        {
            var achievement = GetAchievementById(id);

            if (achievement != null)
            {
                int progress = achievement.CurrentSteps + numSteps;
                achievement.SetCurrentSteps(progress);
                if (achievement.CurrentSteps >= achievement.TotalSteps)
                {
                    achievement.SetSate(UM_AchievementState.UNLOCKED);
                }

                UM_AnalyticsInternal.OnAchievementUpdated(achievement);
            }
        }
 protected void ReportScoreSubmited(string leaderboardId, long score, SA_Result result)
 {
     UM_AnalyticsInternal.OnScoreSubmit(leaderboardId, score, result);
 }
 protected void ReportGameSave(string name, SA_Result result)
 {
     UM_AnalyticsInternal.OnGameSave(name, result);
 }