2020-02-14 22:10:58 +01:00
|
|
|
|
using System;
|
|
|
|
|
using Bit.Core.Abstractions;
|
|
|
|
|
using Bit.Core.Utilities;
|
|
|
|
|
using Xamarin.Forms;
|
|
|
|
|
|
|
|
|
|
namespace Bit.App.Pages
|
|
|
|
|
{
|
|
|
|
|
public partial class ExportVaultPage : BaseContentPage
|
|
|
|
|
{
|
|
|
|
|
private readonly ExportVaultPageViewModel _vm;
|
|
|
|
|
private readonly IBroadcasterService _broadcasterService;
|
|
|
|
|
|
|
|
|
|
public ExportVaultPage()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
_broadcasterService = ServiceContainer.Resolve<IBroadcasterService>("broadcasterService");
|
|
|
|
|
_vm = BindingContext as ExportVaultPageViewModel;
|
|
|
|
|
_vm.Page = this;
|
|
|
|
|
_fileFormatPicker.ItemDisplayBinding = new Binding("Value");
|
|
|
|
|
MasterPasswordEntry = _masterPassword;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected async override void OnAppearing()
|
|
|
|
|
{
|
|
|
|
|
base.OnAppearing();
|
|
|
|
|
await _vm.InitAsync();
|
2020-03-05 18:44:01 +01:00
|
|
|
|
_broadcasterService.Subscribe(nameof(ExportVaultPage), (message) =>
|
2020-02-14 22:10:58 +01:00
|
|
|
|
{
|
|
|
|
|
if(message.Command == "selectSaveFileResult")
|
|
|
|
|
{
|
|
|
|
|
Device.BeginInvokeOnMainThread(() =>
|
|
|
|
|
{
|
|
|
|
|
var data = message.Data as Tuple<string, string>;
|
|
|
|
|
if(data == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
_vm.SaveFileSelected(data.Item1, data.Item2);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
RequestFocus(_masterPassword);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected async override void OnDisappearing()
|
|
|
|
|
{
|
|
|
|
|
base.OnDisappearing();
|
2020-03-05 18:44:01 +01:00
|
|
|
|
_broadcasterService.Unsubscribe(nameof(ExportVaultPage));
|
2020-02-14 22:10:58 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Entry MasterPasswordEntry { get; set; }
|
|
|
|
|
|
|
|
|
|
private async void Close_Clicked(object sender, System.EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if(DoOnce())
|
|
|
|
|
{
|
|
|
|
|
await Navigation.PopModalAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async void ExportVault_Clicked(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if(DoOnce())
|
|
|
|
|
{
|
|
|
|
|
await _vm.ExportVaultAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|