private void RemovePackage()

in Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/SDKPackage/AppCenterSDKPackage.cs [45:110]


        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));
            }
        }