Skip to content

Commit 85954b5

Browse files
committed
adding git support, load settings and token, update authorize ui #218
1 parent 6646978 commit 85954b5

5 files changed

Lines changed: 38 additions & 22 deletions

File tree

UnityLauncherPro/Helpers/Github.cs

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -106,29 +106,17 @@ public static async Task<GitHubTokenValidationResult> ValidateTokenAsync(string
106106

107107
public static class GitHubTokenStore
108108
{
109-
private static readonly string FolderPath =
110-
Path.Combine(
111-
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
112-
"YourAppName");
113-
114-
private static readonly string FilePath =
115-
Path.Combine(FolderPath, "github_token.dat");
109+
private static readonly string FolderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), MainWindow.appName);
110+
private static readonly string FilePath = Path.Combine(FolderPath, MainWindow.appName + ".dat");
116111

117112
public static void SaveToken(string token)
118113
{
119-
if (string.IsNullOrWhiteSpace(token))
120-
throw new ArgumentException("Token is empty.", "token");
114+
if (string.IsNullOrWhiteSpace(token)) throw new ArgumentException("Token is empty.", "token");
121115

122-
if (!Directory.Exists(FolderPath))
123-
Directory.CreateDirectory(FolderPath);
116+
if (!Directory.Exists(FolderPath)) Directory.CreateDirectory(FolderPath);
124117

125118
byte[] plainBytes = Encoding.UTF8.GetBytes(token);
126-
127-
byte[] encryptedBytes = ProtectedData.Protect(
128-
plainBytes,
129-
null,
130-
DataProtectionScope.CurrentUser);
131-
119+
byte[] encryptedBytes = ProtectedData.Protect(plainBytes, null, DataProtectionScope.CurrentUser);
132120
File.WriteAllBytes(FilePath, encryptedBytes);
133121
}
134122

UnityLauncherPro/NewProject.xaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@
8686
<Label Name="lblConnected" Content="✔️" Margin="0,0,0,0" VerticalAlignment="Center" Foreground="Lime" Visibility="Collapsed"/>
8787
<Label Content="Connected as:" Foreground="{DynamicResource ThemeButtonForeground}" Margin="0,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Left"/>
8888
<Label x:Name="lblGithubUsername" Content="(not connected)" Foreground="{DynamicResource ThemeButtonForeground}" Margin="5,0,0,0" VerticalAlignment="Center" FontStyle="Italic" MaxWidth="92"/>
89-
<Button x:Name="btnCreateToken" Style="{StaticResource CustomButton}" Content="Get Token 🔗" ToolTip="Open Github to create a token" Height="22" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,4,6,0" TabIndex="10" Grid.Column="1" FontSize="10" Width="66" Click="btnCreateToken_Click" />
89+
<Button x:Name="btnCreateToken" Style="{StaticResource CustomButton}" Content="Get Token 🔗" ToolTip="Open Github to create a token" Height="22" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,4,6,0" Grid.Column="1" FontSize="10" Width="66" Click="btnCreateToken_Click" />
9090
<TextBox x:Name="txtTokenInput" ToolTip="Enter your Github token here" VerticalAlignment="Center" IsUndoEnabled="True" Margin="0,2,0,2" HorizontalAlignment="Left" Width="100" TextChanged="txtTokenInput_TextChanged"/>
91-
<Button x:Name="btnAuthorizeToken" Style="{StaticResource CustomButton}" Content="Authorize" ToolTip="Open Github to create a token" Height="22" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="6,4,0,0" TabIndex="10" IsEnabled="False" Width="60" Click="btnAuthorizeToken_Click" />
92-
<Button x:Name="btnDisconnectToken" Style="{StaticResource CustomButton}" Content="Disconnect" ToolTip="Disconnect from Github" Height="22" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="6,4,0,0" TabIndex="10" IsEnabled="False" Width="60" Visibility="Collapsed" Click="btnDisconnectToken_Click" />
91+
<Button x:Name="btnAuthorizeToken" Style="{StaticResource CustomButton}" Content="Authorize" ToolTip="Open Github to create a token" Height="22" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="6,4,0,0" IsEnabled="False" Width="60" Click="btnAuthorizeToken_Click" />
92+
<Button x:Name="btnDisconnectToken" Style="{StaticResource CustomButton}" Content="Disconnect" ToolTip="Disconnect from Github AND delete saved token" Height="22" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="6,4,0,0" IsEnabled="False" Width="64" Visibility="Collapsed" Click="btnDisconnectToken_Click" />
9393

