public static void RemoveSdk(bool prompt = true)
        {
            if (prompt && !EditorUtility.DisplayDialog("Confirm SDK Removal", "This action will remove the current App Center SDK.", "Confirm", "Cancel"))
            {
                return;
            }
            EdExLogger.LoggerInstance.LogWithTimeStamp("Removing SDK...");

            RemoveAndroidSettings();

            if (FileUtil.DeleteFileOrDirectory(AppCenterEditorPrefsSO.Instance.SdkPath))
            {
                FileUtil.DeleteFileOrDirectory(AppCenterEditorPrefsSO.Instance.SdkPath + ".meta");
                AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnSuccess, "App Center SDK removed.");

                EdExLogger.LoggerInstance.LogWithTimeStamp("App Center SDK removed.");
                // HACK for 5.4, AssetDatabase.Refresh(); seems to cause the install to fail.
                if (prompt)
                {
                    AssetDatabase.Refresh();
                }
            }
            else
            {
                AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnError, "An unknown error occured and the App Center SDK could not be removed.");
            }
        }
Пример #2
0
        internal static void MakeDownloadCall(string url, Action <string> resultCallback)
        {
            EdExLogger.LoggerInstance.LogWithTimeStamp("Downloading file: " + url);
            var www = new WWW(url);

            AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnHttpReq, url, AppCenterEditorHelper.MSG_SPIN_BLOCK);
            EditorCoroutine.Start(PostDownload(www, response =>
            {
                resultCallback(WriteResultFile(url, response));
            }, AppCenterEditorHelper.SharedErrorCallback), www);
        }
Пример #3
0
        static void AppCenterServices()
        {
            var editorAsm   = typeof(Editor).Assembly;
            var inspWndType = editorAsm.GetType("UnityEditor.SceneHierarchyWindow");

            if (inspWndType == null)
            {
                inspWndType = editorAsm.GetType("UnityEditor.InspectorWindow");
            }

            window = GetWindow <AppCenterEditor>(inspWndType);
            window.titleContent = new GUIContent("App Center");
            AppCenterEditorPrefsSO.Instance.PanelIsShown = true;
        }
Пример #4
0
        internal static void MakeDownloadCall(IEnumerable <string> urls, Action <IEnumerable <string> > resultCallback)
        {
            EdExLogger.LoggerInstance.LogWithTimeStamp("Downloading files: " + string.Join(", ", urls.ToArray()));
            var wwws             = new List <WWW>();
            var downloadRequests = new List <DownloadRequest>();

            foreach (var url in urls)
            {
                var www = new WWW(url);
                wwws.Add(www);
                downloadRequests.Add(new DownloadRequest(url, www));
            }
            AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnHttpReq, "Downloading files", AppCenterEditorHelper.MSG_SPIN_BLOCK);
            EditorCoroutine.Start(DownloadFiles(downloadRequests, resultCallback, AppCenterEditorHelper.SharedErrorCallback), wwws);
        }
Пример #5
0
        void OnEnable()
        {
            if (window == null)
            {
                window         = this;
                window.minSize = new Vector2(320, 0);
            }

            if (!IsEventHandlerRegistered(StateUpdateHandler))
            {
                EdExStateUpdate += StateUpdateHandler;
            }

            GetLatestEdExVersion();
        }
