68 lines
2.1 KiB
C#
68 lines
2.1 KiB
C#
using System;
|
|
using Bit.App.Pages;
|
|
using Bit.App.Utilities;
|
|
using Bit.Core.Models.View;
|
|
using Bit.Core.Utilities;
|
|
using Xamarin.Forms;
|
|
|
|
namespace Bit.App.Controls
|
|
{
|
|
public partial class AuthenticatorViewCell : ExtendedGrid
|
|
{
|
|
public static readonly BindableProperty CipherProperty = BindableProperty.Create(
|
|
nameof(Cipher), typeof(CipherView), typeof(AuthenticatorViewCell), default(CipherView), BindingMode.TwoWay);
|
|
|
|
public static readonly BindableProperty WebsiteIconsEnabledProperty = BindableProperty.Create(
|
|
nameof(WebsiteIconsEnabled), typeof(bool?), typeof(AuthenticatorViewCell));
|
|
|
|
public static readonly BindableProperty TotpSecProperty = BindableProperty.Create(
|
|
nameof(TotpSec), typeof(long), typeof(AuthenticatorViewCell));
|
|
|
|
public AuthenticatorViewCell()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public Command CopyCommand { get; set; }
|
|
|
|
public CipherView Cipher
|
|
{
|
|
get => GetValue(CipherProperty) as CipherView;
|
|
set => SetValue(CipherProperty, value);
|
|
}
|
|
|
|
public bool? WebsiteIconsEnabled
|
|
{
|
|
get => (bool)GetValue(WebsiteIconsEnabledProperty);
|
|
set => SetValue(WebsiteIconsEnabledProperty, value);
|
|
}
|
|
|
|
public long TotpSec
|
|
{
|
|
get => (long)GetValue(TotpSecProperty);
|
|
set => SetValue(TotpSecProperty, value);
|
|
}
|
|
|
|
public bool ShowIconImage
|
|
{
|
|
get => WebsiteIconsEnabled ?? false
|
|
&& !string.IsNullOrWhiteSpace(Cipher.Login?.Uri)
|
|
&& IconImageSource != null;
|
|
}
|
|
|
|
private string _iconImageSource = string.Empty;
|
|
public string IconImageSource
|
|
{
|
|
get
|
|
{
|
|
if (_iconImageSource == string.Empty) // default value since icon source can return null
|
|
{
|
|
_iconImageSource = IconImageHelper.GetLoginIconImage(Cipher);
|
|
}
|
|
return _iconImageSource;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|