Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita15f48f

Browse files
committed
Merge branch 'atenuggets'
* atenuggets: handle missing releases, comparing batches to all cached versions (since releases api is not in order) alpha release notes for 2023.3 and laterfixes#31 add full installer exe download option to DownloadInBrowser(), add await for extract urls (got stuck otherwise), fix converter issue (in design time), test build without nugets (system.text.json and others) ref#170
2 parents6fef27a +454afeb commita15f48f

File tree

11 files changed

+342
-231
lines changed

11 files changed

+342
-231
lines changed

‎UnityLauncherPro/App.config‎

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<configuration>
33
<runtime>
4-
<AppContextSwitchOverridesvalue="Switch.System.Windows.DoNotScaleForDpiChanges=false"/>
4+
<AppContextSwitchOverridesvalue="Switch.System.Windows.DoNotScaleForDpiChanges=false"/>
55
</runtime>
66
<configSections>
77
<sectionGroupname="userSettings"type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
8-
<sectionname="UnityLauncherPro.Properties.Settings"type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"allowExeDefinition="MachineToLocalUser"requirePermission="false"/>
8+
<sectionname="UnityLauncherPro.Properties.Settings"type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"allowExeDefinition="MachineToLocalUser"requirePermission="false"/>
99
</sectionGroup>
1010
</configSections>
1111
<startup>
12-
<supportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.8"/>
12+
<supportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.8"/>
1313
</startup>
1414
<userSettings>
1515
<UnityLauncherPro.Properties.Settings>
@@ -44,10 +44,10 @@
4444
<value>False</value>
4545
</setting>
4646
<settingname="preferredVersion"serializeAs="String">
47-
<value/>
47+
<value/>
4848
</setting>
4949
<settingname="newProjectsRoot"serializeAs="String">
50-
<value/>
50+
<value/>
5151
</setting>
5252
<settingname="askNameForQuickProject"serializeAs="String">
5353
<value>True</value>
@@ -62,7 +62,7 @@
6262
<value>False</value>
6363
</setting>
6464
<settingname="webglBuildPath"serializeAs="String">
65-
<value/>
65+
<value/>
6666
</setting>
6767
<settingname="useCustomTheme"serializeAs="String">
6868
<value>False</value>
@@ -95,10 +95,10 @@
9595
<value>0</value>
9696
</setting>
9797
<settingname="templatePackagesFolder"serializeAs="String">
98-
<value/>
98+
<value/>
9999
</setting>
100100
<settingname="newProjectPlatform"serializeAs="String">
101-
<value/>
101+
<value/>
102102
</setting>
103103
<settingname="searchProjectPathAlso"serializeAs="String">
104104
<value>False</value>
@@ -107,7 +107,7 @@
107107
<value>False</value>
108108
</setting>
109109
<settingname="shortcutBatchFileFolder"serializeAs="String">
110-
<value/>
110+
<value/>
111111
</setting>
112112
<settingname="rootFolders"serializeAs="Xml">
113113
<value>
@@ -127,7 +127,7 @@
127127
</setting>
128128
<settingname="projectPaths"serializeAs="Xml">
129129
<value>
130-
<ArrayOfStringxmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
130+
<ArrayOfStringxmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
131131
</value>
132132
</setting>
133133
<settingname="override40ProjectCount"serializeAs="String">
Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,49 @@
11
usingSystem;
22
usingSystem.Globalization;
3+
usingSystem.Windows;
34
usingSystem.Windows.Data;
45

56
namespaceUnityLauncherPro.Converters
67
{
7-
[ValueConversion(typeof(DateTime),typeof(String))]
8+
[ValueConversion(typeof(DateTime),typeof(string))]
89
publicclassReleaseDateConverter:IValueConverter
910
{
1011
publicobjectConvert(objectvalue,TypetargetType,objectparameter,CultureInfoculture)
1112
{
12-
if(value==null)returnnull;
13-
DateTimedate=(DateTime)value;
13+
if(value==null||!(valueisDateTimedate))
14+
{
15+
returnDependencyProperty.UnsetValue;
16+
}
1417

15-
// get first part of string until space character (updates only contain mm/dd/yyyy)
16-
stringdateStrTrimmed=MainWindow.currentDateFormat;
17-
if(dateStrTrimmed.IndexOf(' ')>-1)dateStrTrimmed=dateStrTrimmed.Split(' ')[0];
18+
// Use a default date format if currentDateFormat is null or empty
19+
stringdateStrTrimmed=MainWindow.currentDateFormat??"MM/dd/yyyy";
1820

19-
returnMainWindow.useHumanFriendlyDateFormat?Tools.GetElapsedTime(date):date.ToString(dateStrTrimmed);
21+
// If the format includes time, use only the date portion
22+
if(dateStrTrimmed.Contains(" "))
23+
{
24+
dateStrTrimmed=dateStrTrimmed.Split(' ')[0];
25+
}
26+
27+
// Return a human-friendly format if enabled; otherwise, format based on dateStrTrimmed
28+
returnMainWindow.useHumanFriendlyDateFormat
29+
?Tools.GetElapsedTime(date)
30+
:date.ToString(dateStrTrimmed,culture);
2031
}
2132

2233
publicobjectConvertBack(objectvalue,TypetargetType,objectparameter,CultureInfoculture)
2334
{
24-
// not used ?
25-
returnDateTime.ParseExact((string)value,MainWindow.currentDateFormat,culture);
26-
}
35+
if(value==null||string.IsNullOrWhiteSpace(value.ToString()))
36+
{
37+
returnDependencyProperty.UnsetValue;
38+
}
2739

40+
// Attempt to parse back to DateTime using the specified format
41+
if(DateTime.TryParseExact((string)value,MainWindow.currentDateFormat??"MM/dd/yyyy",culture,DateTimeStyles.None,outDateTimeparsedDate))
42+
{
43+
returnparsedDate;
44+
}
45+
46+
returnDependencyProperty.UnsetValue;
47+
}
2848
}
2949
}
Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,56 @@
11
usingSystem;
2-
usingSystem.Text.Json;
3-
usingSystem.Text.Json.Serialization;
2+
usingSystem.Collections.Generic;
43

