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.
 
 
 
 

46 lines
1.3 KiB

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor.PackageManager.Requests;
namespace UnityEditor.PackageManager.UI
{
internal class UpmListOperation : UpmBaseOperation, IListOperation
{
[SerializeField]
private Action<IEnumerable<PackageInfo>> _doneCallbackAction;
public UpmListOperation(bool offlineMode) : base()
{
OfflineMode = offlineMode;
}
public bool OfflineMode { get; set; }
public void GetPackageListAsync(Action<IEnumerable<PackageInfo>> doneCallbackAction, Action<Error> errorCallbackAction = null)
{
this._doneCallbackAction = doneCallbackAction;
OnOperationError += errorCallbackAction;
Start();
}
protected override Request CreateRequest()
{
return Client.List(OfflineMode);
}
protected override void ProcessData()
{
var request = CurrentRequest as ListRequest;
var packages = new List<PackageInfo>();
foreach (var upmPackage in request.Result)
{
var packageInfos = FromUpmPackageInfo(upmPackage);
packages.AddRange(packageInfos);
}
_doneCallbackAction(packages);
}
}
}