mirror of
https://github.com/bitwarden/mobile
synced 2026-01-08 11:33:31 +00:00
move favorites to top of grouping page
This commit is contained in:
@@ -28,7 +28,8 @@ namespace Bit.App.Controls
|
||||
FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label)),
|
||||
HorizontalOptions = LayoutOptions.StartAndExpand
|
||||
};
|
||||
Label.SetBinding(Label.TextProperty, nameof(VaultListPageModel.Grouping.Name));
|
||||
Label.SetBinding(Label.TextProperty, string.Format("{0}.{1}",
|
||||
nameof(VaultListPageModel.GroupingOrCipher.Grouping), nameof(VaultListPageModel.Grouping.Name)));
|
||||
|
||||
CountLabel = new Label
|
||||
{
|
||||
@@ -37,7 +38,8 @@ namespace Bit.App.Controls
|
||||
Style = (Style)Application.Current.Resources["text-muted"],
|
||||
HorizontalOptions = LayoutOptions.End
|
||||
};
|
||||
CountLabel.SetBinding(Label.TextProperty, nameof(VaultListPageModel.Grouping.Count));
|
||||
CountLabel.SetBinding(Label.TextProperty, string.Format("{0}.{1}",
|
||||
nameof(VaultListPageModel.GroupingOrCipher.Grouping), nameof(VaultListPageModel.Grouping.Count)));
|
||||
|
||||
var stackLayout = new StackLayout
|
||||
{
|
||||
@@ -68,9 +70,10 @@ namespace Bit.App.Controls
|
||||
|
||||
protected override void OnBindingContextChanged()
|
||||
{
|
||||
if(BindingContext is VaultListPageModel.Grouping grouping)
|
||||
if(BindingContext is VaultListPageModel.GroupingOrCipher model)
|
||||
{
|
||||
Icon.Source = grouping.Folder ? $"folder{(grouping.Id == null ? "_o" : string.Empty)}.png" : "cube.png";
|
||||
Icon.Source = model.Grouping.Folder ?
|
||||
$"folder{(model.Grouping.Id == null ? "_o" : string.Empty)}.png" : "cube.png";
|
||||
}
|
||||
|
||||
base.OnBindingContextChanged();
|
||||
|
||||
@@ -8,17 +8,33 @@ namespace Bit.App.Controls
|
||||
{
|
||||
public static readonly BindableProperty CipherParameterProperty = BindableProperty.Create(nameof(CipherParameter),
|
||||
typeof(VaultListPageModel.Cipher), typeof(VaultListViewCell), null);
|
||||
public static readonly BindableProperty GroupingOrCipherParameterProperty =
|
||||
BindableProperty.Create(nameof(GroupingOrCipherParameter), typeof(VaultListPageModel.GroupingOrCipher),
|
||||
typeof(VaultListViewCell), null);
|
||||
|
||||
public VaultListViewCell(Action<VaultListPageModel.Cipher> moreClickedAction)
|
||||
public VaultListViewCell(Action<VaultListPageModel.Cipher> moreClickedAction, bool groupingOrCipherBinding = false)
|
||||
{
|
||||
SetBinding(CipherParameterProperty, new Binding("."));
|
||||
Label.SetBinding(Label.TextProperty, nameof(VaultListPageModel.Cipher.Name));
|
||||
Detail.SetBinding(Label.TextProperty, nameof(VaultListPageModel.Cipher.Subtitle));
|
||||
LabelIcon.SetBinding(VisualElement.IsVisibleProperty, nameof(VaultListPageModel.Cipher.Shared));
|
||||
LabelIcon2.SetBinding(VisualElement.IsVisibleProperty, nameof(VaultListPageModel.Cipher.HasAttachments));
|
||||
string bindingPrefix = null;
|
||||
if(groupingOrCipherBinding)
|
||||
{
|
||||
SetBinding(GroupingOrCipherParameterProperty, new Binding("."));
|
||||
bindingPrefix = string.Concat(nameof(VaultListPageModel.GroupingOrCipher.Cipher), ".");
|
||||
Button.Command = new Command(() => moreClickedAction?.Invoke(GroupingOrCipherParameter?.Cipher));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetBinding(CipherParameterProperty, new Binding("."));
|
||||
Button.Command = new Command(() => moreClickedAction?.Invoke(CipherParameter));
|
||||
}
|
||||
|
||||
Label.SetBinding(Label.TextProperty, bindingPrefix + nameof(VaultListPageModel.Cipher.Name));
|
||||
Detail.SetBinding(Label.TextProperty, bindingPrefix + nameof(VaultListPageModel.Cipher.Subtitle));
|
||||
LabelIcon.SetBinding(VisualElement.IsVisibleProperty,
|
||||
bindingPrefix + nameof(VaultListPageModel.Cipher.Shared));
|
||||
LabelIcon2.SetBinding(VisualElement.IsVisibleProperty,
|
||||
bindingPrefix + nameof(VaultListPageModel.Cipher.HasAttachments));
|
||||
|
||||
Button.Image = "more.png";
|
||||
Button.Command = new Command(() => moreClickedAction?.Invoke(CipherParameter));
|
||||
Button.BackgroundColor = Color.Transparent;
|
||||
|
||||
LabelIcon.Source = "share.png";
|
||||
@@ -33,16 +49,33 @@ namespace Bit.App.Controls
|
||||
set { SetValue(CipherParameterProperty, value); }
|
||||
}
|
||||
|
||||
public VaultListPageModel.GroupingOrCipher GroupingOrCipherParameter
|
||||
{
|
||||
get { return GetValue(GroupingOrCipherParameterProperty) as VaultListPageModel.GroupingOrCipher; }
|
||||
set { SetValue(GroupingOrCipherParameterProperty, value); }
|
||||
}
|
||||
|
||||
protected override void OnBindingContextChanged()
|
||||
{
|
||||
Icon.Source = null;
|
||||
|
||||
VaultListPageModel.Cipher cipher = null;
|
||||
if(BindingContext is VaultListPageModel.Cipher item)
|
||||
{
|
||||
if(item.Type == Enums.CipherType.Login)
|
||||
cipher = item;
|
||||
}
|
||||
else if(BindingContext is VaultListPageModel.GroupingOrCipher groupingOrCipherItem)
|
||||
{
|
||||
cipher = groupingOrCipherItem.Cipher;
|
||||
}
|
||||
|
||||
if(cipher != null)
|
||||
{
|
||||
if(cipher.Type == Enums.CipherType.Login)
|
||||
{
|
||||
Icon.LoadingPlaceholder = "login.png";
|
||||
}
|
||||
Icon.Source = item.Icon;
|
||||
Icon.Source = cipher.Icon;
|
||||
}
|
||||
|
||||
base.OnBindingContextChanged();
|
||||
|
||||
Reference in New Issue
Block a user