mirror of
https://github.com/bitwarden/android.git
synced 2025-01-10 02:07:33 +03:00
93 lines
2.8 KiB
C#
93 lines
2.8 KiB
C#
using Bit.App.Models;
|
|
using System;
|
|
using System.Threading.Tasks;
|
|
using Xamarin.Forms;
|
|
|
|
namespace Bit.App.Pages
|
|
{
|
|
public partial class LockPage : BaseContentPage
|
|
{
|
|
private readonly AppOptions _appOptions;
|
|
private readonly bool _autoPromptFingerprint;
|
|
private readonly LockPageViewModel _vm;
|
|
|
|
public LockPage(AppOptions appOptions = null, bool autoPromptFingerprint = true)
|
|
{
|
|
_appOptions = appOptions;
|
|
_autoPromptFingerprint = autoPromptFingerprint;
|
|
InitializeComponent();
|
|
_vm = BindingContext as LockPageViewModel;
|
|
_vm.Page = this;
|
|
_vm.UnlockedAction = () =>
|
|
{
|
|
if(_appOptions != null)
|
|
{
|
|
if(_appOptions.FromAutofillFramework && _appOptions.SaveType.HasValue)
|
|
{
|
|
Application.Current.MainPage = new NavigationPage(new AddEditPage(appOptions: _appOptions));
|
|
return;
|
|
}
|
|
else if(_appOptions.Uri != null)
|
|
{
|
|
Application.Current.MainPage = new NavigationPage(new AutofillCiphersPage(_appOptions));
|
|
return;
|
|
}
|
|
}
|
|
Application.Current.MainPage = new TabsPage();
|
|
};
|
|
MasterPasswordEntry = _masterPassword;
|
|
PinEntry = _pin;
|
|
}
|
|
|
|
public Entry MasterPasswordEntry { get; set; }
|
|
public Entry PinEntry { get; set; }
|
|
|
|
protected override async void OnAppearing()
|
|
{
|
|
base.OnAppearing();
|
|
await _vm.InitAsync(_autoPromptFingerprint);
|
|
if(!_vm.FingerprintLock)
|
|
{
|
|
if(_vm.PinLock)
|
|
{
|
|
RequestFocus(PinEntry);
|
|
}
|
|
else
|
|
{
|
|
RequestFocus(MasterPasswordEntry);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void Unlock_Clicked(object sender, EventArgs e)
|
|
{
|
|
if(DoOnce())
|
|
{
|
|
var tasks = Task.Run(async () =>
|
|
{
|
|
await Task.Delay(50);
|
|
Device.BeginInvokeOnMainThread(async () =>
|
|
{
|
|
await _vm.SubmitAsync();
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
private async void LogOut_Clicked(object sender, EventArgs e)
|
|
{
|
|
if(DoOnce())
|
|
{
|
|
await _vm.LogOutAsync();
|
|
}
|
|
}
|
|
|
|
private async void Fingerprint_Clicked(object sender, EventArgs e)
|
|
{
|
|
if(DoOnce())
|
|
{
|
|
await _vm.PromptFingerprintAsync();
|
|
}
|
|
}
|
|
}
|
|
}
|