<?xml version="1.0" encoding="utf-8" ?>
<pages:BaseContentPage 
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="Bit.App.Pages.SetPasswordPage"
    xmlns:pages="clr-namespace:Bit.App.Pages"
    xmlns:controls="clr-namespace:Bit.App.Controls"
    xmlns:u="clr-namespace:Bit.App.Utilities"
    x:DataType="pages:SetPasswordPageViewModel"
    Title="{Binding PageTitle}">
    
    <ContentPage.BindingContext>
        <pages:SetPasswordPageViewModel />
    </ContentPage.BindingContext>

    <ContentPage.Resources>
        <ResourceDictionary>
            <u:InverseBoolConverter x:Key="inverseBool" />
        </ResourceDictionary>
    </ContentPage.Resources>

    <ContentPage.ToolbarItems>
        <ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
        <ToolbarItem Text="{u:I18n Submit}" Clicked="Submit_Clicked" />
    </ContentPage.ToolbarItems>

    <ScrollView>
        <StackLayout Spacing="20">
            <StackLayout StyleClass="box">
                <StackLayout StyleClass="box-row">
                    <Label Text="{u:I18n SetMasterPasswordSummary}"
                       StyleClass="text-md"
                       HorizontalTextAlignment="Start"></Label>
                </StackLayout>
                <Grid IsVisible="{Binding ResetPasswordAutoEnroll}"
                      RowSpacing="0"
                      ColumnSpacing="0">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="*" />
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" />
                    </Grid.ColumnDefinitions>
                    <Frame Padding="10"
                           Margin="0, 12, 0, 0"
                           HasShadow="False"
                           BackgroundColor="Transparent"
                           BorderColor="{DynamicResource PrimaryColor}">
                        <Label
                            Text="{u:I18n ResetPasswordAutoEnrollInviteWarning}"
                            StyleClass="text-muted, text-sm, text-bold"
                            HorizontalTextAlignment="Start" />
                    </Frame>
                </Grid>
                <Grid IsVisible="{Binding IsPolicyInEffect}"
                      RowSpacing="0"
                      ColumnSpacing="0">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="*" />
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" />
                    </Grid.ColumnDefinitions>
                    <Frame Padding="10"
                           Margin="0, 12, 0, 0"
                           HasShadow="False"
                           BackgroundColor="Transparent"
                           BorderColor="{DynamicResource PrimaryColor}">
                        <Label
                            Text="{Binding PolicySummary}"
                            StyleClass="text-muted, text-sm, text-bold"
                            HorizontalTextAlignment="Start" />
                    </Frame>
                </Grid>
                <Grid StyleClass="box-row">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="*" />
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" />
                    </Grid.ColumnDefinitions>
                    <Label
                        Text="{u:I18n MasterPassword}"
                        StyleClass="box-label"
                        Grid.Row="0"
                        Grid.Column="0" />
                    <controls:MonoEntry
                        x:Name="_masterPassword"
                        Text="{Binding MasterPassword}"
                        StyleClass="box-value"
                        IsSpellCheckEnabled="False"
                        IsTextPredictionEnabled="False"
                        IsPassword="{Binding ShowPassword, Converter={StaticResource inverseBool}}"
                        Grid.Row="1"
                        Grid.Column="0" />
                    <controls:IconButton
                        StyleClass="box-row-button, box-row-button-platform"
                        Text="{Binding ShowPasswordIcon}"
                        Command="{Binding TogglePasswordCommand}"
                        Grid.Row="0"
                        Grid.Column="1"
                        Grid.RowSpan="2"
                        AutomationProperties.IsInAccessibleTree="True"
                        AutomationProperties.Name="{u:I18n ToggleVisibility}"
                        AutomationProperties.HelpText="{Binding PasswordVisibilityAccessibilityText}" />
                </Grid>
                <Label
                    Text="{u:I18n MasterPasswordDescription}"
                    StyleClass="box-footer-label" />
            </StackLayout>
            <StackLayout StyleClass="box">
                <Grid StyleClass="box-row">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="*" />
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" />
                    </Grid.ColumnDefinitions>
                    <Label
                        Text="{u:I18n RetypeMasterPassword}"
                        StyleClass="box-label"
                        Grid.Row="0"
                        Grid.Column="0" />
                    <controls:MonoEntry
                        x:Name="_confirmMasterPassword"
                        Text="{Binding ConfirmMasterPassword}"
                        StyleClass="box-value"
                        IsSpellCheckEnabled="False"
                        IsTextPredictionEnabled="False"
                        IsPassword="{Binding ShowPassword, Converter={StaticResource inverseBool}}"
                        Grid.Row="1"
                        Grid.Column="0" />
                    <controls:IconButton
                        StyleClass="box-row-button, box-row-button-platform"
                        Text="{Binding ShowPasswordIcon}"
                        Command="{Binding ToggleConfirmPasswordCommand}"
                        Grid.Row="0"
                        Grid.Column="1"
                        Grid.RowSpan="2"
                        AutomationProperties.IsInAccessibleTree="True"
                        AutomationProperties.Name="{u:I18n ToggleVisibility}"
                        AutomationProperties.HelpText="{Binding PasswordVisibilityAccessibilityText}" />
                </Grid>
                <StackLayout StyleClass="box-row">
                    <Label
                        Text="{u:I18n MasterPasswordHint}"
                        StyleClass="box-label" />
                    <Entry
                        x:Name="_hint"
                        Text="{Binding Hint}"
                        StyleClass="box-value"
                        ReturnType="Go"
                        ReturnCommand="{Binding SubmitCommand}" />
                </StackLayout>
                <Label
                    Text="{u:I18n MasterPasswordHintDescription}"
                    StyleClass="box-footer-label" />
            </StackLayout>
        </StackLayout>
    </ScrollView>

</pages:BaseContentPage>
