예제 #1
0
        private void Settings()
        {
            using (new SA_WindowBlockWithSpace(new GUIContent("Settings")))
            {
                using (new SA_H2WindowBlockWithSpace(new GUIContent("ANDROID")))
                {
                    AN_Settings.Instance.GooglePlayGamesAPI = SA_EditorGUILayout.ToggleFiled(AN_GooglePlayFeaturesUI.GamesLabelContent, AN_Settings.Instance.GooglePlayGamesAPI, SA_StyledToggle.ToggleType.EnabledDisabled);

                    UM_Settings.Instance.AndroidRequestEmail   = SA_EditorGUILayout.ToggleFiled(s_AndoirdRequestEmailContent, UM_Settings.Instance.AndroidRequestEmail, SA_StyledToggle.ToggleType.EnabledDisabled);
                    UM_Settings.Instance.AndroidRequestProfile = SA_EditorGUILayout.ToggleFiled(s_AndoirdRequestProfileContent, UM_Settings.Instance.AndroidRequestProfile, SA_StyledToggle.ToggleType.EnabledDisabled);

                    UM_Settings.Instance.AndroidSavedGamesEnabled     = SA_EditorGUILayout.ToggleFiled(s_AndoirdSavedGamesContent, UM_Settings.Instance.AndroidSavedGamesEnabled, SA_StyledToggle.ToggleType.EnabledDisabled);
                    UM_Settings.Instance.AndroidRequestServerAuthCode = SA_EditorGUILayout.ToggleFiled(s_AndoirdRequestServerAuthCodeContent, UM_Settings.Instance.AndroidRequestServerAuthCode, SA_StyledToggle.ToggleType.EnabledDisabled);

                    if (UM_Settings.Instance.AndroidRequestServerAuthCode)
                    {
                        UM_Settings.Instance.AndroidGMSServerId = SA_EditorGUILayout.TextField("Server Id", UM_Settings.Instance.AndroidGMSServerId);
                    }
                }

                using (new SA_H2WindowBlockWithSpace(new GUIContent("iOS")))
                {
                    ISN_Settings.Instance.SavingAGame = SA_EditorGUILayout.ToggleFiled(s_IOSSavingAGameContent, ISN_Settings.Instance.SavingAGame, SA_StyledToggle.ToggleType.EnabledDisabled);
                }

                using (new SA_H2WindowBlockWithSpace(new GUIContent("EDITOR")))
                {
                    EditorGUILayout.HelpBox("Platform does not require any additional settings.", MessageType.Info);
                }
            }
        }
        private void Settings()
        {
            Texture2D settings_icon = SA_EditorAssets.GetTextureAtPath(ISD_Skin.ICONS_PATH + "isdSettings.png");

            using (new SA_WindowBlockWithIndent(new GUIContent("Settings", settings_icon))) {
                bool isEnabled = ISD_Settings.PostProcessEnabled;
                EditorGUI.BeginChangeCheck();
                isEnabled = SA_EditorGUILayout.ToggleFiled("Build PostProcess", isEnabled, SA_StyledToggle.ToggleType.YesNo);
                if (EditorGUI.EndChangeCheck())
                {
                    EditorUtility.DisplayDialog("Configuration", "Changes will be applide after scripts re-recompilation is completed", "Okay");
                    if (isEnabled)
                    {
                        SA_EditorDefines.RemoveCompileDefine("ISD_DISABLED", BuildTargetGroup.iOS);
                    }
                    else
                    {
                        SA_EditorDefines.AddCompileDefine("ISD_DISABLED", BuildTargetGroup.iOS);
                    }
                }

                if (!ISD_Settings.PostProcessEnabled)
                {
                    EditorGUILayout.HelpBox("Build PostProcess is curreently disabled. " +
                                            "The XCode project will not be modifayed.", MessageType.Error);
                }
            }
        }
예제 #3
0
        private void DrawICloudSettings()
        {
            using (new SA_WindowBlockWithSpace(new GUIContent("iCloud Key-Value Storage"))) {
                var description = new GUIContent("Key-value storage is similar to Unity PlayerPrefs; " +
                                                 "but values that you place in key-value storage are available to every " +
                                                 "instance of your app on all of a user’s various devices.");



                using (new SA_GuiBeginHorizontal()) {
                    GUILayout.Space(15);
                    EditorGUILayout.LabelField(description, SA_PluginSettingsWindowStyles.DescribtionLabelStyle);
                }

                EditorGUILayout.Space();

                bool KeyValueStorageEnabled = ISD_API.Capability.iCloud.Enabled && ISD_API.Capability.iCloud.keyValueStorage;
                EditorGUI.BeginChangeCheck();
                KeyValueStorageEnabled = SA_EditorGUILayout.ToggleFiled("API Status", KeyValueStorageEnabled, SA_StyledToggle.ToggleType.EnabledDisabled);

                if (EditorGUI.EndChangeCheck())
                {
                    if (KeyValueStorageEnabled)
                    {
                        ISD_API.Capability.iCloud.Enabled         = true;
                        ISD_API.Capability.iCloud.keyValueStorage = true;
                    }
                    else
                    {
                        ISD_API.Capability.iCloud.Enabled         = false;
                        ISD_API.Capability.iCloud.keyValueStorage = false;
                    }
                }
            }
        }
예제 #4
0
        public static void Library()
        {
            SA_EditorGUILayout.Header("LIBRARIES");


            EditorGUILayout.BeginHorizontal();
            EditorGUI.indentLevel++;
            ISD_Settings.Instance.IsDefLibrariesOpen = EditorGUILayout.Foldout(ISD_Settings.Instance.IsDefLibrariesOpen, "Default Unity Libraries (2 Enabled)");
            EditorGUI.indentLevel--;
            EditorGUILayout.EndHorizontal();

            if (ISD_Settings.Instance.IsDefLibrariesOpen)
            {
                EditorGUILayout.BeginVertical(GUI.skin.box);

                SA_EditorGUILayout.SelectableLabel("libiPhone-lib.a", "");
                SA_EditorGUILayout.SelectableLabel("libiconv.2.dylib", "");

                EditorGUILayout.EndVertical();


                EditorGUILayout.Space();
            }
            EditorGUILayout.Space();
            SA_EditorGUILayout.HorizontalLine();


            EditorGUILayout.LabelField("Custom Libraries", EditorStyles.boldLabel);
            SA_EditorGUILayout.ReorderablList(ISD_Settings.Instance.Libraries,
                                              (ISD_Library lib) => {
                if (lib.IsOptional)
                {
                    return(lib.Name + "    (Optional)");
                }
                else
                {
                    return(lib.Name);
                }
            },
                                              (ISD_Library lib) => {
                lib.IsOptional = SA_EditorGUILayout.ToggleFiled("Optional", lib.IsOptional, SA_StyledToggle.ToggleType.YesNo);
            }
                                              );



            EditorGUILayout.BeginHorizontal();
            EditorStyles.popup.fixedHeight = 20;
            NewLibraryIndex = EditorGUILayout.Popup(NewLibraryIndex, ISD_LibHandler.BaseLibrariesArray());

            if (GUILayout.Button("Add Library", GUILayout.Height(20)))
            {
                ISD_iOSLibrary type = (ISD_iOSLibrary)ISD_LibHandler.enumValueOf(ISD_LibHandler.BaseLibrariesArray()[NewLibraryIndex]);
                NewLibraryIndex = 0;
                ISD_API.AddLibrary(type);
            }

            EditorGUILayout.EndHorizontal();
            SA_EditorGUILayout.HorizontalLine();
        }
