/// <summary>
        /// Init the specified pItem, pUtils, pGroupId, pActionResetCacheGroup and pList.
        /// </summary>
        /// <param name="pItem">P item.</param>
        /// <param name="pUtils">P utils.</param>
        /// <param name="pGroupId">P group identifier.</param>
        /// <param name="pActionResetCacheGroup">P action reset cache group.</param>
        /// <param name="pList">If set to <c>true</c> p list.</param>
        public void init(XsollaShopItem pItem, XsollaUtils pUtils, int pGroupId, Action <int, bool> pActionResetCacheGroup, bool pList)
        {
            mItem    = pItem;
            mUtils   = pUtils;
            mGroupId = pGroupId;
            mActionResetCacheGroup = pActionResetCacheGroup;
            mIsListLayoutItem      = pList;

            // Загружаем картинку
            mImgLoader.LoadImage(mItemImg, pItem.GetImageUrl());

            // Задаем название
            mItemName.text = pItem.GetName();

            // Задаем короткое описание
            mShortDesc.text = pItem.GetDescription();

            // Дефолтное состояние прогресс бара
            ProgressBarBuyBtn(false);

            // Задаем полное описание
            if (mLongCanvas != null)
            {
                Resizer.ResizeToParrentRe(mLongCanvas.gameObject);
            }
            // Если полное описание пустое, то скрываем ссылку
            if (pItem.GetLongDescription() != "")
            {
                mLongDesc.text = pItem.GetLongDescription();
            }
            else
            {
                mLongDescLink.gameObject.SetActive(false);
            }

            // Задаем иконку любимого товара
            SetFavoriteState();
            mFav.gameObject.GetComponent <Button>().onClick.AddListener(delegate { ChangeFavState(); });

            // Задаем состояние длинного описания
            LongDescState = false;
            mLongDescLink.GetComponent <Button>().onClick.AddListener(delegate { SetStateLongState(!mLongDescState); });

            // Блокируем минус
            if (mQuantityMinus != null)
            {
                mQuantityMinus.interactable = false;
            }

            // Задаем поля для лэндинга list
            SetListLandingItem(pItem);
            // Рекламный блок
            SetAdBlock(pItem);
            // Ценовой блок
            SetAmountBlock(pItem.vcAmount, pItem.vcAmountWithoutDiscount, pItem.amount, pItem.amountWithoutDiscount, pItem.currency);
        }
 protected override void SubsManagerListRecived(XsollaManagerSubscriptions pSubsList)
 {
     if (_SubsManagerController == null)
     {
         GameObject obj = Instantiate(Resources.Load(PREFAB_SCREEN_SUBSCRIPTION_MANAGER)) as GameObject;
         _SubsManagerController = obj.GetComponent <SubsManagerController>();
         _SubsManagerController.initScreen(Utils, pSubsList);
         obj.transform.SetParent(mainScreenContainer.transform);
         obj.GetComponent <RectTransform>().anchoredPosition = new Vector2(0, 0);
         Resizer.ResizeToParrentRe(obj);
         Resizer.SetDefScale(obj);
     }
     else
     {
         _SubsManagerController.initScreen(Utils, pSubsList);
     }
     SetLoading(false);
 }
        /// <summary>
        /// Sets the amount block.
        /// </summary>
        /// <param name="pVcAmount">P vc amount.</param>
        /// <param name="pVcAmountWithoutDiscount">P vc amount without discount.</param>
        /// <param name="pAmount">P amount.</param>
        /// <param name="pAmountWithoutDiscount">P amount without discount.</param>
        /// <param name="pCurrency">P currency.</param>
        private void SetAmountBlock(Decimal pVcAmount, Decimal pVcAmountWithoutDiscount, Decimal pAmount, Decimal pAmountWithoutDiscount, String pCurrency)
        {
            // Виртуальная покупка или нет
            if (mItem.IsVirtualPayment())
            {
                if (pVcAmount == pVcAmountWithoutDiscount)
                {
                    mAmount.text = pVcAmount.ToString("N2");
                }
                else
                {
                    mAmount.text = pVcAmountWithoutDiscount.ToString("N2") + " " + pVcAmount.ToString("N2");
                }

                if (mUtils.GetProject().virtualCurrencyIconUrl != "null")
                {
                    // если тут придется ошибка с загрузкой, нужно залить альфа канал
                    mImgLoader.LoadImage(mVcIcon, mUtils.GetProject().virtualCurrencyIconUrl);
                }
                else
                {
                    mAmount.text = mAmount.text + " " + mUtils.GetProject().virtualCurrencyName;
                    mVcIcon.gameObject.SetActive(false);
                }
                mCurrency.gameObject.SetActive(false);
            }
            else
            {
                mVcIcon.gameObject.SetActive(false);
                if (pAmount == pAmountWithoutDiscount)
                {
                    mAmount.text = CurrencyFormatter.Instance.FormatPrice(pCurrency, pAmount);
                }
                else
                {
                    mOldAmount.enabled = true;
                    mOldAmount.text    = CurrencyFormatter.Instance.FormatPrice(pCurrency, pAmountWithoutDiscount);
                    mAmount.text       = CurrencyFormatter.Instance.FormatPrice(pCurrency, pAmount);
                }
            }

            // Название для кнопки покупки
            mBtnBuyText.text = mUtils.GetTranslations().Get("virtual_item_option_button");

            // Если цена должна быть в кнопке
            if (mUtils.GetSettings().mDesktop.pVirtItems.mButtonWithPrice)
            {
                // Скрываем текст самой кнопки
                mBuyBtn.GetComponentInChildren <Text>().gameObject.SetActive(false);
                // Переносим ценовой блок в кнопку
                mAmountPanel.transform.SetParent(mBuyBtn.transform);
                // Растягиваем
                Resizer.ResizeToParrentRe(mAmountPanel);
                // Меняем цвет текстов
                IEnumerator lEnum = mAmountPanel.transform.GetComponentsInChildren <ColorController>().GetEnumerator();
                while (lEnum.MoveNext())
                {
                    (lEnum.Current as ColorController).itemsToColor[0].color = StyleManager.BaseColor.txt_white;
                }
            }

            mBuyBtn.GetComponent <Button>().onClick.AddListener(delegate
            {
                BuyClick(mItem);
            });
        }