mirror of
https://github.com/bitwarden/mobile
synced 2026-01-20 09:23:50 +00:00
[PM-2658] Settings Reorganization feature (#2702)
* [PM-2658] Settings Reorganization Init (#2697) * PM-2658 Started settings reorganization (settings main + vault + about) * PM-2658 Added settings controls based on templates and implemented OtherSettingsPage * PM-2658 Fix format * [PM-3512] Settings Appearance (#2703) * PM-3512 Implemented new Appearance Settings * PM-3512 Fix format * [PM-3510] Implement Account Security Settings view (#2714) * PM-3510 Implemented Security settings view * PM-3510 Fix format * PM-3510 Added empty placeholder to pending login requests and also improved a11y on security settings view. * PM-3511 Implemented autofill settings view (#2735) * [PM-3695] Add Connect to Watch to Other settings (#2736) * PM-3511 Implemented autofill settings view * PM-3695 Add Connect to watch setting to other settings view * [PM-3693] Clear old Settings approach (#2737) * PM-3511 Implemented autofill settings view * PM-3693 Remove old Settings approach * PM-3845 Fix default dark theme description verbiage (#2759) * PM-3839 Fix allow screen capture and submit crash logs to init their state when the page appears (#2760) * PM-3834 Fix dialogs strings on settings (#2758) * [PM-3834] Fix import items link (#2782) * PM-3834 Fix import items link * PM-3834 Fix import items link, removed old link. * [PM-4092] Fix vault timeout policies on new Settings (#2796) * PM-4092 Fix vault timeout policy on settings for disabling controls and reset timeout when surpassing maximum * PM-4092 Removed testing hardcoding of policy data
This commit is contained in:
committed by
GitHub
parent
218a30b510
commit
e97a37222a
29
src/App/Controls/ExternalLinkItemView.xaml
Normal file
29
src/App/Controls/ExternalLinkItemView.xaml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<ContentView
|
||||
xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:controls="clr-namespace:Bit.App.Controls"
|
||||
x:Class="Bit.App.Controls.ExternalLinkItemView"
|
||||
xmlns:core="clr-namespace:Bit.Core;assembly=BitwardenCore"
|
||||
x:Name="_contentView">
|
||||
<ContentView.GestureRecognizers>
|
||||
<TapGestureRecognizer Command="{Binding GoToLinkCommand, Mode=OneWay, Source={x:Reference _contentView}}" />
|
||||
</ContentView.GestureRecognizers>
|
||||
<StackLayout
|
||||
Orientation="Horizontal">
|
||||
<controls:CustomLabel
|
||||
Text="{Binding Title, Mode=OneWay, Source={x:Reference _contentView}}"
|
||||
HorizontalOptions="StartAndExpand"
|
||||
LineBreakMode="TailTruncation" />
|
||||
|
||||
<controls:IconLabel
|
||||
Text="{Binding Source={x:Static core:BitwardenIcons.ShareSquare}}"
|
||||
TextColor="{DynamicResource TextColor}"
|
||||
HorizontalOptions="End"
|
||||
VerticalOptions="Center"
|
||||
AutomationProperties.IsInAccessibleTree="True"
|
||||
AutomationProperties.Name="{Binding Title, Mode=OneWay, Source={x:Reference _contentView}}" />
|
||||
|
||||
</StackLayout>
|
||||
</ContentView>
|
||||
|
||||
31
src/App/Controls/ExternalLinkItemView.xaml.cs
Normal file
31
src/App/Controls/ExternalLinkItemView.xaml.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System.Windows.Input;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Bit.App.Controls
|
||||
{
|
||||
public partial class ExternalLinkItemView : ContentView
|
||||
{
|
||||
public static readonly BindableProperty TitleProperty = BindableProperty.Create(
|
||||
nameof(Title), typeof(string), typeof(ExternalLinkItemView), null, BindingMode.OneWay);
|
||||
|
||||
public static readonly BindableProperty GoToLinkCommandProperty = BindableProperty.Create(
|
||||
nameof(GoToLinkCommand), typeof(ICommand), typeof(ExternalLinkItemView));
|
||||
|
||||
public ExternalLinkItemView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public string Title
|
||||
{
|
||||
get { return (string)GetValue(TitleProperty); }
|
||||
set { SetValue(TitleProperty, value); }
|
||||
}
|
||||
|
||||
public ICommand GoToLinkCommand
|
||||
{
|
||||
get => GetValue(GoToLinkCommandProperty) as ICommand;
|
||||
set => SetValue(GoToLinkCommandProperty, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
25
src/App/Controls/Settings/BaseSettingControlView.cs
Normal file
25
src/App/Controls/Settings/BaseSettingControlView.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Bit.App.Controls
|
||||
{
|
||||
public class BaseSettingItemView : ContentView
|
||||
{
|
||||
public static readonly BindableProperty TitleProperty = BindableProperty.Create(
|
||||
nameof(Title), typeof(string), typeof(SwitchItemView), null, BindingMode.OneWay);
|
||||
|
||||
public static readonly BindableProperty SubtitleProperty = BindableProperty.Create(
|
||||
nameof(Subtitle), typeof(string), typeof(SwitchItemView), null, BindingMode.OneWay);
|
||||
|
||||
public string Title
|
||||
{
|
||||
get { return (string)GetValue(TitleProperty); }
|
||||
set { SetValue(TitleProperty, value); }
|
||||
}
|
||||
|
||||
public string Subtitle
|
||||
{
|
||||
get { return (string)GetValue(SubtitleProperty); }
|
||||
set { SetValue(SubtitleProperty, value); }
|
||||
}
|
||||
}
|
||||
}
|
||||
19
src/App/Controls/Settings/SettingChooserItemView.xaml
Normal file
19
src/App/Controls/Settings/SettingChooserItemView.xaml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<controls:BaseSettingItemView
|
||||
xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:controls="clr-namespace:Bit.App.Controls"
|
||||
x:Class="Bit.App.Controls.SettingChooserItemView"
|
||||
x:Name="_contentView"
|
||||
ControlTemplate="{StaticResource SettingControlTemplate}">
|
||||
<controls:BaseSettingItemView.GestureRecognizers>
|
||||
<TapGestureRecognizer Command="{Binding ChooseCommand, Mode=OneWay, Source={x:Reference _contentView}}" />
|
||||
</controls:BaseSettingItemView.GestureRecognizers>
|
||||
|
||||
<controls:CustomLabel
|
||||
Text="{Binding DisplayValue, Source={x:Reference _contentView}}"
|
||||
HorizontalTextAlignment="End"
|
||||
TextColor="{DynamicResource MutedColor}"
|
||||
StyleClass="list-sub" />
|
||||
|
||||
</controls:BaseSettingItemView>
|
||||
31
src/App/Controls/Settings/SettingChooserItemView.xaml.cs
Normal file
31
src/App/Controls/Settings/SettingChooserItemView.xaml.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System.Windows.Input;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Bit.App.Controls
|
||||
{
|
||||
public partial class SettingChooserItemView : BaseSettingItemView
|
||||
{
|
||||
public static readonly BindableProperty DisplayValueProperty = BindableProperty.Create(
|
||||
nameof(DisplayValue), typeof(string), typeof(SettingChooserItemView), null, BindingMode.OneWay);
|
||||
|
||||
public static readonly BindableProperty ChooseCommandProperty = BindableProperty.Create(
|
||||
nameof(ChooseCommand), typeof(ICommand), typeof(ExternalLinkItemView));
|
||||
|
||||
public string DisplayValue
|
||||
{
|
||||
get { return (string)GetValue(DisplayValueProperty); }
|
||||
set { SetValue(DisplayValueProperty, value); }
|
||||
}
|
||||
|
||||
public SettingChooserItemView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public ICommand ChooseCommand
|
||||
{
|
||||
get => GetValue(ChooseCommandProperty) as ICommand;
|
||||
set => SetValue(ChooseCommandProperty, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
19
src/App/Controls/Settings/SwitchItemView.xaml
Normal file
19
src/App/Controls/Settings/SwitchItemView.xaml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<controls:BaseSettingItemView
|
||||
xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:controls="clr-namespace:Bit.App.Controls"
|
||||
x:Class="Bit.App.Controls.SwitchItemView"
|
||||
x:Name="_contentView"
|
||||
ControlTemplate="{StaticResource SettingControlTemplate}">
|
||||
<controls:BaseSettingItemView.GestureRecognizers>
|
||||
<TapGestureRecognizer Tapped="ContentView_Tapped" />
|
||||
</controls:BaseSettingItemView.GestureRecognizers>
|
||||
|
||||
<Switch
|
||||
x:Name="_switch"
|
||||
HeightRequest="20"
|
||||
Scale="{OnPlatform iOS=0.8, Android=1}"
|
||||
IsToggled="{Binding IsToggled, Mode=TwoWay, Source={x:Reference _contentView}}"
|
||||
AutomationId="{Binding SwitchAutomationId, Mode=OneWay, Source={x:Reference _contentView}}"/>
|
||||
</controls:BaseSettingItemView>
|
||||
45
src/App/Controls/Settings/SwitchItemView.xaml.cs
Normal file
45
src/App/Controls/Settings/SwitchItemView.xaml.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System.Windows.Input;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Bit.App.Controls
|
||||
{
|
||||
public partial class SwitchItemView : BaseSettingItemView
|
||||
{
|
||||
public static readonly BindableProperty IsToggledProperty = BindableProperty.Create(
|
||||
nameof(IsToggled), typeof(bool), typeof(SwitchItemView), null, BindingMode.TwoWay);
|
||||
|
||||
public static readonly BindableProperty SwitchAutomationIdProperty = BindableProperty.Create(
|
||||
nameof(SwitchAutomationId), typeof(string), typeof(SwitchItemView), null, BindingMode.OneWay);
|
||||
|
||||
public static readonly BindableProperty ToggleSwitchCommandProperty = BindableProperty.Create(
|
||||
nameof(ToggleSwitchCommand), typeof(ICommand), typeof(ExternalLinkItemView));
|
||||
|
||||
public SwitchItemView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public bool IsToggled
|
||||
{
|
||||
get { return (bool)GetValue(IsToggledProperty); }
|
||||
set { SetValue(IsToggledProperty, value); }
|
||||
}
|
||||
|
||||
public string SwitchAutomationId
|
||||
{
|
||||
get { return (string)GetValue(SwitchAutomationIdProperty); }
|
||||
set { SetValue(SwitchAutomationIdProperty, value); }
|
||||
}
|
||||
|
||||
public ICommand ToggleSwitchCommand
|
||||
{
|
||||
get => GetValue(ToggleSwitchCommandProperty) as ICommand;
|
||||
set => SetValue(ToggleSwitchCommandProperty, value);
|
||||
}
|
||||
|
||||
void ContentView_Tapped(System.Object sender, System.EventArgs e)
|
||||
{
|
||||
_switch.IsToggled = !_switch.IsToggled;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user