54
namespaceUnityLauncherPro
65
{
76
publicclassUnityVersion
87
{
9-
[JsonPropertyName("version")]
108
publicstringVersion{get;set;}
11-
[JsonPropertyName("stream")]
12-
[JsonConverter(typeof(UnityVersionStreamConverter))]
139
publicUnityVersionStreamStream{get;set;}
14-
[JsonPropertyName("releaseDate")]
1510
publicDateTimeReleaseDate{get;set;}
16-
}
17-
18-
publicclassUnityVersionStreamConverter:JsonConverter<UnityVersionStream>
19-
{
20-
publicoverrideUnityVersionStreamRead(refUtf8JsonReaderreader,TypetypeToConvert,JsonSerializerOptionsoptions)
11+
12+
publicstaticUnityVersionFromJson(stringjson)
2113
{
22-
stringstreamString=reader.GetString();
23-
if(Enum.TryParse<UnityVersionStream>(streamString,true,outvarresult))
14+
varvalues=ParseJsonToDictionary(json);
15+
16+
returnnewUnityVersion
2417
{
25-
returnresult;
18+
Version=values.ContainsKey("version")?values["version"]:null,
19+
Stream=ParseStream(values.ContainsKey("stream")?values["stream"]:null),
20+
ReleaseDate=DateTime.TryParse(values.ContainsKey("releaseDate")?values["releaseDate"]:null,outvardate)
21+
?date
22+
:default
23+
};
24+
}
25+
26+
publicstringToJson()
27+
{
28+
return$"{{\"version\":\"{Version}\",\"stream\":\"{Stream}\",\"releaseDate\":\"{ReleaseDate:yyyy-MM-ddTHH:mm:ss}\" }}";
29+
}
30+
31+
privatestaticDictionary<string,string>ParseJsonToDictionary(stringjson)
32+
{
33+
varresult=newDictionary<string,string>();
34+
json=json.Trim(newchar[]{'{','}',' '});
35+
varkeyValuePairs=json.Split(new[]{','},StringSplitOptions.RemoveEmptyEntries);
36+
37+
foreach(varpairinkeyValuePairs)
38+
{
39+
varkeyValue=pair.Split(new[]{':'},2);
40+
if(keyValue.Length==2)
41+
{
42+
varkey=keyValue[0].Trim(newchar[]{' ','"'});
43+
varvalue=keyValue[1].Trim(newchar[]{' ','"'});
44+
result[key]=value;
45+
}
2646
}
27-
thrownewJsonException($"Unable to convert\"{streamString}\" to UnityVersionStream");
47+
48+
returnresult;
2849
}
2950

30-
publicoverridevoidWrite(Utf8JsonWriterwriter,UnityVersionStreamvalue,JsonSerializerOptionsoptions)
51+
privatestaticUnityVersionStreamParseStream(stringstream)
3152
{
32-
writer.WriteStringValue(value.ToString().ToUpper());
53+
returnEnum.TryParse(stream,true,outUnityVersionStreamresult)?result:UnityVersionStream.Tech;
3354
}
3455
}
35-
}
56+
}
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11
usingSystem.Collections.Generic;
2-
usingSystem.Text.Json.Serialization;
32

43
namespaceUnityLauncherPro
54
{
65
publicclassUnityVersionResponse
76
{
8-
[JsonPropertyName("offset")]
97
publicintOffset{get;set;}
10-
[JsonPropertyName("limit")]
118
publicintLimit{get;set;}
12-
[JsonPropertyName("total")]
139
publicintTotal{get;set;}
14-
[JsonPropertyName("results")]
1510
publicList<UnityVersion>Results{get;set;}
1611
}
1712
}

‎UnityLauncherPro/Data/UnityVersionStream.cs‎

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
usingSystem;
2+
usingSystem.Collections.Generic;
3+
14
namespaceUnityLauncherPro
25
{
36
publicenumUnityVersionStream
@@ -7,4 +10,37 @@ public enum UnityVersionStream
710
LTS,
811
Tech
912
}
13+
14+
publicclassUnityVersionJSON
15+
{
16+
publicstringVersion{get;set;}
17+
publicDateTimeReleaseDate{get;set;}
18+
publicUnityVersionStreamStream{get;set;}
19+
publicList<Download>Downloads{get;set;}
20+
publicstringShortRevision{get;set;}
21+
}
22+
23+
publicclassDownload
24+
{
25+
publicstringUrl{get;set;}
26+
publicstringType{get;set;}
27+
publicstringPlatform{get;set;}
28+
publicstringArchitecture{get;set;}
29+
publicDownloadSizeDownloadSize{get;set;}
30+
publicList<Module>Modules{get;set;}
31+
}
32+
33+
publicclassDownloadSize
34+
{
35+
publiclongValue{get;set;}
36+
publicstringUnit{get;set;}
37+
}
38+
39+
publicclassModule
40+
{
41+
publicstringId{get;set;}
42+
publicstringName{get;set;}
43+
publicstringDescription{get;set;}
44+
publicstringUrl{get;set;}
45+
}
1046
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp