mirror of
https://github.com/bitwarden/mobile.git
synced 2024-06-23 10:04:49 +02:00
* Account Switching (#1720) * Account switching * WIP * wip * wip * updates to send test logic * fixed Send tests * fixes for theme handling on account switching and re-adding existing account * switch fixes * fixes * fixes * cleanup * vault timeout fixes * account list status enhancements * logout fixes and token handling improvements * merge latest (#1727) * remove duplicate dependency * fix for initial login token storage paradox (#1730) * Fix avatar color update toolbar item issue on iOS for account switching (#1735) * Updated account switching menu UI (#1733) * updated account switching menu UI * additional changes * add key suffix to constant * GetFirstLetters method tweaks * Fix crash on account switching when logging out when having more than user at a time (#1740) * single account migration to multi-account on app update (#1741) * Account Switching Tap to dismiss (#1743) * Added tap to dismiss on the Account switching overlay and improved a bit the code * Fix account switching overlay background transparent on the proper place * Fixed transparent background and the shadow on the account switching overlay * Fix iOS top space on Account switching list overlay after modal (#1746) * Fix top space added to Account switching list overlay after closing modal * Fix top space added to Account switching list overlay after closing modal on lock, login and home views just in case we add modals in the future there as well * Usability: dismiss account list on certain events (#1748) * dismiss account list on certain events * use new FireAndForget method for back button logic * Create and use Account Switching overlay control (#1753) * Added Account switching overlay control and its own ViewModel and refactored accordingly * Fix account switching Accounts list binding update * Implemented dismiss account switching overlay when changing tabs and when selecting the same tab. Also updated the deprecated listener on CustomTabbedRenderer on Android (#1755) * Overriden Equals on AvatarImageSource so it doesn't get set multiple times when it's the same image thus producing blinking on tab chaged (#1756) * Usability improvements for logout on vault timeout (#1781) * accountswitching fixes (#1784) * Fix for invalid PIN lock state when switching accounts (#1792) * fix for pin lock flow * named tuple values and updated async * clear send service cache on account switch (#1796) * Global theme and account removal (#1793) * Global theme and account removal * remove redundant call to hide account list overlay * cleanup and additional tweaks * add try/catch to remove account dialog flow Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
137 lines
6.4 KiB
XML
137 lines
6.4 KiB
XML
<?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.LoginPage"
|
|
xmlns:pages="clr-namespace:Bit.App.Pages"
|
|
xmlns:controls="clr-namespace:Bit.App.Controls"
|
|
xmlns:u="clr-namespace:Bit.App.Utilities"
|
|
x:DataType="pages:LoginPageViewModel"
|
|
Title="{Binding PageTitle}">
|
|
|
|
<ContentPage.BindingContext>
|
|
<pages:LoginPageViewModel />
|
|
</ContentPage.BindingContext>
|
|
|
|
<ContentPage.ToolbarItems>
|
|
<controls:ExtendedToolbarItem
|
|
x:Name="_accountAvatar"
|
|
x:Key="accountAvatar"
|
|
IconImageSource="{Binding AvatarImageSource}"
|
|
Command="{Binding Source={x:Reference _accountListOverlay}, Path=ToggleVisibililtyCommand}"
|
|
Order="Primary"
|
|
Priority="-1"
|
|
UseOriginalImage="True"
|
|
AutomationProperties.IsInAccessibleTree="True"
|
|
AutomationProperties.Name="{u:I18n Account}" />
|
|
</ContentPage.ToolbarItems>
|
|
|
|
<ContentPage.Resources>
|
|
<ResourceDictionary>
|
|
<u:InverseBoolConverter x:Key="inverseBool" />
|
|
<ToolbarItem Icon="more_vert.png" Clicked="More_Clicked" Order="Primary"
|
|
x:Name="_moreItem" x:Key="moreItem"
|
|
AutomationProperties.IsInAccessibleTree="True"
|
|
AutomationProperties.Name="{u:I18n Options}" />
|
|
<ToolbarItem Text="{u:I18n GetPasswordHint}"
|
|
x:Key="getPasswordHint"
|
|
x:Name="_getPasswordHint"
|
|
Clicked="Hint_Clicked"
|
|
Order="Secondary" />
|
|
<ToolbarItem Text="{u:I18n RemoveAccount}"
|
|
x:Key="removeAccount"
|
|
x:Name="_removeAccount"
|
|
Clicked="RemoveAccount_Clicked"
|
|
Order="Secondary" />
|
|
|
|
<ScrollView x:Name="_mainLayout" x:Key="mainLayout">
|
|
<StackLayout Spacing="20">
|
|
<StackLayout StyleClass="box">
|
|
<StackLayout StyleClass="box-row">
|
|
<Label
|
|
Text="{u:I18n EmailAddress}"
|
|
StyleClass="box-label" />
|
|
<Entry
|
|
x:Name="_email"
|
|
Text="{Binding Email}"
|
|
Keyboard="Email"
|
|
StyleClass="box-value">
|
|
<VisualStateManager.VisualStateGroups>
|
|
<VisualStateGroup x:Name="CommonStates">
|
|
<VisualState x:Name="Disabled">
|
|
<VisualState.Setters>
|
|
<Setter Property="TextColor" Value="{DynamicResource MutedColor}" />
|
|
</VisualState.Setters>
|
|
</VisualState>
|
|
</VisualStateGroup>
|
|
</VisualStateManager.VisualStateGroups>
|
|
</Entry>
|
|
</StackLayout>
|
|
<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"
|
|
ReturnType="Go"
|
|
ReturnCommand="{Binding LogInCommand}" />
|
|
<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}" />
|
|
</Grid>
|
|
</StackLayout>
|
|
<StackLayout Padding="10, 0">
|
|
<Button Text="{u:I18n LogIn}"
|
|
StyleClass="btn-primary"
|
|
Clicked="LogIn_Clicked" />
|
|
<Button Text="{u:I18n Cancel}"
|
|
IsVisible="{Binding ShowCancelButton}"
|
|
Clicked="Cancel_Clicked" />
|
|
</StackLayout>
|
|
</StackLayout>
|
|
</ScrollView>
|
|
</ResourceDictionary>
|
|
</ContentPage.Resources>
|
|
|
|
<AbsoluteLayout
|
|
x:Name="_absLayout"
|
|
VerticalOptions="FillAndExpand"
|
|
HorizontalOptions="FillAndExpand">
|
|
<ContentView
|
|
x:Name="_mainContent"
|
|
AbsoluteLayout.LayoutFlags="All"
|
|
AbsoluteLayout.LayoutBounds="0, 0, 1, 1">
|
|
</ContentView>
|
|
|
|
<controls:AccountSwitchingOverlayView
|
|
x:Name="_accountListOverlay"
|
|
AbsoluteLayout.LayoutBounds="0, 0, 1, 1"
|
|
AbsoluteLayout.LayoutFlags="All"
|
|
BindingContext="{Binding AccountSwitchingOverlayViewModel}"/>
|
|
</AbsoluteLayout>
|
|
|
|
</pages:BaseContentPage>
|