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.

37 lines
1.2 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEditor.PackageManager.Requests;
  5. namespace UnityEditor.PackageManager.UI
  6. {
  7. internal class UpmSearchOperation : UpmBaseOperation, ISearchOperation
  8. {
  9. [SerializeField]
  10. private Action<IEnumerable<PackageInfo>> _doneCallbackAction;
  11. public void GetAllPackageAsync(Action<IEnumerable<PackageInfo>> doneCallbackAction = null, Action<Error> errorCallbackAction = null)
  12. {
  13. _doneCallbackAction = doneCallbackAction;
  14. OnOperationError += errorCallbackAction;
  15. Start();
  16. }
  17. protected override Request CreateRequest()
  18. {
  19. return Client.SearchAll();
  20. }
  21. protected override void ProcessData()
  22. {
  23. var request = CurrentRequest as SearchRequest;
  24. var packages = new List<PackageInfo>();
  25. foreach (var upmPackage in request.Result)
  26. {
  27. var packageInfos = FromUpmPackageInfo(upmPackage, false);
  28. packages.AddRange(packageInfos);
  29. }
  30. _doneCallbackAction(packages);
  31. }
  32. }
  33. }