using Bit.App.Resources; using Bit.Core.Abstractions; using Bit.Core.Models.Domain; using Bit.Core.Utilities; using System.Collections.Generic; using System.Threading.Tasks; using Xamarin.Forms; namespace Bit.App.Pages { public class GeneratorHistoryPageViewModel : BaseViewModel { private readonly IPlatformUtilsService _platformUtilsService; private readonly IPasswordGenerationService _passwordGenerationService; private bool _showNoData; public GeneratorHistoryPageViewModel() { _platformUtilsService = ServiceContainer.Resolve("platformUtilsService"); _passwordGenerationService = ServiceContainer.Resolve( "passwordGenerationService"); PageTitle = AppResources.PasswordHistory; History = new ExtendedObservableCollection(); CopyCommand = new Command(CopyAsync); } public Command CopyCommand { get; set; } public ExtendedObservableCollection History { get; set; } public bool ShowNoData { get => _showNoData; set => SetProperty(ref _showNoData, value); } public async Task InitAsync() { var history = await _passwordGenerationService.GetHistoryAsync(); History.ResetWithRange(history ?? new List()); ShowNoData = History.Count == 0; } public async Task ClearAsync() { History.ResetWithRange(new List()); ShowNoData = true; await _passwordGenerationService.ClearAsync(); } private async void CopyAsync(GeneratedPasswordHistory ph) { await _platformUtilsService.CopyToClipboardAsync(ph.Password); _platformUtilsService.ShowToast("info", null, string.Format(AppResources.ValueHasBeenCopied, AppResources.Password)); } } }