예제 #5
0
        protected override void OnServiceUI()
        {
            using (new SA_WindowBlockWithSpace(new GUIContent("Your license key"))) {
                EditorGUILayout.HelpBox("RSA public key will be used for app licensing. &  in-app billing purchases",
                                        MessageType.Info);

                EditorGUILayout.LabelField("Base64-encoded RSA public key");

                AN_Settings.Instance.RSAPublicKey = EditorGUILayout.TextArea(AN_Settings.Instance.RSAPublicKey, SA_PluginSettingsWindowStyles.TextArea, GUILayout.Height(95));
                AN_Settings.Instance.RSAPublicKey.Trim();
            }

            using (new SA_WindowBlockWithSpace(new GUIContent("Licensing "))) {
                EditorGUILayout.HelpBox("Licensing allows you to prevent unauthorized distribution of your App.", MessageType.Info);
                AN_Settings.Instance.Licensing = SA_EditorGUILayout.ToggleFiled("API Status", AN_Settings.Instance.Licensing, SA_StyledToggle.ToggleType.EnabledDisabled);
            }

            using (new SA_WindowBlockWithSpace(new GUIContent("In-App Products List"))) {
                if (AN_Settings.Instance.InAppProducts.Count == 0)
                {
                    EditorGUILayout.HelpBox("Use this menu to specify in-app products available for your App.", MessageType.Info);
                }

                SA_EditorGUILayout.ReorderablList(AN_Settings.Instance.InAppProducts, GetProductDisplayName, DrawProductContent, () => {
                    var product   = new AN_Product("your.product.sku", AN_ProductType.inapp);
                    product.Title = "New Product";
                    AN_Settings.Instance.InAppProducts.Add(product);
                });
            }
        }
        public override void OnInspectorGUI()
        {
            if (TestSuiteConfigSerialized == null)
            {
                return;
            }

            EditorGUI.BeginChangeCheck();

            EditorGUILayout.Space();


            SA_EditorGUILayout.ReorderablList(Config.TestGroups, GroupTitle, GroupContent, OnNewGroup, null, OnGorupStartUI);


            EditorGUILayout.Space();
            Config.PauseOnError          = SA_EditorGUILayout.ToggleFiled("Error Pause", Config.PauseOnError, SA_StyledToggle.ToggleType.YesNo);
            Config.SkipInteractableTests = SA_EditorGUILayout.ToggleFiled("Skip Interactable", Config.SkipInteractableTests, SA_StyledToggle.ToggleType.YesNo);


            if (EditorGUI.EndChangeCheck())
            {
                TestSuiteConfigSerialized.ApplyModifiedProperties();
                TestSuiteConfigSerialized = new SerializedObject(target);
            }


            EditorGUILayout.Space();
        }
        public override void OnGUI()
        {
            EditorGUI.BeginChangeCheck();

            EditorGUILayout.Space();
            EditorGUILayout.HelpBox(DESCRIBTION, MessageType.Info);


            using (new SA_WindowBlockWithIndent(new GUIContent("Settings"))) {
                m_state.DisplayCollapse     = SA_EditorGUILayout.ToggleFiled("Collapse Button", m_state.DisplayCollapse, SA_StyledToggle.ToggleType.EnabledDisabled);
                m_state.DisplayClearOnPlay  = SA_EditorGUILayout.ToggleFiled("Clear On Play Button", m_state.DisplayClearOnPlay, SA_StyledToggle.ToggleType.EnabledDisabled);
                m_state.DisplayPauseOnError = SA_EditorGUILayout.ToggleFiled("Error Pause Button", m_state.DisplayPauseOnError, SA_StyledToggle.ToggleType.EnabledDisabled);

                m_state.DisplaySearchBar = SA_EditorGUILayout.ToggleFiled("Search Bar", m_state.DisplaySearchBar, SA_StyledToggle.ToggleType.EnabledDisabled);
                m_state.RichText         = SA_EditorGUILayout.ToggleFiled("Rich Text", m_state.RichText, SA_StyledToggle.ToggleType.EnabledDisabled);
            }


            using (new SA_WindowBlockWithIndent(new GUIContent("Tags"))) {
                EditorGUILayout.BeginVertical(GUILayout.ExpandWidth(true)); {
                    ReorderableListGUI.ListField(UCL_Settings.Instance.Tags,
                                                 (Rect position, UCL_ConsoleTag tag) => {
                        position.x -= 15;

                        int dockedToggleWidth = 40;
                        Rect labelRect        = new Rect(position);
                        labelRect.width       = position.width - dockedToggleWidth;

                        EditorGUI.LabelField(labelRect, tag.DisaplyContent);

                        Rect docedRect  = new Rect(position);
                        docedRect.x     = labelRect.x + labelRect.width;
                        docedRect.width = dockedToggleWidth;

                        bool docked = m_state.IsTagDocked(tag);
                        docked      = EditorGUI.Toggle(docedRect, docked);

                        m_state.SetTagDockedState(tag, docked);

                        return(tag);
                    },
                                                 () => {
                    },
                                                 ReorderableListFlags.HideAddButton | ReorderableListFlags.HideRemoveButtons
                                                 );
                } EditorGUILayout.EndVertical();
            }


            if (EditorGUI.EndChangeCheck())
            {
                UCL_Settings.SaveConsoleWindowState(m_state);
            }
        }
예제 #8
0
 protected override void OnServiceUI()
 {
     using (new SA_WindowBlockWithSpace(new GUIContent("Music Player Controller"))) {
         ISN_Settings.Instance.MediaLibraryUsageDescriptionEnabled = SA_EditorGUILayout.ToggleFiled("API State", ISN_Settings.Instance.MediaLibraryUsageDescriptionEnabled, SA_StyledToggle.ToggleType.EnabledDisabled);
         using (new SA_GuiEnable(ISN_Settings.Instance.MediaLibraryUsageDescriptionEnabled)) {
             EditorGUILayout.LabelField(MediaLibraryUsageDescription);
             using (new SA_GuiIndentLevel(1)) {
                 ISN_Settings.Instance.MediaLibraryUsageDescription = EditorGUILayout.TextArea(ISN_Settings.Instance.MediaLibraryUsageDescription, SA_PluginSettingsWindowStyles.TextArea, GUILayout.Height(30));
             }
         }
     }
 }
예제 #9
0
        public static void OnGUI()
        {
            var unityClient = UM_Settings.Instance.Analytics.UnityClient;

            EditorGUILayout.HelpBox("Controls whether to limit user tracking at runtime.", MessageType.Info);
            unityClient.LimitUserTracking = SA_EditorGUILayout.ToggleFiled(s_limitUserTrackingLabel, unityClient.LimitUserTracking, SA_StyledToggle.ToggleType.YesNo);
            EditorGUILayout.Space();


            EditorGUILayout.HelpBox("Controls whether the sending of device stats at runtime is enabled.", MessageType.Info);
            unityClient.DeviceStatsEnabled = SA_EditorGUILayout.ToggleFiled(s_deviceStatsEnabledLabel, unityClient.DeviceStatsEnabled, SA_StyledToggle.ToggleType.YesNo);
        }
        public override void OnGUI()
        {
            EditorGUILayout.Space();
            EditorGUILayout.HelpBox(DESCRIBTION, MessageType.Info);

            using (new SA_WindowBlockWithIndent(new GUIContent("iOS"))) {
                UCL_PlatfromsLogSettings.Instance.iOS_LogsRecord         = SA_EditorGUILayout.ToggleFiled("Logs Record", UCL_PlatfromsLogSettings.Instance.iOS_LogsRecord, SA_StyledToggle.ToggleType.EnabledDisabled);
                UCL_PlatfromsLogSettings.Instance.iOS_OverrideLogsOutput = SA_EditorGUILayout.ToggleFiled("Override XCode Output", UCL_PlatfromsLogSettings.Instance.iOS_OverrideLogsOutput, SA_StyledToggle.ToggleType.EnabledDisabled);
            }

            using (new SA_WindowBlockWithIndent(new GUIContent("Android"))) {
                UCL_PlatfromsLogSettings.Instance.Android_LogsRecord         = SA_EditorGUILayout.ToggleFiled("Logs Record", UCL_PlatfromsLogSettings.Instance.Android_LogsRecord, SA_StyledToggle.ToggleType.EnabledDisabled);
                UCL_PlatfromsLogSettings.Instance.Android_OverrideLogsOutput = SA_EditorGUILayout.ToggleFiled("Override LogCat Output", UCL_PlatfromsLogSettings.Instance.Android_OverrideLogsOutput, SA_StyledToggle.ToggleType.EnabledDisabled);
            }
        }