Пример #6
0
        private static string WriteResultFile(string url, byte[] response)
        {
            AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnHttpRes, url);
            string fileName;

            if (url.IndexOf("AppCenterEditorExtensions-v") > -1)
            {
                fileName = AppCenterEditorHelper.EDEX_UPGRADE_PATH;
            }
            else if (url.IndexOf("AppCenterAnalytics-v") > -1)
            {
                fileName = AppCenterEditorHelper.ANALYTICS_SDK_DOWNLOAD_PATH;
            }
            else if (url.IndexOf("AppCenterAuth-v") > -1)
            {
                fileName = AppCenterEditorHelper.AUTH_SDK_DOWNLOAD_PATH;
            }
            else if (url.IndexOf("AppCenterCrashes-v") > -1)
            {
                fileName = AppCenterEditorHelper.CRASHES_SDK_DOWNLOAD_PATH;
            }
            else if (url.IndexOf("AppCenterDistribute-v") > -1)
            {
                fileName = AppCenterEditorHelper.DISTRIBUTE_SDK_DOWNLOAD_PATH;
            }
            else
            {
                fileName = AppCenterEditorHelper.EDEX_PACKAGES_PATH;
            }
            var fileSaveLocation  = AppCenterEditorHelper.EDEX_ROOT + fileName;
            var fileSaveDirectory = Path.GetDirectoryName(fileSaveLocation);

            EdExLogger.LoggerInstance.LogWithTimeStamp("Saving " + response.Length + " bytes to: " + fileSaveLocation);
            if (!Directory.Exists(fileSaveDirectory))
            {
                Directory.CreateDirectory(fileSaveDirectory);
            }
            File.WriteAllBytes(fileSaveLocation, response);
            return(fileSaveLocation);
        }
        private static void ShowFolderObject()
        {
            if (sdkFolderNotFound)
            {
                EditorGUILayout.LabelField("An SDK was detected, but we were unable to find the directory. Drag-and-drop the top-level App Center SDK folder below.",
                                           AppCenterEditorHelper.uiStyle.GetStyle("orTxt"));
            }
            else
            {
                // This hack is needed to disable folder object and remove the blue border around it.
                // Other UI is getting enabled later in the method.
                GUI.enabled = false;
            }

            GUILayout.Space(5);
            using (new AppCenterGuiFieldHelper.UnityHorizontal(AppCenterEditorHelper.uiStyle.GetStyle("gpStyleClearWithleftPad")))
            {
                GUILayout.FlexibleSpace();
                SdkFolder = EditorGUILayout.ObjectField(SdkFolder, typeof(UnityEngine.Object), false, GUILayout.MaxWidth(200));
                GUILayout.FlexibleSpace();
            }
            GUILayout.Space(5);
            GUI.enabled = AppCenterEditor.IsGUIEnabled();
        }
Пример #8
0
        private void RemovePackage(bool prompt = true)
        {
            if (prompt && !EditorUtility.DisplayDialog("Confirm SDK Removal", string.Format("This action will remove the current {0} SDK.", Name), "Confirm", "Cancel"))
            {
                return;
            }
            EdExLogger.LoggerInstance.LogWithTimeStamp(string.Format("Removing {0} package...", Name));

            var    toDelete    = new List <string>();
            string pluginsPath = Path.Combine(AppCenterEditorPrefsSO.Instance.SdkPath, "Plugins");
            string androidPath = Path.Combine(pluginsPath, "Android");
            string sdkPath     = Path.Combine(pluginsPath, "AppCenterSDK");
            string iosPath     = Path.Combine(pluginsPath, "iOS");
            string wsaPath     = Path.Combine(pluginsPath, "WSA");

            toDelete.Add(Path.Combine(androidPath, string.Format("appcenter-{0}-release.aar", Name.ToLower())));
            toDelete.AddRange(Directory.GetFiles(Path.Combine(sdkPath, Name)));
            toDelete.AddRange(Directory.GetDirectories(Path.Combine(sdkPath, Name)));
            toDelete.Add(Path.Combine(sdkPath, Name));
            toDelete.AddRange(Directory.GetFiles(Path.Combine(iosPath, Name)));
            toDelete.AddRange(Directory.GetDirectories(Path.Combine(iosPath, Name)));
            toDelete.Add(Path.Combine(iosPath, Name));
            if (IsSupportedForWSA)
            {
                toDelete.AddRange(Directory.GetFiles(Path.Combine(wsaPath, Name)));
                toDelete.AddRange(Directory.GetDirectories(Path.Combine(wsaPath, Name)));
                toDelete.Add(Path.Combine(wsaPath, Name));
            }

            bool deleted = true;

            foreach (var path in toDelete)
            {
                if (!FileUtil.DeleteFileOrDirectory(path))
                {
                    if (!path.EndsWith("meta"))
                    {
                        deleted = false;
                    }
                }
                FileUtil.DeleteFileOrDirectory(path + ".meta");
            }

            // Remove Core if no packages left.
            List <AppCenterSDKPackage> installedPackages = new List <AppCenterSDKPackage>();

            installedPackages.AddRange(GetInstalledPackages());
            if (installedPackages.Count <= 1)
            {
                AppCenterEditorSDKTools.RemoveSdk(false);
            }

            if (deleted)
            {
                EdExLogger.LoggerInstance.LogWithTimeStamp(string.Format("{0} package removed.", Name));
                AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnSuccess, string.Format("App Center {0} SDK removed.", Name));

                // HACK for 5.4, AssetDatabase.Refresh(); seems to cause the install to fail.
                if (prompt)
                {
                    AssetDatabase.Refresh();
                }
            }
            else
            {
                AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnError, string.Format("An unknown error occured and the {0} SDK could not be removed.", Name));
            }
        }
 public static void SharedErrorCallback(string error)
 {
     AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnError, error);
 }