You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.5 KiB

  1. using System.Linq;
  2. namespace UnityEditor.PackageManager.UI
  3. {
  4. internal static class PackageManagerPrefs
  5. {
  6. private const string kShowPreviewPackagesPrefKeyPrefix = "PackageManager.ShowPreviewPackages_";
  7. private const string kShowPreviewPackagesWarningPrefKey = "PackageManager.ShowPreviewPackagesWarning";
  8. private static string GetProjectIdentifier()
  9. {
  10. // PlayerSettings.productGUID is already used as LocalProjectID by Analytics, so we use it too
  11. return PlayerSettings.productGUID.ToString();
  12. }
  13. public static bool ShowPreviewPackages
  14. {
  15. get
  16. {
  17. var key = kShowPreviewPackagesPrefKeyPrefix + GetProjectIdentifier();
  18. // If user manually choose to show or not preview packages, use this value
  19. if (EditorPrefs.HasKey(key))
  20. return EditorPrefs.GetBool(key);
  21. // Returns true if at least one preview package is installed, false otherwise
  22. return PackageCollection.Instance.LatestListPackages.Any(p => p.IsPreview && p.IsCurrent);
  23. }
  24. set
  25. {
  26. EditorPrefs.SetBool(kShowPreviewPackagesPrefKeyPrefix + GetProjectIdentifier(), value);
  27. }
  28. }
  29. public static bool ShowPreviewPackagesWarning
  30. {
  31. get { return EditorPrefs.GetBool(kShowPreviewPackagesWarningPrefKey, true); }
  32. set { EditorPrefs.SetBool(kShowPreviewPackagesWarningPrefKey, value); }
  33. }
  34. }
  35. }