예제 #11
0
        public static void Capabilities()
        {
            SA_EditorGUILayout.Header("Capabilities");

            SA_EditorGUILayout.ReorderablList(ISD_Settings.Instance.Capabilities,
                                              (ISD_Capability c) => {
                return(c.CapabilityType.ToString());
            },
                                              (ISD_Capability c) => {
                switch (c.CapabilityType)
                {
                case ISD_CapabilityType.PushNotifications:
                    var settings         = ISD_Settings.Instance.PushNotificationsCapabilitySettings;
                    settings.Development = SA_EditorGUILayout.ToggleFiled("Development", settings.Development, SA_StyledToggle.ToggleType.YesNo);
                    break;

                case ISD_CapabilityType.Cloud:
                    var cloudSettings             = ISD_Settings.Instance.iCloudCapabilitySettings;
                    cloudSettings.KeyValueStorage = SA_EditorGUILayout.ToggleFiled("Key-value storage", cloudSettings.KeyValueStorage, SA_StyledToggle.ToggleType.EnabledDisabled);
                    cloudSettings.iCloudDocument  = SA_EditorGUILayout.ToggleFiled("iCloud Documents", cloudSettings.iCloudDocument, SA_StyledToggle.ToggleType.EnabledDisabled);

                    break;

                default:
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("Entitlements File Path");
                    c.EntitlementsFilePath = EditorGUILayout.TextField(c.EntitlementsFilePath);
                    EditorGUILayout.EndHorizontal();

                    c.AddOptionalFramework = SA_EditorGUILayout.ToggleFiled("Add Optional Framework", c.AddOptionalFramework, SA_StyledToggle.ToggleType.YesNo);
                    break;
                }
            }
                                              );


            EditorGUILayout.BeginHorizontal();
            s_newCap = (ISD_CapabilityType)EditorGUILayout.EnumPopup(s_newCap);
            if (GUILayout.Button("Add Capability", GUILayout.Height(20)))
            {
                ISD_Capability c = new ISD_Capability();
                c.CapabilityType = s_newCap;
                ISD_Settings.Instance.Capabilities.Add(c);
            }
            EditorGUILayout.EndHorizontal();
        }
예제 #12
0
        private void DrawProductContent(AN_Product product)
        {
            product.ProductId    = SA_EditorGUILayout.TextField(ProductIdDLabel, product.ProductId);
            product.Title        = SA_EditorGUILayout.TextField(DisplayNameLabel, product.Title);
            product.Type         = (AN_ProductType)SA_EditorGUILayout.EnumPopup(ProductType, product.Type);
            product.IsConsumable = SA_EditorGUILayout.ToggleFiled(ConsumableLabel, product.IsConsumable, SA_StyledToggle.ToggleType.YesNo);

            product.Price = SA_EditorGUILayout.TextField(PriceLabel, product.Price);


            EditorGUILayout.LabelField(DescriptionLabel);
            using (new SA_GuiBeginHorizontal()) {
                product.Description = EditorGUILayout.TextArea(product.Description, GUILayout.Height(60), GUILayout.MinWidth(190));
                EditorGUILayout.Space();
                product.Icon = (Texture2D)EditorGUILayout.ObjectField("", product.Icon, typeof(Texture2D), false, GUILayout.Width(75));
            }
        }
예제 #13
0
        protected override void OnServiceUI()
        {
            using (new SA_WindowBlockWithSpace(new GUIContent("Runtime Permissions"))) {
                EditorGUILayout.HelpBox("Every Android app runs in a limited-access sandbox." +
                                        "If an app needs to use resources or information outside of its own sandbox, " +
                                        "the app has to request the appropriate permission.",
                                        MessageType.Info);

                AN_Settings.Instance.SkipPermissionsDialog = SA_EditorGUILayout.ToggleFiled("Startup Permissions Dialog", AN_Settings.Instance.SkipPermissionsDialog, SA_StyledToggle.ToggleType.YesNo);
            }


            using (new SA_WindowBlockWithSpace(new GUIContent("Media Player"))) {
                EditorGUILayout.HelpBox("Media Player can be used to control playback of audio/video files and streams.",
                                        MessageType.Info);

                AN_Settings.Instance.MediaPlayer = SA_EditorGUILayout.ToggleFiled("API State", AN_Settings.Instance.MediaPlayer, SA_StyledToggle.ToggleType.EnabledDisabled);
            }
        }
예제 #14
0
        protected override void OnServiceUI()
        {
            using (new SA_WindowBlockWithSpace(new GUIContent("Achievement"))) {
                if (ISN_Settings.Instance.Achievements.Count == 0)
                {
                    EditorGUILayout.HelpBox("Use this menu to list your game achievements. " +
                                            "This step is not required, and only designed for your" +
                                            "convinience, in case you are making custom in-game achievements view.", MessageType.Info);
                }
                DrawAchievementsList();
            }

            using (new SA_WindowBlockWithSpace(new GUIContent("Saving A Game"))) {
                EditorGUILayout.HelpBox("The saves API will allow you to provide your player an ability to save & load " +
                                        "game progress at any time.", MessageType.Info);

                ISN_Settings.Instance.SavingAGame = SA_EditorGUILayout.ToggleFiled("API State", ISN_Settings.Instance.SavingAGame, SA_StyledToggle.ToggleType.EnabledDisabled);
            }
        }
예제 #15
0
        protected override void OnServiceUI()
        {
            using (new SA_WindowBlockWithSpace(new GUIContent("Local Notifications"))) {
                ReorderableListGUI.Title("Custom Sounds");
                ReorderableListGUI.ListField(ISN_EditorSettings.Instance.NotificationAlertSounds, DrawObjectField, DrawEmptySounds);

                UpdateDeploySettings();
            }

            using (new SA_WindowBlockWithSpace(new GUIContent("Apple Push Notification Service"))) {
                using (new SA_GuiBeginHorizontal()) {
                    GUILayout.Space(15);
                    EditorGUILayout.LabelField(m_APN_Description, SA_PluginSettingsWindowStyles.DescribtionLabelStyle);
                }

                EditorGUILayout.Space();

                using (new SA_GuiIndentLevel(1)) {
                    ISD_API.Capability.PushNotifications.Enabled     = SA_EditorGUILayout.ToggleFiled("API Status", ISD_API.Capability.PushNotifications.Enabled, SA_StyledToggle.ToggleType.EnabledDisabled);
                    ISD_API.Capability.PushNotifications.development = SA_EditorGUILayout.ToggleFiled("Development Environment", ISD_API.Capability.PushNotifications.development, SA_StyledToggle.ToggleType.EnabledDisabled);
                }
            }
        }
예제 #16
0
        public static void OnGUI()
        {
            EditorGUILayout.HelpBox("Unity Monetization SDK Installed.", MessageType.Info);
            using (new SA_GuiBeginHorizontal()) {
                GUILayout.FlexibleSpace();

                var example = GUILayout.Button("Example", EditorStyles.miniButton, GUILayout.Width(80));
                if (example)
                {
                    FillExampleSettings();
                }


                var click = GUILayout.Button("Dashboard", EditorStyles.miniButton, GUILayout.Width(80));
                if (click)
                {
                    Application.OpenURL("https://operate.dashboard.unity3d.com/");
                }
            }

            var settins = UM_UnityAdsSettings.Instance;

            using (new SA_H2WindowBlockWithSpace(new GUIContent("IOS"))) {
                UM_AdvertisementUI.DrawPlatfromIds(settins.IOSIds);
            }

            using (new SA_H2WindowBlockWithSpace(new GUIContent("ANDROID"))) {
                UM_AdvertisementUI.DrawPlatfromIds(settins.AndroidIds);
            }

            using (new SA_H2WindowBlockWithSpace(new GUIContent("SETTINGS"))) {
                settins.TestMode = SA_EditorGUILayout.ToggleFiled("Test Mode",
                                                                  settins.TestMode,
                                                                  SA_StyledToggle.ToggleType.YesNo);
            }
        }
예제 #17
0
        public static void Frameworks()
        {
            SA_EditorGUILayout.Header("FRAMEWORKS");

            EditorGUILayout.BeginHorizontal();
            EditorGUI.indentLevel++;
            ISD_Settings.Instance.IsDefFrameworksOpen = EditorGUILayout.Foldout(ISD_Settings.Instance.IsDefFrameworksOpen, "Default Unity Frameworks (17 Enabled)");
            EditorGUI.indentLevel--;
            EditorGUILayout.EndHorizontal();

            if (ISD_Settings.Instance.IsDefFrameworksOpen)
            {
                EditorGUILayout.BeginVertical(GUI.skin.box);
                foreach (ISD_Framework framework in ISD_FrameworkHandler.DefaultFrameworks)
                {
                    SA_EditorGUILayout.SelectableLabel(framework.Type.ToString() + ".framework", "");
                }
                EditorGUILayout.EndVertical();
                EditorGUILayout.Space();
            }


            EditorGUILayout.Space();

            SA_EditorGUILayout.HorizontalLine();


            EditorGUILayout.LabelField("Custom IOS Frameworks", EditorStyles.boldLabel);
            SA_EditorGUILayout.ReorderablList(ISD_Settings.Instance.Frameworks,
                                              (ISD_Framework framework) => {
                if (framework.IsOptional && framework.IsEmbeded)
                {
                    return(framework.Name + "       (Optional & Embeded)");
                }
                else if (framework.IsOptional)
                {
                    return(framework.Name + "        (Optional)");
                }
                else if (framework.IsEmbeded)
                {
                    return(framework.Name + "        (Embeded)");
                }
                else
                {
                    return(framework.Name);
                }
            },
                                              (ISD_Framework framework) => {
                framework.IsOptional = SA_EditorGUILayout.ToggleFiled("Optional", framework.IsOptional, SA_StyledToggle.ToggleType.YesNo);
                framework.IsEmbeded  = SA_EditorGUILayout.ToggleFiled("Embeded", framework.IsEmbeded, SA_StyledToggle.ToggleType.YesNo);
            }
                                              );



            EditorGUILayout.BeginHorizontal();
            EditorStyles.popup.fixedHeight = 20;
            NewBaseFrameworkIndex          = EditorGUILayout.Popup(NewBaseFrameworkIndex, ISD_FrameworkHandler.BaseFrameworksArray());

            if (GUILayout.Button("Add Framework", GUILayout.Height(20)))
            {
                var type = ISD_FrameworkHandler.BaseFrameworksArray() [NewBaseFrameworkIndex];
                NewBaseFrameworkIndex = 0;

                ISD_Framework f = new ISD_Framework(type);
                ISD_API.AddFramework(f);
            }

            EditorGUILayout.EndHorizontal();



            SA_EditorGUILayout.HorizontalLine();


            DrawEmbededBlock();
        }
예제 #18
0
        public static void DrawPlistVariable(ISD_PlistKey plistKey, object valuePointer, IList valueOrigin)
        {
            EditorGUILayout.BeginHorizontal();

            if (plistKey.Name.Length > 0)
            {
                plistKey.IsOpen = EditorGUILayout.Foldout(plistKey.IsOpen, plistKey.Name + "   (" + plistKey.Type.ToString() + ")");
            }
            else
            {
                plistKey.IsOpen = EditorGUILayout.Foldout(plistKey.IsOpen, plistKey.Type.ToString());
            }



            bool ItemWasRemoved = SrotingButtons(valuePointer, valueOrigin);

            if (ItemWasRemoved)
            {
                ISD_Settings.Instance.RemoveVariable(plistKey, valueOrigin);
                return;
            }
            EditorGUILayout.EndHorizontal();

            if (plistKey.IsOpen)
            {
                EditorGUI.indentLevel++; {
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("Type");
                    if (plistKey.ChildrensIds.Count > 0)
                    {
                        GUI.enabled   = false;
                        plistKey.Type = (ISD_PlistKeyType)EditorGUILayout.EnumPopup(plistKey.Type);
                    }
                    else
                    {
                        plistKey.Type = (ISD_PlistKeyType)EditorGUILayout.EnumPopup(plistKey.Type);
                    }
                    EditorGUILayout.EndHorizontal();


                    if (plistKey.Type == ISD_PlistKeyType.Array)
                    {
                        DrawArrayValues(plistKey);
                    }
                    else if (plistKey.Type == ISD_PlistKeyType.Dictionary)
                    {
                        DrawDictionaryValues(plistKey);
                    }
                    else if (plistKey.Type == ISD_PlistKeyType.Boolean)
                    {
                        plistKey.BooleanValue = SA_EditorGUILayout.ToggleFiled("Value", plistKey.BooleanValue, SA_StyledToggle.ToggleType.YesNo);
                    }
                    else
                    {
                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.LabelField("Value");
                        switch (plistKey.Type)
                        {
                        case ISD_PlistKeyType.Integer:
                            plistKey.IntegerValue = EditorGUILayout.IntField(plistKey.IntegerValue);
                            break;

                        case ISD_PlistKeyType.String:
                            plistKey.StringValue = EditorGUILayout.TextField(plistKey.StringValue);
                            break;
                        }
                        EditorGUILayout.EndHorizontal();
                    }
                } EditorGUI.indentLevel--;
            }
        }
예제 #19
0
        public void OnGUI()
        {
            var settins = UM_GoogleAdsSettings.Instance;

            using (new SA_GuiBeginHorizontal())
            {
                GUILayout.FlexibleSpace();
                var example = GUILayout.Button("Example", EditorStyles.miniButton, GUILayout.Width(80));
                if (example)
                {
                    FillExampleSettings();
                }

                var click = GUILayout.Button("Dashboard", EditorStyles.miniButton, GUILayout.Width(80));
                if (click)
                {
                    Application.OpenURL("https://apps.admob.com/");
                }
            }

            using (new SA_H2WindowBlockWithSpace(new GUIContent("IOS")))
            {
                UM_AdvertisementUI.DrawPlatformIds(settins.IOSIds);
            }

            using (new SA_H2WindowBlockWithSpace(new GUIContent("ANDROID")))
            {
                if (string.IsNullOrEmpty(settins.AndroidIds.AppId))
                {
                    EditorGUILayout.HelpBox("Application id MUST be provided on Android platform before you make a build. " +
                                            "Empty Application id may result in app crash on launch.", MessageType.Error);
                }

                UM_AdvertisementUI.DrawPlatformIds(settins.AndroidIds);
            }

            using (new SA_H2WindowBlockWithSpace(new GUIContent("SETTINGS")))
            {
#if SA_ADMOB_INSTALLED
                settins.BannerSize     = (UM_GoogleBannerSize)SA_EditorGUILayout.EnumPopup("Banner Size", settins.BannerSize);
                settins.BannerPosition = (AdPosition)SA_EditorGUILayout.EnumPopup("Banner Position", settins.BannerPosition);
#endif

                settins.NPA = SA_EditorGUILayout.ToggleFiled("Non-Personalized Ads",
                                                             settins.TagForChildDirectedTreatment,
                                                             SA_StyledToggle.ToggleType.YesNo);

                settins.TagForChildDirectedTreatment = SA_EditorGUILayout.ToggleFiled("Tag For Child Directed Treatment",
                                                                                      settins.TagForChildDirectedTreatment,
                                                                                      SA_StyledToggle.ToggleType.YesNo);

                ReorderableListGUI.Title("Test Devices");
                ReorderableListGUI.ListField(settins.TestDevices, DrawTextFiled, () => {
                    EditorGUILayout.LabelField("Configure your device as a test device.");
                });
                EditorGUILayout.Space();


                ReorderableListGUI.Title("Keywords");
                ReorderableListGUI.ListField(settins.Keywords, DrawTextFiled, () => {
                    EditorGUILayout.LabelField("Provide keywords to admob so the ads can be targeted.");
                });
                EditorGUILayout.Space();
            }

            if (GUI.changed)
            {
                UM_GoogleAdsSettings.Save();
            }
        }
