Esempio n. 1
0
    private static void AddToAMMSettings(UM_InAppProduct prod)
    {
        if (prod.AmazonId.Equals(string.Empty))
        {
            return;
        }



        AmazonProductTemplate newTpl = new AmazonProductTemplate();

        newTpl.Sku            = prod.AmazonId;
        newTpl.Description    = prod.Description;
        newTpl.Title          = prod.DisplayName;
        newTpl.LocalizedPrice = prod.LocalizedPrice;
        newTpl.Texture        = prod.Texture;
        newTpl.IsOpen         = false;

        if (prod.Type == UM_InAppType.Consumable)
        {
            newTpl.ProductType = AMN_InAppType.CONSUMABLE;
        }

        if (prod.Type == UM_InAppType.NonConsumable)
        {
            newTpl.ProductType = AMN_InAppType.ENTITLED;
        }

        AmazonNativeSettings.Instance.InAppProducts.Add(newTpl);
    }
Esempio n. 2
0
    private int IsExistsInSettings(AmazonProductTemplate product)
    {
        foreach (AmazonProductTemplate p in AmazonNativeSettings.Instance.InAppProducts)
        {
            if (p.Sku.Equals(product.Sku))
            {
                return(AmazonNativeSettings.Instance.InAppProducts.IndexOf(p));
            }
        }

        return(-1);
    }
    public void SetTemplate(AmazonProductTemplate tpl)
    {
        _AmazonTemplate       = tpl;
        _template             = new UM_InAppProductTemplate();
        _template.id          = tpl.Sku;
        _template.title       = tpl.Title;
        _template.description = tpl.Description;
        _template.price       = tpl.Price.ToString();


        DisplayName    = tpl.Title;
        Description    = tpl.Description;
        _isTemplateSet = true;
    }
Esempio n. 4
0
    public void AddProduct(string sku)
    {
        AmazonProductTemplate product = new AmazonProductTemplate()
        {
            Sku = sku
        };
        int index = IsExistsInSettings(product);

        if (index != -1)
        {
            AmazonNativeSettings.Instance.InAppProducts.RemoveAt(index);
        }
        AmazonNativeSettings.Instance.InAppProducts.Add(product);
        Debug.Log("AddProduct(string sku)" + sku);
    }
Esempio n. 5
0
    private void GetProductDataHandler(GetProductDataResponse data)
    {
        availableItems = new Dictionary <string, AmazonProductTemplate>();

        // for each item in the productDataMap you can get the following values for all your SKU`s
        foreach (KeyValuePair <string, ProductData> entry in data.ProductDataMap)
        {
            AmazonProductTemplate product = new AmazonProductTemplate(entry.Value);
            availableItems.Add(entry.Key, product);
        }

        unavailableSkus = data.UnavailableSkus;

        AMN_GetProductDataResponse result = new AMN_GetProductDataResponse(data);

        OnGetProductDataReceived(result);
    }
    private void BillingSettings()
    {
        EditorGUILayout.Space();
        EditorGUILayout.HelpBox("Billing Settings", MessageType.None);

        EditorGUI.BeginChangeCheck();
        AmazonNativeSettings.Instance.IsBillingEnabled = SA.Common.Editor.Tools.ToggleFiled("Billing API", AmazonNativeSettings.Instance.IsBillingEnabled);
        if (EditorGUI.EndChangeCheck())
        {
            UpdatePluginSettings();
        }

        GUI.enabled = AmazonNativeSettings.Instance.IsBillingEnabled;

        EditorGUI.indentLevel++;
        {
            EditorGUILayout.BeginVertical(GUI.skin.box);

            EditorGUILayout.BeginHorizontal();
            AmazonNativeSettings.Instance.ShowStoreParams = EditorGUILayout.Foldout(AmazonNativeSettings.Instance.ShowStoreParams, "Products");
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.Space();

            if (AmazonNativeSettings.Instance.ShowStoreParams)
            {
                if (settings.InAppProducts.Count == 0)
                {
                    EditorGUILayout.HelpBox("No In-App Products Added", MessageType.Warning);
                }

                foreach (AmazonProductTemplate product in AmazonNativeSettings.Instance.InAppProducts)
                {
                    EditorGUILayout.BeginVertical(GUI.skin.box);

                    EditorGUILayout.BeginHorizontal();

                    GUIStyle s = new GUIStyle();
                    s.padding = new RectOffset();
                    s.margin  = new RectOffset();
                    s.border  = new RectOffset();

                    if (product.Texture != null)
                    {
                        GUILayout.Box(product.Texture, s, new GUILayoutOption[] { GUILayout.Width(18), GUILayout.Height(18) });
                    }

                    product.IsOpen = EditorGUILayout.Foldout(product.IsOpen, product.Title);


                    EditorGUILayout.LabelField(product.Price + "$");
                    bool ItemWasRemoved = DrawSortingButtons((object)product, AmazonNativeSettings.Instance.InAppProducts);
                    if (ItemWasRemoved)
                    {
                        return;
                    }

                    EditorGUILayout.EndHorizontal();

                    if (product.IsOpen)
                    {
                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.LabelField(ProductIdDLabel);
                        product.Sku = EditorGUILayout.TextField(product.Sku);
                        if (product.Sku.Length > 0)
                        {
                            product.Sku = product.Sku.Trim();
                        }
                        EditorGUILayout.EndHorizontal();

                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.LabelField(DisplayNameLabel);
                        product.Title = EditorGUILayout.TextField(product.Title);
                        EditorGUILayout.EndHorizontal();

                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.LabelField(IsConsLabel);
                        //check what type is coming
                        product.ProductType = (AMN_InAppType)EditorGUILayout.EnumPopup(product.ProductType);
                        EditorGUILayout.EndHorizontal();

                        EditorGUILayout.Space();
                        EditorGUILayout.Space();

                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.LabelField(DescriptionLabel);
                        EditorGUILayout.EndHorizontal();

                        EditorGUILayout.BeginHorizontal();
                        product.Description = EditorGUILayout.TextArea(product.Description, new GUILayoutOption[] { GUILayout.Height(60), GUILayout.Width(200) });
                        product.Texture     = (Texture2D)EditorGUILayout.ObjectField("", product.Texture, typeof(Texture2D), false);
                        EditorGUILayout.EndHorizontal();
                    }


                    EditorGUILayout.EndVertical();
                }

                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.Space();
                if (GUILayout.Button("Add new", EditorStyles.miniButton, GUILayout.Width(250)))
                {
                    AmazonProductTemplate product = new AmazonProductTemplate();
                    AmazonNativeSettings.Instance.InAppProducts.Add(product);
                }

                EditorGUILayout.Space();
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.Space();
            }

            EditorGUILayout.EndVertical();
        }
        EditorGUI.indentLevel--;

        GUI.enabled = true;
    }