9494
</StackPanel>
9595
<CheckBox x:Name="chkEnableVersionControl" Content="Enable Version Control" Foreground="{DynamicResource ThemeButtonForeground}" Margin="0,6,0,6" VerticalAlignment="Center" Checked="chkEnableVersionControl_Checked" Unchecked="chkEnableVersionControl_Checked"/>

UnityLauncherPro/NewProject.xaml.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -899,29 +899,37 @@ private void txtTokenInput_TextChanged(object sender, TextChangedEventArgs e)
899899

900900
private void ShowGitAuthorizedUI(bool show)
901901
{
902+
txtTokenInput.Text = null;
903+
902904
if (show)
903905
{
906+
lblGithubUsername.Content = Settings.Default.gitUsername;
904907

905-
txtTokenInput.Text = null; // clear input after successful save
906908
txtTokenInput.Visibility = Visibility.Collapsed;
907909
btnAuthorizeToken.Visibility = Visibility.Collapsed;
908910
btnDisconnectToken.Visibility = Visibility.Visible;
909911
lblConnected.Visibility = Visibility.Visible;
910912
lblNotConnected.Visibility = Visibility.Collapsed;
913+
btnCreateToken.Visibility = Visibility.Collapsed;
914+
915+
btnCreateToken.IsEnabled = false;
916+
btnDisconnectToken.IsEnabled = true;
917+
btnAuthorizeToken.IsEnabled = false;
911918
}
912919
else
913920
{
914-
txtTokenInput.Text = null;
915921
lblGithubUsername.Content = string.Empty;
916922

917923
txtTokenInput.Visibility = Visibility.Visible;
918924
btnAuthorizeToken.Visibility = Visibility.Visible;
919925
btnDisconnectToken.Visibility = Visibility.Collapsed;
920926
lblConnected.Visibility = Visibility.Collapsed;
921927
lblNotConnected.Visibility = Visibility.Visible;
928+
btnCreateToken.Visibility = Visibility.Visible;
922929

923930
btnDisconnectToken.IsEnabled = false;
924931
btnAuthorizeToken.IsEnabled = true;
932+
btnCreateToken.IsEnabled = true;
925933
}
926934
}
927935

@@ -937,6 +945,8 @@ private async void btnAuthorizeToken_Click(object sender, RoutedEventArgs e)
937945
lblConnected.Visibility = Visibility.Collapsed;
938946
lblNotConnected.Visibility = Visibility.Visible;
939947

948+
Settings.Default.gitUsername = null;
949+
940950
try
941951
{
942952
GitHubTokenValidationResult result = await GitHubAuth.ValidateTokenAsync(token);
@@ -945,6 +955,7 @@ private async void btnAuthorizeToken_Click(object sender, RoutedEventArgs e)
945955
{
946956
GitHubTokenStore.SaveToken(token);
947957
txtNewProjectStatus.Text = "Token valid. Logged in as " + result.Login + ".";
958+
Settings.Default.gitUsername = result.Login;
948959
lblGithubUsername.Content = result.Login;
949960
ShowGitAuthorizedUI(true);
950961
}
@@ -958,6 +969,8 @@ private async void btnAuthorizeToken_Click(object sender, RoutedEventArgs e)
958969
{
959970
btnAuthorizeToken.IsEnabled = true;
960971
}
972+
973+
Settings.Default.Save();
961974
}
962975

963976
private void chkEnableLfs_Checked(object sender, RoutedEventArgs e)

UnityLauncherPro/Properties/Settings.Designer.cs

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UnityLauncherPro/Properties/Settings.settings

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,5 +184,8 @@
184184
<Setting Name="showRecoveredScenePopup" Type="System.Boolean" Scope="User">
185185
<Value Profile="(Default)">True</Value>
186186
</Setting>
187+
<Setting Name="gitUsername" Type="System.String" Scope="User">
188+
<Value Profile="(Default)" />
189+
</Setting>
187190
</Settings>
188191
</SettingsFile>

0 commit comments

Comments
 (0)