예제 #20
0
        protected override void OnServiceUI()
        {
            using (new SA_WindowBlockWithSpace(new GUIContent("Configuration"))) {
                string setResourceName = "Update Game Resource";
                if (AN_GoolgePlayRersources.GamesIds == null)
                {
                    EditorGUILayout.HelpBox("Before you start using Google Play API with the plugin" +
                                            "You must first configure your game in the Google Play Developer Console, " +
                                            "and then define google play resources using the plugin.",
                                            MessageType.Warning);
                    using (new SA_GuiBeginHorizontal()) {
                        GUILayout.FlexibleSpace();
                        bool click = m_configureYourGameLink.DrawWithCalcSize();
                        if (click)
                        {
                            Application.OpenURL("https://unionassets.com/android-native-pro/getting-started-670");
                        }
                    }

                    setResourceName = "Set Game Resource";
                }
                else
                {
                    string applicationIdentifier = PlayerSettings.GetApplicationIdentifier(BuildTargetGroup.Android);
                    if (!applicationIdentifier.Equals(AN_GoolgePlayRersources.GamesIds.PackageName))
                    {
                        EditorGUILayout.HelpBox("Player Settings Package Name does not match with " +
                                                "Android Games Package Name \n" +
                                                "unity: " + applicationIdentifier + "\n" +
                                                "games-ids.xml: " + AN_GoolgePlayRersources.GamesIds.PackageName,
                                                MessageType.Warning);
                    }
                    using (new SA_GuiBeginVertical(EditorStyles.helpBox)) {
                        SA_EditorGUILayout.SelectableLabel("App Id", AN_GoolgePlayRersources.GamesIds.AppId);
                        SA_EditorGUILayout.SelectableLabel("Package Name", AN_GoolgePlayRersources.GamesIds.PackageName);

                        m_achievmentsShown = EditorGUILayout.Foldout(m_achievmentsShown, "Achievments");
                        if (m_achievmentsShown)
                        {
                            if (AN_GoolgePlayRersources.GamesIds.Achievements.Count > 0)
                            {
                                AN_GoolgePlayRersources.GamesIds.Achievements.ForEach(pair => {
                                    SA_EditorGUILayout.SelectableLabel(pair.Key, pair.Value);
                                });
                            }
                            else
                            {
                                EditorGUILayout.LabelField("There are no achievments in games-ids.xml");
                            }
                        }

                        m_leaderboardsShown = EditorGUILayout.Foldout(m_leaderboardsShown, "Leaderboards");
                        if (m_leaderboardsShown)
                        {
                            if (AN_GoolgePlayRersources.GamesIds.Leaderboards.Count > 0)
                            {
                                AN_GoolgePlayRersources.GamesIds.Leaderboards.ForEach(pair => {
                                    SA_EditorGUILayout.SelectableLabel(pair.Key, pair.Value);
                                });
                            }
                            else
                            {
                                EditorGUILayout.LabelField("There are no leaderboards in games-ids.xml");
                            }
                        }
                    }
                }

                using (new SA_GuiBeginHorizontal()) {
                    GUILayout.FlexibleSpace();
                    m_setResource.Content.text = setResourceName;
                    bool click = m_setResource.DrawWithCalcSize();
                    if (click)
                    {
                        AN_GoolgePlayRersourcesWindow.ShowModal();
                    }
                }
            }



            using (new SA_WindowBlockWithSpace(new GUIContent("Google Mobile Services APIs"))) {
                EditorGUILayout.HelpBox("In order to access Google Play games services functionality, " +
                                        "your game needs to provide the signed-in player’s account. If the player is not authenticated, " +
                                        "your game may encounter errors when making calls to the Google Play games services APIs.",
                                        MessageType.Info);


                using (new SA_GuiBeginHorizontal()) {
                    EditorGUILayout.LabelField(SingInLabelContent);
                    using (new SA_GuiEnable(false)) {
                        SA_EditorGUILayout.ToggleFiled(new GUIContent(), true, SA_StyledToggle.ToggleType.EnabledDisabled);
                    }
                }

                AN_Settings.Instance.GooglePlayGamesAPI = SA_EditorGUILayout.ToggleFiled(GamesLabelContent, AN_Settings.Instance.GooglePlayGamesAPI, SA_StyledToggle.ToggleType.EnabledDisabled);
            }
        }
예제 #21
0
        public override void OnLayoutEnable()
        {
            base.OnLayoutEnable();

            ISD_CapabilityLayout layout;

            m_CapabilitiesLayout = new List <ISD_CapabilityLayout>();

            //iCloud


            layout = new ISD_CapabilityLayout("iCloud", "cloud.png", () => { return(ISD_Settings.Instance.Capability.iCloud); }, () => {
                using (new SA_GuiHorizontalSpace(16)) {
                    var cloud             = ISD_Settings.Instance.Capability.iCloud;
                    cloud.keyValueStorage = SA_EditorGUILayout.ToggleFiled("Key Value Storage", cloud.keyValueStorage, SA_StyledToggle.ToggleType.EnabledDisabled);
                    cloud.iCloudDocument  = SA_EditorGUILayout.ToggleFiled("iCloud Document", cloud.iCloudDocument, SA_StyledToggle.ToggleType.EnabledDisabled);

                    ReorderableListGUI.Title("Custom Containers");
                    ReorderableListGUI.ListField(cloud.customContainers, (Rect position, string itemValue) => {
                        return(EditorGUI.TextField(position, itemValue));
                    }, () => {
                        GUILayout.Label("You haven't added any custom containers yet.");
                    });
                }
            });

            m_CapabilitiesLayout.Add(layout);


            //Push Notifications

            layout = new ISD_CapabilityLayout("Push Notifications", "push.png", () => { return(ISD_Settings.Instance.Capability.PushNotifications); }, () => {
                using (new SA_GuiHorizontalSpace(16)) {
                    var pushNotifications         = ISD_Settings.Instance.Capability.PushNotifications;
                    pushNotifications.development = SA_EditorGUILayout.ToggleFiled("Development", pushNotifications.development, SA_StyledToggle.ToggleType.YesNo);
                }
            });

            m_CapabilitiesLayout.Add(layout);


            //Game Center
            layout = new ISD_CapabilityLayout("Game Center", "game.png", () => { return(ISD_Settings.Instance.Capability.GameCenter); }, () => { });
            m_CapabilitiesLayout.Add(layout);

            //Game Center
            layout = new ISD_CapabilityLayout("Sign In With Apple", "keychaine.png", () => { return(ISD_Settings.Instance.Capability.SignInWithApple); }, () => { });
            m_CapabilitiesLayout.Add(layout);

            //Wallet

            layout = new ISD_CapabilityLayout("Wallet", "wallet.png", () => { return(ISD_Settings.Instance.Capability.Wallet); }, () => {
                var wallet = ISD_Settings.Instance.Capability.Wallet;
                using (new SA_GuiBeginHorizontal()) {
                    GUILayout.Space(16);
                    using (new SA_GuiBeginVertical()) {
                        ReorderableListGUI.Title("Pass Subset");
                        ReorderableListGUI.ListField(wallet.passSubset, (Rect position, string itemValue) => {
                            return(EditorGUI.TextField(position, itemValue));
                        }, () => {
                            GUILayout.Label("You haven't added any pass subset.");
                        });
                    }
                }
            });
            m_CapabilitiesLayout.Add(layout);


            //Siri
            layout = new ISD_CapabilityLayout("Siri", "siri.png", () => { return(ISD_Settings.Instance.Capability.Siri); }, () => { });
            m_CapabilitiesLayout.Add(layout);


            //ApplePay

            layout = new ISD_CapabilityLayout("Apple Pay", "pay.png", () => { return(ISD_Settings.Instance.Capability.ApplePay); }, () => {
                var applePay = ISD_Settings.Instance.Capability.ApplePay;
                using (new SA_GuiBeginHorizontal()) {
                    GUILayout.Space(16);
                    using (new SA_GuiBeginVertical()) {
                        ReorderableListGUI.Title("Merchants");
                        ReorderableListGUI.ListField(applePay.merchants, (Rect position, string itemValue) => {
                            return(EditorGUI.TextField(position, itemValue));
                        }, () => {
                            GUILayout.Label("You haven't added any merchants yet.");
                        });
                    }
                }
            });
            m_CapabilitiesLayout.Add(layout);


            //InAppPurchase
            layout = new ISD_CapabilityLayout("In-App Purchase", "purchase.png", () => { return(ISD_Settings.Instance.Capability.InAppPurchase); }, () => { });
            m_CapabilitiesLayout.Add(layout);


            //Maps
            layout = new ISD_CapabilityLayout("Maps", "maps.png", () => { return(ISD_Settings.Instance.Capability.Maps); }, () => {
                var maps = ISD_Settings.Instance.Capability.Maps;
                using (new SA_GuiBeginHorizontal()) {
                    GUILayout.Space(16);
                    using (new SA_GuiBeginVertical()) {
                        ReorderableListGUI.Title("Options");
                        ReorderableListGUI.ListField(maps.options, (Rect position, ISD_CapabilitySettings.MapsCapability.MapsOptions itemValue) => {
                            return((ISD_CapabilitySettings.MapsCapability.MapsOptions)EditorGUI.EnumPopup(position, itemValue));
                        }, () => {
                            GUILayout.Label("Set maps capability options.");
                        });
                    }
                }
            });
            m_CapabilitiesLayout.Add(layout);

            //PersonalVPN
            layout = new ISD_CapabilityLayout("Personal VPN", "vpn.png", () => { return(ISD_Settings.Instance.Capability.PersonalVPN); }, () => { });
            m_CapabilitiesLayout.Add(layout);


            //BackgroundModes
            layout = new ISD_CapabilityLayout("Background Modes", "back.png", () => { return(ISD_Settings.Instance.Capability.BackgroundModes); }, () => {
                var backgroundModes = ISD_Settings.Instance.Capability.BackgroundModes;

                using (new SA_GuiBeginHorizontal()) {
                    GUILayout.Space(16);
                    using (new SA_GuiBeginVertical()) {
                        ReorderableListGUI.Title("Options");
                        ReorderableListGUI.ListField(backgroundModes.options, (Rect position, ISD_CapabilitySettings.BackgroundModesCapability.BackgroundModesOptions itemValue) => {
                            return((ISD_CapabilitySettings.BackgroundModesCapability.BackgroundModesOptions)EditorGUI.EnumPopup(position, itemValue));
                        }, () => {
                            GUILayout.Label("Set background modes capability options.");
                        });
                    }
                }
            });
            m_CapabilitiesLayout.Add(layout);


            //InterAppAudio
            layout = new ISD_CapabilityLayout("Inter-App Audio", "inter.png", () => { return(ISD_Settings.Instance.Capability.InterAppAudio); }, () => { });
            m_CapabilitiesLayout.Add(layout);


            //KeychainSharing
            layout = new ISD_CapabilityLayout("Keychain Sharing", "keychaine.png", () => { return(ISD_Settings.Instance.Capability.KeychainSharing); }, () => {
                var keychainSharing = ISD_Settings.Instance.Capability.KeychainSharing;

                using (new SA_GuiBeginHorizontal()) {
                    GUILayout.Space(16);
                    using (new SA_GuiBeginVertical()) {
                        ReorderableListGUI.Title("Access Groups");
                        ReorderableListGUI.ListField(keychainSharing.accessGroups, (Rect position, string itemValue) => {
                            return(EditorGUI.TextField(position, itemValue));
                        }, () => {
                            GUILayout.Label("You haven't added any access groups yet.");
                        });
                    }
                }
            });
            m_CapabilitiesLayout.Add(layout);


            //AssociatedDomains
            layout = new ISD_CapabilityLayout("Associated Domains", "associated.png", () => { return(ISD_Settings.Instance.Capability.AssociatedDomains); }, () => {
                var associatedDomains = ISD_Settings.Instance.Capability.AssociatedDomains;

                using (new SA_GuiBeginHorizontal()) {
                    GUILayout.Space(16);
                    using (new SA_GuiBeginVertical()) {
                        ReorderableListGUI.Title("Associated Domains");
                        ReorderableListGUI.ListField(associatedDomains.domains, (Rect position, string itemValue) => {
                            return(EditorGUI.TextField(position, itemValue));
                        }, () => {
                            GUILayout.Label("You haven't added any domains yet.");
                        });
                    }
                }
            });
            m_CapabilitiesLayout.Add(layout);

            //AssociatedDomains
            layout = new ISD_CapabilityLayout("App Groups", "app.png", () => { return(ISD_Settings.Instance.Capability.AppGroups); }, () => {
                var appGroups = ISD_Settings.Instance.Capability.AppGroups;

                using (new SA_GuiBeginHorizontal()) {
                    GUILayout.Space(16);
                    using (new SA_GuiBeginVertical()) {
                        ReorderableListGUI.Title("Groups");
                        ReorderableListGUI.ListField(appGroups.groups, (Rect position, string itemValue) => {
                            return(EditorGUI.TextField(position, itemValue));
                        }, () => {
                            GUILayout.Label("You haven't added any groups yet.");
                        });
                    }
                }
            });
            m_CapabilitiesLayout.Add(layout);



            //InterAppAudio
            layout = new ISD_CapabilityLayout("Data Protection", "data.png", () => { return(ISD_Settings.Instance.Capability.DataProtection); }, () => { });
            m_CapabilitiesLayout.Add(layout);


            //InterAppAudio
            layout = new ISD_CapabilityLayout("HomeKit", "homekit.png", () => { return(ISD_Settings.Instance.Capability.HomeKit); }, () => { });
            m_CapabilitiesLayout.Add(layout);

            //InterAppAudio
            layout = new ISD_CapabilityLayout("HealthKit", "healhtkit.png", () => { return(ISD_Settings.Instance.Capability.HealthKit); }, () => { });
            m_CapabilitiesLayout.Add(layout);

            //InterAppAudio
            layout = new ISD_CapabilityLayout("Wireless Accessory Configuration", "wirelless.png", () => { return(ISD_Settings.Instance.Capability.WirelessAccessoryConfiguration); }, () => { });
            m_CapabilitiesLayout.Add(layout);
        }
예제 #22
0
        public override void OnGUI()
        {
            using (new SA_WindowBlockWithSpace(new GUIContent("Log Level")))
            {
                EditorGUILayout.HelpBox("We recommend you to keep full logging level while your project in development mode. " +
                                        "Full communication logs between Native plugin part & " +
                                        "Unity side will be only available with Info logging  level enabled. \n" +
                                        "Disabling the error logs isn't recommended.", MessageType.Info);


                using (new SA_GuiBeginHorizontal())
                {
                    var logLevel = AN_Settings.Instance.LogLevel;
                    logLevel.Info    = GUILayout.Toggle(logLevel.Info, Info, GUILayout.Width(80));
                    logLevel.Warning = GUILayout.Toggle(logLevel.Warning, Warnings, GUILayout.Width(100));
                    logLevel.Error   = GUILayout.Toggle(logLevel.Error, Errors, GUILayout.Width(100));
                }

                EditorGUILayout.Space();
                EditorGUILayout.HelpBox("On some Android devices, Log.d or Log.e methods will not print anything to console," +
                                        "so sometimes the only ability to see the logs is to enable the WTF printing. This will make all" +
                                        "logs to be printed with Log.wtf method despite message log level.", MessageType.Info);

                AN_Settings.Instance.WTFLogging = GUILayout.Toggle(AN_Settings.Instance.WTFLogging, "WTF Logging", GUILayout.Width(130));
            }

            using (new SA_WindowBlockWithSpace(new GUIContent("Environment Management")))
            {
                EditorGUILayout.HelpBox("The Android Native plugin will alter manifest " +
                                        "automatically for your convenience. But in case you want to do it manually, " +
                                        "you may un-toggle the checkbox below \n" +
                                        "The plugin manifest is located under: " + AN_Settings.ANDROID_CORE_LIB_PATH, MessageType.Info);
                AN_Settings.Instance.ManifestManagement = SA_EditorGUILayout.ToggleFiled("Auto Manifest Management", AN_Settings.Instance.ManifestManagement, SA_StyledToggle.ToggleType.EnabledDisabled);

                EditorGUILayout.Space();
                EditorGUILayout.HelpBox("The Android Resolver plugin will download and integrate Android library dependencies " +
                                        "and handle any conflicts between plugins that share the same dependencies. \n" +
                                        "The Resolver is an additional third-party plugin. You need to download, install and configure it" +
                                        "Before Android Native will able to rely on this plugin and disable internal libraries.",
                                        MessageType.Info);


                using (new SA_GuiBeginHorizontal())
                {
                    GUILayout.Label(UnityJarResolverText, GUILayout.MaxWidth(120));
                    if (AN_Settings.Instance.UseUnityJarResolver)
                    {
                        if (AN_Settings.Instance.UnityJarResolverVersion != null && AN_Settings.Instance.UnityJarResolverVersion.Length > 0)
                        {
                            UnityJarResolverState = new GUIContent("version " + AN_Settings.Instance.UnityJarResolverVersion, "Version of current Jar Resolver.");
                        }
                        else
                        {
                            UnityJarResolverState = new GUIContent("Enabled");
                        }
                    }
                    else
                    {
                        UnityJarResolverState = new GUIContent("Disabled");
                    }
                    GUILayout.Label(UnityJarResolverState, GUILayout.MaxWidth(100));
                    GUILayout.FlexibleSpace();


                    GUIContent restartResolveContent = new GUIContent("  Restart Resolver", SA_Skin.GetGenericIcon("refresh.png"));
                    var        pressed = GUILayout.Button(restartResolveContent, new GUILayoutOption[2] {
                        GUILayout.Width(140), GUILayout.Height(15)
                    });
                    if (pressed)
                    {
                        AN_ResolveManager.ProcessAssets();
                        GUIUtility.ExitGUI();
                    }
                }
                using (new SA_GuiBeginHorizontal())
                {
                    GUILayout.FlexibleSpace();
                    var click = m_JarResolverLink.DrawWithCalcSize();
                    if (click)
                    {
                        Application.OpenURL(JAR_RESOLVER_DOC_LINK);
                    }
                }
            }

            using (new SA_WindowBlockWithSpace("Storage"))
            {
                EditorGUILayout.HelpBox("When plugin needs to have a valid URI for an image, " +
                                        "it can be saved using the Internal or External storage. " +
                                        "In case saving attempt is failed, an alternative option will be used. " +
                                        "You can define if Internal or External storage should be a preferred option.",
                                        MessageType.Info);
                AN_Settings.Instance.PreferredImagesStorage = (AN_Settings.StorageType)SA_EditorGUILayout.EnumPopup("Preferred Images Storage", AN_Settings.Instance.PreferredImagesStorage);
                using (new SA_GuiBeginHorizontal())
                {
                    GUILayout.FlexibleSpace();
                    var click = m_StorageOptionsLink.DrawWithCalcSize();
                    if (click)
                    {
                        Application.OpenURL(STORAGE_OPTIONS_DOC_LINK);
                    }
                }
            }


            using (new SA_WindowBlockWithSpace("Debug"))
            {
                EditorGUILayout.HelpBox("API Resolver's are normally launched with build pre-process stage", MessageType.Info);
                var pressed = GUILayout.Button("Start API Resolvers");
                if (pressed)
                {
                    SA_PluginsEditor.DisableLibstAtPath(AN_Settings.ANDROID_FOLDER_DISABLED);
                    AN_Preprocessor.Resolve();
                    GUIUtility.ExitGUI();
                }

                EditorGUILayout.HelpBox("Action will reset all of the plugin settings to default.", MessageType.Info);
                pressed = GUILayout.Button("Reset To Defaults");
                if (pressed)
                {
                    AN_Settings.Delete();
                    AN_Preprocessor.Resolve();
                }
            }
        }
