SSL Handshake Prompt for IMAP (#381)

* Fix an incorrect namespace for copy auth url request.

* Implemented SSL handshake process for testing imap configuration.

* Implemented SSL handshake process for testing imap configuration.

* Replace certificate PathIcon with WinoFontIcon in XAML.
This commit is contained in:
Burak Kaan Köse
2024-09-14 21:51:43 +02:00
committed by GitHub
parent cad9250cb7
commit 56bfbeca58
24 changed files with 473 additions and 113 deletions

View File

@@ -2,13 +2,13 @@
x:Class="Wino.Views.ImapSetup.AdvancedImapSetupPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:domain="using:Wino.Core.Domain"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:RequestedTheme="Dark"
xmlns:domain="using:Wino.Core.Domain"
xmlns:helpers="using:Wino.Helpers"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
d:Background="Black"
d:RequestedTheme="Dark"
mc:Ignorable="d">
<Grid RowSpacing="4">
@@ -18,31 +18,31 @@
</Grid.RowDefinitions>
<ScrollViewer x:Name="MainScrollviewer" Padding="{StaticResource ImapSetupDialogSubPagePadding}">
<StackPanel Spacing="12" Padding="0,0,16,0">
<StackPanel Padding="0,0,16,0" Spacing="12">
<TextBlock
d:Text="Advanced IMAP / SMTP Configuration"
Text="{x:Bind domain:Translator.IMAPSetupDialog_Title}"
Margin="1,0,0,0"
Style="{StaticResource TitleTextBlockStyle}" />
d:Text="Advanced IMAP / SMTP Configuration"
Style="{StaticResource TitleTextBlockStyle}"
Text="{x:Bind domain:Translator.IMAPSetupDialog_Title}" />
<TextBox
x:Name="AddressBox"
d:Header="Mail"
Header="{x:Bind domain:Translator.IMAPSetupDialog_MailAddress}"
PlaceholderText="{x:Bind domain:Translator.IMAPSetupDialog_MailAddressPlaceholder}"
x:Name="AddressBox" />
PlaceholderText="{x:Bind domain:Translator.IMAPSetupDialog_MailAddressPlaceholder}" />
<TextBox
x:Name="DisplayNameBox"
d:Header="Display Name"
Header="{x:Bind domain:Translator.IMAPSetupDialog_DisplayName}"
PlaceholderText="{x:Bind domain:Translator.IMAPSetupDialog_DisplayNamePlaceholder}"
x:Name="DisplayNameBox" />
PlaceholderText="{x:Bind domain:Translator.IMAPSetupDialog_DisplayNamePlaceholder}" />
<CheckBox Content="{x:Bind domain:Translator.IMAPSetupDialog_UseSameConfig}" IsChecked="{x:Bind UseSameCredentialsForSending, Mode=TwoWay}" />
<muxc:TabView
d:SelectedIndex="0"
IsAddTabButtonVisible="False"
CanReorderTabs="False"
IsAddTabButtonVisible="False"
TabWidthMode="Equal">
<muxc:TabViewItem Header="IMAP Settings" IsClosable="False">
<!-- IMAP -->
@@ -55,34 +55,34 @@
</Grid.ColumnDefinitions>
<TextBox
x:Name="IncomingServerBox"
d:Header="Incoming Server"
TextChanged="IncomingServerChanged"
PlaceholderText="eg. imap.gmail.com"
Header="{x:Bind domain:Translator.IMAPSetupDialog_IncomingMailServer}"
x:Name="IncomingServerBox" />
PlaceholderText="eg. imap.gmail.com"
TextChanged="IncomingServerChanged" />
<TextBox
d:Header="Port"
Text="993"
Header="{x:Bind domain:Translator.IMAPSetupDialog_IncomingMailServerPort}"
x:Name="IncomingServerPortBox"
Grid.Column="1" />
Grid.Column="1"
d:Header="Port"
Header="{x:Bind domain:Translator.IMAPSetupDialog_IncomingMailServerPort}"
/>
</Grid>
<!-- Username + Password -->
<StackPanel Spacing="6">
<TextBox
x:Name="UsernameBox"
d:Header="Username"
TextChanged="IncomingUsernameChanged"
Header="{x:Bind domain:Translator.IMAPSetupDialog_Username}"
PlaceholderText="{x:Bind domain:Translator.IMAPSetupDialog_UsernamePlaceholder}"
x:Name="UsernameBox" />
TextChanged="IncomingUsernameChanged" />
<PasswordBox
PasswordChanged="IncomingPasswordChanged"
x:Name="PasswordBox"
d:Header="Password"
Header="{x:Bind domain:Translator.IMAPSetupDialog_Password}"
x:Name="PasswordBox" />
PasswordChanged="IncomingPasswordChanged" />
</StackPanel>
<!-- Security and Authentication -->
@@ -94,35 +94,35 @@
<!-- Security -->
<StackPanel Spacing="6">
<TextBlock
HorizontalAlignment="Center"
d:Text="Connection security"
Text="{x:Bind domain:Translator.ImapAdvancedSetupDialog_ConnectionSecurity}"
HorizontalAlignment="Center" />
Text="{x:Bind domain:Translator.ImapAdvancedSetupDialog_ConnectionSecurity}" />
<ComboBox
x:Name="IncomingConnectionSecurity"
SelectedIndex="0"
HorizontalAlignment="Stretch"
DisplayMemberPath="DisplayName"
ItemsSource="{x:Bind AvailableConnectionSecurities}"
DisplayMemberPath="DisplayName" />
SelectedIndex="0" />
</StackPanel>
<!-- Authentication -->
<StackPanel Grid.Column="1" Spacing="6">
<TextBlock
HorizontalAlignment="Center"
d:Text="Authentication method"
Text="{x:Bind domain:Translator.ImapAdvancedSetupDialog_AuthenticationMethod}"
HorizontalAlignment="Center" />
Text="{x:Bind domain:Translator.ImapAdvancedSetupDialog_AuthenticationMethod}" />
<ComboBox
x:Name="IncomingAuthenticationMethod"
SelectedIndex="0"
HorizontalAlignment="Stretch"
DisplayMemberPath="DisplayName"
ItemsSource="{x:Bind AvailableAuthenticationMethods}"
DisplayMemberPath="DisplayName" />
SelectedIndex="0" />
</StackPanel>
</Grid>
</StackPanel>
</muxc:TabViewItem>
<muxc:TabViewItem IsClosable="False" Header="SMTP Settings">
<muxc:TabViewItem Header="SMTP Settings" IsClosable="False">
<!-- SMTP -->
<StackPanel Padding="12" Spacing="10">
<!-- Server + Port -->
@@ -133,18 +133,18 @@
</Grid.ColumnDefinitions>
<TextBox
x:Name="OutgoingServerBox"
d:Header="Outgoing Server"
TextChanged="OutgoingServerChanged"
PlaceholderText="eg. smtp.gmail.com"
Header="{x:Bind domain:Translator.IMAPSetupDialog_OutgoingMailServer}"
x:Name="OutgoingServerBox" />
PlaceholderText="eg. smtp.gmail.com"
TextChanged="OutgoingServerChanged" />
<TextBox
x:Name="OutgoingServerPort"
Grid.Column="1"
d:Header="Port"
Header="{x:Bind domain:Translator.IMAPSetupDialog_OutgoingMailServerPort}"
x:Name="OutgoingServerPort"
Text="587"
Grid.Column="1" />
/>
</Grid>
<!-- Username + Password -->
@@ -152,13 +152,13 @@
<TextBox
x:Name="OutgoingUsernameBox"
d:Header="UserName"
IsEnabled="{x:Bind helpers:XamlHelpers.ReverseBoolConverter(UseSameCredentialsForSending), Mode=OneWay}"
Header="{x:Bind domain:Translator.IMAPSetupDialog_OutgoingMailServerUsername}" />
Header="{x:Bind domain:Translator.IMAPSetupDialog_OutgoingMailServerUsername}"
IsEnabled="{x:Bind helpers:XamlHelpers.ReverseBoolConverter(UseSameCredentialsForSending), Mode=OneWay}" />
<PasswordBox
x:Name="OutgoingPasswordBox"
IsEnabled="{x:Bind helpers:XamlHelpers.ReverseBoolConverter(UseSameCredentialsForSending), Mode=OneWay}"
d:Header="Password"
Header="{x:Bind domain:Translator.IMAPSetupDialog_OutgoingMailServerPassword}" />
Header="{x:Bind domain:Translator.IMAPSetupDialog_OutgoingMailServerPassword}"
IsEnabled="{x:Bind helpers:XamlHelpers.ReverseBoolConverter(UseSameCredentialsForSending), Mode=OneWay}" />
</StackPanel>
<!-- Security and Authentication -->
@@ -169,42 +169,42 @@
</Grid.ColumnDefinitions>
<!-- Security -->
<StackPanel Spacing="6">
<TextBlock Text="{x:Bind domain:Translator.ImapAdvancedSetupDialog_ConnectionSecurity}" HorizontalAlignment="Center" />
<TextBlock HorizontalAlignment="Center" Text="{x:Bind domain:Translator.ImapAdvancedSetupDialog_ConnectionSecurity}" />
<ComboBox
x:Name="OutgoingConnectionSecurity"
SelectedIndex="0"
HorizontalAlignment="Stretch"
DisplayMemberPath="DisplayName"
ItemsSource="{x:Bind AvailableConnectionSecurities}"
DisplayMemberPath="DisplayName" />
SelectedIndex="0" />
</StackPanel>
<!-- Authentication -->
<StackPanel Grid.Column="1" Spacing="6">
<TextBlock Text="{x:Bind domain:Translator.ImapAdvancedSetupDialog_AuthenticationMethod}" HorizontalAlignment="Center" />
<TextBlock HorizontalAlignment="Center" Text="{x:Bind domain:Translator.ImapAdvancedSetupDialog_AuthenticationMethod}" />
<ComboBox
x:Name="OutgoingAuthenticationMethod"
SelectedIndex="0"
HorizontalAlignment="Stretch"
DisplayMemberPath="DisplayName"
ItemsSource="{x:Bind AvailableAuthenticationMethods}"
DisplayMemberPath="DisplayName" />
SelectedIndex="0" />
</StackPanel>
</Grid>
</StackPanel>
</muxc:TabViewItem>
<muxc:TabViewItem IsClosable="False" Header="Proxy">
<muxc:TabViewItem Header="Proxy" IsClosable="False">
<!-- Proxy -->
<StackPanel Spacing="10" Padding="12">
<StackPanel Padding="12" Spacing="10">
<TextBlock Text="Define your optional proxy server for the connection if your mail server requires it. This is optional." />
<Grid ColumnSpacing="12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox Header="Proxy server" x:Name="ProxyServerBox" />
<TextBox x:Name="ProxyServerBox" Header="Proxy server" />
<muxc:NumberBox
Header="Port"
x:Name="ProxyServerPortBox"
Grid.Column="1"
x:Name="ProxyServerPortBox" />
Header="Port" />
</Grid>
</StackPanel>
</muxc:TabViewItem>
@@ -214,10 +214,10 @@
<!-- Buttons -->
<Grid
Padding="{StaticResource ImapSetupDialogSubPagePadding}"
Background="{ThemeResource ContentDialogBackground}"
Grid.Row="1"
Padding="{StaticResource ImapSetupDialogSubPagePadding}"
VerticalAlignment="Bottom"
Background="{ThemeResource ContentDialogBackground}"
ColumnSpacing="6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@@ -225,18 +225,18 @@
</Grid.ColumnDefinitions>
<Button
d:Content="Cancel"
Content="{x:Bind domain:Translator.Buttons_Cancel}"
HorizontalAlignment="Stretch"
Click="CancelClicked" />
d:Content="Cancel"
Click="CancelClicked"
Content="{x:Bind domain:Translator.Buttons_Cancel}" />
<Button
d:Content="Sign In"
Content="{x:Bind domain:Translator.Buttons_SignIn}"
Click="SignInClicked"
Style="{ThemeResource AccentButtonStyle}"
Grid.Column="1"
HorizontalAlignment="Stretch" />
HorizontalAlignment="Stretch"
d:Content="Sign In"
Click="SignInClicked"
Content="{x:Bind domain:Translator.Buttons_SignIn}"
Style="{ThemeResource AccentButtonStyle}" />
</Grid>
</Grid>
</Page>