Skip to content

Commit 1119c4b

Browse files
committed
get unity releases list, fix duplicate columns when adding data to grids,
1 parent 2783378 commit 1119c4b

File tree

5 files changed

+114
-7
lines changed

5 files changed

+114
-7
lines changed

UnityLauncherPro/GetProjects.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public static Project[] Scan()
9696

9797
// get last modified date
9898
DateTime? lastUpdated = Tools.GetLastModifiedTime(csprojFile);
99-
Console.WriteLine(lastUpdated.ToString());
99+
//Console.WriteLine(lastUpdated.ToString());
100100

101101
// get project version
102102
string projectVersion = Tools.GetProjectVersion(projectPath);

UnityLauncherPro/GetUnityUpdates.cs

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Globalization;
4+
using System.Linq;
5+
using System.Net;
6+
using System.Text;
7+
using System.Threading.Tasks;
8+
using System.Windows.Controls;
9+
10+
namespace UnityLauncherPro
11+
{
12+
public static class GetUnityUpdates
13+
{
14+
static bool isDownloadingUnityList = false;
15+
16+
//public static async Task<List<Updates>> Scan()
17+
public static async Task<string> Scan()
18+
{
19+
/*
20+
if (isDownloadingUnityList == true)
21+
{
22+
//SetStatus("We are already downloading ...");
23+
return;
24+
}*/
25+
26+
isDownloadingUnityList = true;
27+
//SetStatus("Downloading list of Unity versions ...");
28+
string result;
29+
// download list of Unity versions
30+
using (WebClient webClient = new WebClient())
31+
{
32+
/*
33+
webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(UnityVersionsListDownloaded);
34+
var unityVersionsURL = @"http://symbolserver.unity3d.com/000Admin/history.txt";
35+
webClient.DownloadStringAsync(new Uri(unityVersionsURL));
36+
*/
37+
38+
var unityVersionsURL = @"http://symbolserver.unity3d.com/000Admin/history.txt";
39+
Task<string> downloadStringTask = webClient.DownloadStringTaskAsync(new Uri(unityVersionsURL));
40+
result = await downloadStringTask;
41+
}
42+
43+
return result;
44+
}
45+
46+
public static Updates[] Parse(string items)// object sender, DownloadStringCompletedEventArgs e)
47+
{
48+
// TODO check for error..
49+
//SetStatus("Downloading list of Unity versions ... done");
50+
//isDownloadingUnityList = false;
51+
52+
// parse to list
53+
var receivedList = items.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
54+
Array.Reverse(receivedList);
55+
//gridUnityUpdates.Rows.Clear();
56+
// fill in, TODO: show only top 50 or so
57+
58+
var updates = new List<Updates>();
59+
60+
for (int i = 0, len = receivedList.Length; i < len; i++)
61+
{
62+
var row = receivedList[i].Split(',');
63+
var versionTemp = row[6].Trim('"');
64+
//gridUnityUpdates.Rows.Add(row[3], versionTemp);
65+
66+
// set color if we already have it installed
67+
//gridUnityUpdates.Rows[i].Cells[1].Style.ForeColor = unityList.ContainsKey(versionTemp) ? Color.Green : Color.Black;
68+
69+
var u = new Updates();
70+
u.ReleaseDate = DateTime.ParseExact(row[3], "MM/dd/yyyy", CultureInfo.InvariantCulture); //DateTime ? lastUpdated = Tools.GetLastModifiedTime(csprojFile);
71+
u.Version = versionTemp;
72+
updates.Add(u);
73+
}
74+
75+
return updates.ToArray();
76+
}
77+
78+
}
79+
}

UnityLauncherPro/MainWindow.xaml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@
287287
<Button Style="{StaticResource CustomButton}" ToolTip="Add existing project" x:Name="btnAddProjectFolder" Content="Add Project.." Height="22" Width="78" HorizontalAlignment="Right" VerticalAlignment="Top" Background="#FF3F3F46" Foreground="#FFC1C1C1" Margin="0,4,34,0" Click="BtnAddProjectFolder_Click" BorderBrush="{x:Null}" />
288288
<Button Style="{StaticResource CustomButton}" ToolTip="Refresh list (F5)" x:Name="btnRefreshProjectList" Content="" Height="22" Width="22" HorizontalAlignment="Right" VerticalAlignment="Top" FontSize="16" Background="#FF3F3F46" Foreground="#FFC1C1C1" Margin="0,4,3,0" Padding="1,-2,1,1" BorderBrush="{x:Null}"/>
289289

290-
<DataGrid x:Name="dataGrid" SelectionMode="Single" Margin="4,30,2,42" Background="{x:Null}" BorderBrush="{x:Null}" ColumnHeaderStyle="{StaticResource HeaderStyle}" Padding="0" HorizontalScrollBarVisibility="Disabled" HeadersVisibility="Column" Foreground="#FFD8D8D8" HorizontalGridLinesBrush="#4C000000" VerticalGridLinesBrush="#19000000">
290+
<DataGrid x:Name="dataGrid" SelectionMode="Single" Margin="4,30,2,42" Background="{x:Null}" BorderBrush="{x:Null}" ColumnHeaderStyle="{StaticResource HeaderStyle}" Padding="0" HorizontalScrollBarVisibility="Disabled" HeadersVisibility="Column" Foreground="#FFD8D8D8" HorizontalGridLinesBrush="#4C000000" VerticalGridLinesBrush="#19000000" AutoGenerateColumns="False">
291291

292292
<DataGrid.Columns>
293293
<DataGridTextColumn Binding="{Binding Title}" ClipboardContentBinding="{x:Null}" Header="Project" IsReadOnly="True" Width="150"/>
@@ -400,7 +400,7 @@
400400

401401
<Button Style="{StaticResource CustomButton}" ToolTip="Refresh installations (F5)" x:Name="btnRefreshUnityList" Content="" Height="22" Width="22" HorizontalAlignment="Right" VerticalAlignment="Top" FontSize="16" Background="#FF3F3F46" Foreground="#FFC1C1C1" Margin="0,4,3,0" Padding="1,-2,1,1" BorderBrush="{x:Null}"/>
402402

403-
<DataGrid x:Name="dataGridUnitys" SelectionMode="Single" Margin="4,30,2,42" Background="{x:Null}" BorderBrush="{x:Null}" ColumnHeaderStyle="{StaticResource HeaderStyle}" Padding="0" HorizontalScrollBarVisibility="Disabled" HeadersVisibility="Column" Foreground="#FFD8D8D8" HorizontalGridLinesBrush="#4C000000" VerticalGridLinesBrush="#19000000">
403+
<DataGrid x:Name="dataGridUnitys" SelectionMode="Single" Margin="4,30,2,42" Background="{x:Null}" BorderBrush="{x:Null}" ColumnHeaderStyle="{StaticResource HeaderStyle}" Padding="0" HorizontalScrollBarVisibility="Disabled" HeadersVisibility="Column" Foreground="#FFD8D8D8" HorizontalGridLinesBrush="#4C000000" VerticalGridLinesBrush="#19000000" AutoGenerateColumns="False">
404404

405405
<DataGrid.Columns>
406406
<DataGridTextColumn Binding="{Binding Version}" ClipboardContentBinding="{x:Null}" Header="Version" IsReadOnly="True" MinWidth="123"/>
@@ -469,12 +469,12 @@
469469
</Button>
470470
</Grid>
471471

472-
<Button Style="{StaticResource CustomButton}" ToolTip="Refresh installations (F5)" x:Name="btnRefreshUpdatesList" Content="" Height="22" Width="22" HorizontalAlignment="Right" VerticalAlignment="Top" FontSize="16" Background="#FF3F3F46" Foreground="#FFC1C1C1" Margin="0,4,3,0" Padding="1,-2,1,1" BorderBrush="{x:Null}"/>
472+
<Button Style="{StaticResource CustomButton}" ToolTip="Refresh installations (F5)" x:Name="btnRefreshUpdatesList" Content="" Height="22" Width="22" HorizontalAlignment="Right" VerticalAlignment="Top" FontSize="16" Background="#FF3F3F46" Foreground="#FFC1C1C1" Margin="0,4,3,0" Padding="1,-2,1,1" BorderBrush="{x:Null}" Click="OnGetUnityUpdatesClick"/>
473473

474-
<DataGrid x:Name="dataGridUpdates" SelectionMode="Single" Margin="4,30,2,42" Background="{x:Null}" BorderBrush="{x:Null}" ColumnHeaderStyle="{StaticResource HeaderStyle}" Padding="0" HorizontalScrollBarVisibility="Disabled" HeadersVisibility="Column" Foreground="#FFD8D8D8" HorizontalGridLinesBrush="#4C000000" VerticalGridLinesBrush="#19000000">
474+
<DataGrid x:Name="dataGridUpdates" SelectionMode="Single" Margin="4,30,2,42" Background="{x:Null}" BorderBrush="{x:Null}" ColumnHeaderStyle="{StaticResource HeaderStyle}" Padding="0" HorizontalScrollBarVisibility="Disabled" HeadersVisibility="Column" Foreground="#FFD8D8D8" HorizontalGridLinesBrush="#4C000000" VerticalGridLinesBrush="#19000000" AutoGenerateColumns="False">
475475

476476
<DataGrid.Columns>
477-
<DataGridTextColumn Binding="{Binding ReleaseDate}" ClipboardContentBinding="{x:Null}" Header="ReleaseDate" IsReadOnly="True"/>
477+
<DataGridTextColumn Binding="{Binding ReleaseDate,StringFormat=\{0:dd/MM/yyyy HH:mm:ss\}}" ClipboardContentBinding="{x:Null}" Header="ReleaseDate" IsReadOnly="True"/>
478478
<DataGridTextColumn Binding="{Binding Version}" ClipboardContentBinding="{x:Null}" Header="Version" IsReadOnly="True" MinWidth="123"/>
479479
</DataGrid.Columns>
480480

@@ -529,7 +529,10 @@
529529
<Label Foreground="{DynamicResource ButtonForeground}">_Player Logs</Label>
530530
</Button>
531531
<Button Style="{StaticResource CustomButton}" x:Name="btnTemp3" Background="{DynamicResource ButtonBackground}" Foreground="{DynamicResource ButtonForeground}" Margin="5,0,0,0" BorderBrush="{x:Null}" HorizontalAlignment="Left" VerticalAlignment="Top">
532-
<Label Foreground="{DynamicResource ButtonForeground}">_ADB logcat (cmd)</Label>
532+
<Label Foreground="{DynamicResource ButtonForeground}">_ADB logcat</Label>
533+
</Button>
534+
<Button Style="{StaticResource CustomButton}" x:Name="btnTemp4" Background="{DynamicResource ButtonBackground}" Foreground="{DynamicResource ButtonForeground}" Margin="5,0,0,0" BorderBrush="{x:Null}" HorizontalAlignment="Left" VerticalAlignment="Top">
535+
<Label Foreground="{DynamicResource ButtonForeground}">_Bind Wifi</Label>
533536
</Button>
534537
</StackPanel>
535538
</Border>

UnityLauncherPro/MainWindow.xaml.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using System;
22
using System.Drawing; // for notifyicon
3+
using System.Linq;
4+
using System.Threading.Tasks;
35
using System.Windows;
46
using System.Windows.Controls;
57
using System.Windows.Input;
@@ -16,6 +18,7 @@ public partial class MainWindow : Window
1618
private System.Windows.Forms.NotifyIcon notifyIcon;
1719

1820
Project[] projectsSource;
21+
Updates[] updatesSource;
1922

2023
public MainWindow()
2124
{
@@ -50,11 +53,16 @@ void Start()
5053
projectsSource = GetProjects.Scan();
5154
dataGrid.ItemsSource = projectsSource;
5255

56+
// updates grid
57+
dataGridUpdates.Items.Clear();
58+
//dataGridUpdates.ItemsSource = updatesSource;
5359

5460
// build notifyicon (using windows.forms)
5561
notifyIcon = new System.Windows.Forms.NotifyIcon();
5662
notifyIcon.Icon = new Icon(System.Windows.Application.GetResourceStream(new Uri("pack://application:,,,/Images/icon.ico")).Stream);
5763
notifyIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(NotifyIcon_MouseClick);
64+
65+
5866
}
5967

6068
void NotifyIcon_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)
@@ -149,5 +157,21 @@ private void TestButton(object sender, RoutedEventArgs e)
149157
{
150158
MessageBox.Show("Click!");
151159
}
160+
161+
162+
private async void OnGetUnityUpdatesClick(object sender, RoutedEventArgs e)
163+
{
164+
var button = (Button)sender;
165+
button.IsEnabled = false;
166+
var task = GetUnityUpdates.Scan();
167+
var items = await task;
168+
// TODO handle errors?
169+
updatesSource = GetUnityUpdates.Parse(items);
170+
dataGridUpdates.ItemsSource = updatesSource;
171+
button.IsEnabled = true;
172+
}
173+
174+
175+
152176
}
153177
}

UnityLauncherPro/UnityLauncherPro.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
<SubType>Designer</SubType>
7777
</ApplicationDefinition>
7878
<Compile Include="GetProjects.cs" />
79+
<Compile Include="GetUnityUpdates.cs" />
7980
<Compile Include="Tools.cs" />
8081
<Compile Include="UnityInstallations.cs" />
8182
<Compile Include="Updates.cs" />

0 commit comments

Comments
 (0)