예제 #23
0
        protected override void OnServiceUI()
        {
            using (new SA_WindowBlockWithSpace(new GUIContent("Protecting the User's Privacy"))) {
                EditorGUILayout.HelpBox("Once you link with iOS 10 you must declare access to any user private data types. " +
                                        "Since by default Unity includes libraries that may access API user private data, " +
                                        "the app info.plist mus contains the key's spsifayed bellow. " +
                                        "How ever user will only see this message if you call API that requires private permission. " +
                                        "If you not using such API, you can leave it as is.", MessageType.Info);



                using (new SA_GuiBeginHorizontal()) {
                    GUILayout.FlexibleSpace();
                    bool click = m_privacyLink.DrawWithCalcSize();
                    if (click)
                    {
                        Application.OpenURL("https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy?language=objc");
                    }
                }

                ISN_Settings.Instance.CameraUsageDescriptionEnabled = SA_EditorGUILayout.ToggleFiled(CameraUsageDescription, ISN_Settings.Instance.CameraUsageDescriptionEnabled, SA_StyledToggle.ToggleType.EnabledDisabled);
                using (new SA_GuiEnable(ISN_Settings.Instance.CameraUsageDescriptionEnabled)) {
                    using (new SA_GuiIndentLevel(1)) {
                        ISN_Settings.Instance.CameraUsageDescription = EditorGUILayout.TextArea(ISN_Settings.Instance.CameraUsageDescription, SA_PluginSettingsWindowStyles.TextArea, GUILayout.Height(30));
                    }
                }



                EditorGUILayout.Space();
                ISN_Settings.Instance.PhotoLibraryUsageDescriptionEnabled = SA_EditorGUILayout.ToggleFiled(PhotoLibraryUsageDescription, ISN_Settings.Instance.PhotoLibraryUsageDescriptionEnabled, SA_StyledToggle.ToggleType.EnabledDisabled);
                using (new SA_GuiEnable(ISN_Settings.Instance.PhotoLibraryUsageDescriptionEnabled)) {
                    using (new SA_GuiIndentLevel(1)) {
                        ISN_Settings.Instance.PhotoLibraryUsageDescription = EditorGUILayout.TextArea(ISN_Settings.Instance.PhotoLibraryUsageDescription, SA_PluginSettingsWindowStyles.TextArea, GUILayout.Height(30));
                    }
                }



                EditorGUILayout.Space();
                ISN_Settings.Instance.PhotoLibraryAddUsageDescriptionEnabled = SA_EditorGUILayout.ToggleFiled(PhotoLibraryAddUsageDescription, ISN_Settings.Instance.PhotoLibraryAddUsageDescriptionEnabled, SA_StyledToggle.ToggleType.EnabledDisabled);
                using (new SA_GuiEnable(ISN_Settings.Instance.PhotoLibraryAddUsageDescriptionEnabled)) {
                    using (new SA_GuiIndentLevel(1)) {
                        ISN_Settings.Instance.PhotoLibraryAddUsageDescription = EditorGUILayout.TextArea(ISN_Settings.Instance.PhotoLibraryAddUsageDescription, SA_PluginSettingsWindowStyles.TextArea, GUILayout.Height(30));
                    }
                }


                EditorGUILayout.Space();
                ISN_Settings.Instance.MicrophoneUsageDescriptionEnabled = SA_EditorGUILayout.ToggleFiled(MicrophoneUsageDescription, ISN_Settings.Instance.MicrophoneUsageDescriptionEnabled, SA_StyledToggle.ToggleType.EnabledDisabled);
                using (new SA_GuiEnable(ISN_Settings.Instance.MicrophoneUsageDescriptionEnabled)) {
                    using (new SA_GuiIndentLevel(1)) {
                        ISN_Settings.Instance.MicrophoneUsageDescription = EditorGUILayout.TextArea(ISN_Settings.Instance.MicrophoneUsageDescription, SA_PluginSettingsWindowStyles.TextArea, GUILayout.Height(30));
                    }
                }
            }



            using (new SA_WindowBlockWithSpace(new GUIContent("Allowed schemes to query"))) {
                SA_EditorGUILayout.ReorderablList(ISN_Settings.Instance.ApplicationQueriesSchemes,
                                                  (ISN_UIUrlType scheme) => {
                    return(scheme.Identifier);
                },
                                                  (ISN_UIUrlType scheme) => {
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("Identifier");
                    scheme.Identifier = EditorGUILayout.TextField(scheme.Identifier);
                    EditorGUILayout.EndHorizontal();
                },
                                                  () => {
                    ISN_UIUrlType newUlr = new ISN_UIUrlType("url_sheme");
                    ISN_Settings.Instance.ApplicationQueriesSchemes.Add(newUlr);
                });
            }
        }
        public void Frameworks()
        {
            Texture2D framework_icon = SA_EditorAssets.GetTextureAtPath(ISD_Skin.ICONS_PATH + "frameworks.png");

            using (new SA_WindowBlockWithIndent(new GUIContent("Frameworks", framework_icon))) {
                IsDefFrameworksOpen = EditorGUILayout.Foldout(IsDefFrameworksOpen, "Show Default Unity Frameworks (17 Enabled)");
                if (IsDefFrameworksOpen)
                {
                    int indentLevel = EditorGUI.indentLevel;
                    EditorGUI.indentLevel = 0;
                    using (new SA_GuiBeginHorizontal()) {
                        GUILayout.Space(30);

                        using (new SA_GuiBeginVertical(GUI.skin.box)) {
                            foreach (ISD_Framework framework in ISD_FrameworkHandler.DefaultFrameworks)
                            {
                                SA_EditorGUILayout.SelectableLabel(framework.Type.ToString() + ".framework", "");
                            }
                        }
                    }

                    EditorGUI.indentLevel = indentLevel;
                    EditorGUILayout.Space();
                }


                IsDefLibrariesOpen = EditorGUILayout.Foldout(IsDefLibrariesOpen, "Default Unity Libraries (2 Enabled)");
                if (IsDefLibrariesOpen)
                {
                    int indentLevel = EditorGUI.indentLevel;
                    EditorGUI.indentLevel = 0;
                    using (new SA_GuiBeginHorizontal()) {
                        GUILayout.Space(30);

                        using (new SA_GuiBeginVertical(GUI.skin.box)) {
                            SA_EditorGUILayout.SelectableLabel("libiPhone-lib.a", "");
                            SA_EditorGUILayout.SelectableLabel("libiconv.2.dylib", "");
                        }
                    }
                    EditorGUI.indentLevel = indentLevel;


                    EditorGUILayout.Space();
                }

                //Frameworks List
                SA_EditorGUILayout.ReorderablList(ISD_Settings.Instance.Frameworks,
                                                  (ISD_Framework framework) => {
                    if (framework.IsOptional && framework.IsEmbeded)
                    {
                        return(framework.Name + "       (Optional & Embeded)");
                    }
                    else if (framework.IsOptional)
                    {
                        return(framework.Name + "        (Optional)");
                    }
                    else if (framework.IsEmbeded)
                    {
                        return(framework.Name + "        (Embeded)");
                    }
                    else
                    {
                        return(framework.Name);
                    }
                },
                                                  (ISD_Framework framework) => {
                    framework.IsOptional = SA_EditorGUILayout.ToggleFiled("Optional", framework.IsOptional, SA_StyledToggle.ToggleType.YesNo);
                    framework.IsEmbeded  = SA_EditorGUILayout.ToggleFiled("Embeded", framework.IsEmbeded, SA_StyledToggle.ToggleType.YesNo);
                }
                                                  );

                //Libraries List
                SA_EditorGUILayout.ReorderablList(ISD_Settings.Instance.Libraries,
                                                  (ISD_Library lib) => {
                    if (lib.IsOptional)
                    {
                        return(lib.Name + "    (Optional)");
                    }
                    else
                    {
                        return(lib.Name);
                    }
                },
                                                  (ISD_Library lib) => {
                    lib.IsOptional = SA_EditorGUILayout.ToggleFiled("Optional", lib.IsOptional, SA_StyledToggle.ToggleType.YesNo);
                }
                                                  );



                //Add New Framework
                EditorGUILayout.BeginHorizontal();
                NewBaseFrameworkIndex = EditorGUILayout.Popup(NewBaseFrameworkIndex, ISD_FrameworkHandler.BaseFrameworksArray());

                if (GUILayout.Button("Add Framework", EditorStyles.miniButton, GUILayout.Width(100)))
                {
                    var type = ISD_FrameworkHandler.BaseFrameworksArray()[NewBaseFrameworkIndex];
                    NewBaseFrameworkIndex = 0;

                    ISD_Framework f = new ISD_Framework(type);
                    ISD_API.AddFramework(f);
                }
                EditorGUILayout.EndHorizontal();


                //Add New Library
                EditorGUILayout.BeginHorizontal();
                NewLibraryIndex = EditorGUILayout.Popup(NewLibraryIndex, ISD_LibHandler.BaseLibrariesArray());

                if (GUILayout.Button("Add Library", EditorStyles.miniButton, GUILayout.Width(100)))
                {
                    ISD_iOSLibrary type = (ISD_iOSLibrary)ISD_LibHandler.enumValueOf(ISD_LibHandler.BaseLibrariesArray()[NewLibraryIndex]);
                    NewLibraryIndex = 0;
                    ISD_API.AddLibrary(type);
                }

                EditorGUILayout.EndHorizontal();
            }
        }