private void LoadPhrases(bool loadRecent = false)
        {
            ReturnPhraseViewToPool();
            if (!loadRecent && selectedTab == null)
            {
                return;
            }
            List <string> phrases = loadRecent ? dataProvider.GetRecentPhrases() : dataProvider.GetAllPhrases(selectedTab.Tag);

            if (phrases.Count == 0)
            {
                return;
            }

            foreach (string id in phrases)
            {
                FizzHypercasualDataItem phraseItem = dataProvider.GetPhrase(id);
                if (phraseItem == null)
                {
                    continue;
                }

                FizzHypercasualPhraseView phraseView = GetPhraseViewFromPool();
                phraseView.gameObject.SetActive(true);
                phraseView.transform.SetParent(PhrasesContainer, false);
                phraseView.transform.localScale = Vector3.one;
                phraseView.SetPhraseData(phraseItem);
                phraseView.OnPhraseClick = OnPhraseClicked;
            }
        }
        private FizzHypercasualPhraseView GetPhraseViewFromPool()
        {
            if (PhrasePool.childCount > 0)
            {
                return(PhrasePool.GetChild(0).GetComponent <FizzHypercasualPhraseView> ());
            }

            FizzHypercasualPhraseView phraseView = Instantiate(PhraseViewPrefab);

            phraseView.transform.SetParent(PhrasePool, false);

            return(phraseView);
        }
        private void OnPhraseClicked(FizzHypercasualPhraseView phraseView)
        {
            if (phraseView == null)
            {
                return;
            }
            if (Time.realtimeSinceStartup < timeSinceLastSend + RESEND_TIMER)
            {
                return;
            }

            dataProvider.AddPhraseToRecent(phraseView.PhraseData.Id);
            timeSinceLastSend = Time.realtimeSinceStartup;

            if (OnSendData != null)
            {
                Dictionary <string, string> phraseData = new Dictionary <string, string> ();
                phraseData.Add("type", "fizz_predefine_phrase");
                phraseData.Add("phrase_id", phraseView.PhraseData.Id);
                OnSendData.Invoke(phraseData);
            }
        }