Skip to content

Commit 94ef69c

Browse files
committed
fix: support Unity 2022.2
1 parent 1b27d2b commit 94ef69c

File tree

4 files changed

+36
-13
lines changed

4 files changed

+36
-13
lines changed

Editor/Coffee.UpmGitExtension/Extensions/UpmPackageVersionEx.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public UpmPackageVersionEx(UpmPackageVersion packageVersion) : base(packageVersi
3535
OnAfterDeserialize();
3636
}
3737

38-
public override string versionString => m_VersionString;
38+
public string fullVersionString { get; private set; }
3939
public SemVersion semVersion { get; private set; }
4040

4141
[SerializeField]
@@ -77,9 +77,13 @@ public override void OnAfterDeserialize()
7777

7878
semVersion = m_Version ?? new SemVersion();
7979
var revision = packageInfo?.git?.revision ?? "";
80-
if (!revision.Contains(m_VersionString))
80+
if (!revision.Contains(m_VersionString) && 0 < revision.Length)
8181
{
82-
m_VersionString = $"{m_Version} ({revision})";
82+
fullVersionString = $"{m_Version} ({revision})";
83+
}
84+
else
85+
{
86+
fullVersionString = m_Version.ToString();
8387
}
8488

8589
try

Editor/Coffee.UpmGitExtension/GitPackageDataBase.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,10 @@ private static void UpdateGitPackageVersions()
227227
// Git mode: Register all installable package versions.
228228
var upmPackage = _packageDatabase.GetPackage(versions.Key) as UpmPackage;
229229
var installedVersion = upmPackage.versions.installed as UpmPackageVersion;
230+
if (installedVersion.packageInfo.source == UnityEditor.PackageManager.PackageSource.Embedded)
231+
return upmPackage;
232+
233+
// Unlock.
230234
installedVersion.UnlockVersion();
231235

232236
var newVersions = new[] { new UpmPackageVersionEx(installedVersion) }

Editor/Coffee.UpmGitExtension/UI/PackageDetailsExtension.cs

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ internal class PackageDetailsExtension
1919
//################################
2020
public void Setup(VisualElement root)
2121
{
22+
_root = root;
2223
_packageDetails = root.Q<PackageDetails>();
2324

2425
var hostButton = _packageDetails.Q<Button>("hostButton");
@@ -55,14 +56,16 @@ public void Setup(VisualElement root)
5556
upmGitExtension.Add(new Label() { name = "detailSourcePath" });
5657
}
5758
#endif
59+
5860
// Register callbacks.
59-
_versionItems = root.Query<PackageVersionItem>().Build();
6061
EditorApplication.delayCall += () =>
6162
{
63+
#if UNITY_2022_2_OR_NEWER
64+
#elif UNITY_2021_2_OR_NEWER || UNITY_2021_1_20 || UNITY_2021_1_21 || UNITY_2021_1_22 || UNITY_2021_1_23 || UNITY_2021_1_24 || UNITY_2021_1_25 || UNITY_2021_1_26 || UNITY_2021_1_27 || UNITY_2021_1_28
6265
_pageManager.onVisualStateChange += _ => RefleshVersionItems();
63-
#if UNITY_2021_2_OR_NEWER || UNITY_2021_1_20 || UNITY_2021_1_21 || UNITY_2021_1_22 || UNITY_2021_1_23 || UNITY_2021_1_24 || UNITY_2021_1_25 || UNITY_2021_1_26 || UNITY_2021_1_27 || UNITY_2021_1_28
6466
_pageManager.onListUpdate += _ => RefleshVersionItems();
6567
#else
68+
_pageManager.onVisualStateChange += _ => RefleshVersionItems();
6669
_pageManager.onListUpdate += (_, __, ___, ____) => RefleshVersionItems();
6770
#endif
6871
};
@@ -122,6 +125,10 @@ public void OnPackageSelectionChange(PackageInfo packageInfo)
122125
var package = GitPackageDatabase.GetPackage(packageInfo.name);
123126
_targetVersion = package.versions.installed != null ? package.versions.recommended : package.versions.primary;
124127
}
128+
129+
#if UNITY_2022_2_OR_NEWER
130+
RefleshVersionItems();
131+
#endif
125132
}
126133
}
127134

@@ -133,7 +140,7 @@ public void OnPackageSelectionChange(PackageInfo packageInfo)
133140
private IPackageVersion _targetVersion;
134141
private Clickable _clickableToUpdate;
135142
private Button _updateButton;
136-
private UQueryState<PackageVersionItem> _versionItems;
143+
private VisualElement _root;
137144
#if UNITY_2020_2_OR_NEWER
138145
private static PageManager _pageManager => ScriptableSingleton<ServicesContainer>.instance.Resolve<PageManager>();
139146
#else
@@ -191,14 +198,18 @@ private void UpdatePackage()
191198

192199
private void RefleshVersionItems()
193200
{
194-
_versionItems.ForEach(item =>
201+
#if UNITY_2022_2_OR_NEWER
202+
var items = _root.Query<PackageDetailsVersionHistoryItem>().Build()
203+
.Select(item => new { label = item.Q<Toggle>("versionHistoryItemToggle")?.Q<Label>(), version = item.version as UpmPackageVersionEx });
204+
#else
205+
var items = _root.Query<PackageVersionItem>().Build().ToList()
206+
.Select(item => new { label = item.Q<Label>("versionLabel"), version = item.version as UpmPackageVersionEx });
207+
#endif
208+
foreach(var item in items)
195209
{
196-
var text = item.Q<Label>("versionLabel");
197-
if (text != null && item.version.HasTag(PackageTag.Git))
198-
{
199-
text.text = item.version.versionString;
200-
}
201-
});
210+
if (item.label != null && item.version != null)
211+
item.label.text = item.version.fullVersionString;
212+
}
202213
}
203214
}
204215
}

Editor/Coffee.UpmGitExtension/UI/SearchResultListView.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,11 @@ public SearchResultListView(TextField textField, Func<string[]> searchFunc) : ba
5353

5454
makeItem = () => new Label();
5555
bindItem = (e, i) => (e as Label).text = _searchedItems[i];
56+
#if UNITY_2022_2_OR_NEWER
57+
selectionChanged += o =>
58+
#else
5659
onSelectionChange += o =>
60+
#endif
5761
{
5862
textField.value = o.FirstOrDefault() as string ?? "";
5963
UIUtils.SetElementDisplay(this, false);

0 commit comments

Comments
 (0)