mirror of
https://github.com/bitwarden/mobile.git
synced 2024-12-19 15:48:21 +01:00
sync page details
This commit is contained in:
parent
879b5ef3aa
commit
b68031bd11
@ -4,7 +4,6 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
x:Class="Bit.App.Pages.SyncPage"
|
x:Class="Bit.App.Pages.SyncPage"
|
||||||
xmlns:pages="clr-namespace:Bit.App.Pages"
|
xmlns:pages="clr-namespace:Bit.App.Pages"
|
||||||
xmlns:controls="clr-namespace:Bit.App.Controls"
|
|
||||||
xmlns:u="clr-namespace:Bit.App.Utilities"
|
xmlns:u="clr-namespace:Bit.App.Utilities"
|
||||||
x:DataType="pages:SyncPageViewModel"
|
x:DataType="pages:SyncPageViewModel"
|
||||||
Title="{Binding PageTitle}">
|
Title="{Binding PageTitle}">
|
||||||
@ -12,9 +11,21 @@
|
|||||||
<pages:SyncPageViewModel />
|
<pages:SyncPageViewModel />
|
||||||
</ContentPage.BindingContext>
|
</ContentPage.BindingContext>
|
||||||
|
|
||||||
<StackLayout Spacing="0" Padding="10, 5">
|
<StackLayout Spacing="10"
|
||||||
|
Padding="10, 5"
|
||||||
|
VerticalOptions="Center"
|
||||||
|
HorizontalOptions="FillAndExpand">
|
||||||
<Button Text="{u:I18n SyncVaultNow}"
|
<Button Text="{u:I18n SyncVaultNow}"
|
||||||
Clicked="Sync_Clicked"></Button>
|
Clicked="Sync_Clicked"></Button>
|
||||||
|
<Label StyleClass="text-muted, text-sm" HorizontalTextAlignment="Center">
|
||||||
|
<Label.FormattedText>
|
||||||
|
<FormattedString>
|
||||||
|
<Span Text="{u:I18n LastSync}" />
|
||||||
|
<Span Text=" " />
|
||||||
|
<Span Text="{Binding LastSync}" />
|
||||||
|
</FormattedString>
|
||||||
|
</Label.FormattedText>
|
||||||
|
</Label>
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
|
|
||||||
</pages:BaseContentPage>
|
</pages:BaseContentPage>
|
||||||
|
@ -13,6 +13,12 @@ namespace Bit.App.Pages
|
|||||||
_vm.Page = this;
|
_vm.Page = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected async override void OnAppearing()
|
||||||
|
{
|
||||||
|
base.OnAppearing();
|
||||||
|
await _vm.SetLastSyncAsync();
|
||||||
|
}
|
||||||
|
|
||||||
private async void Sync_Clicked(object sender, EventArgs e)
|
private async void Sync_Clicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if(DoOnce())
|
if(DoOnce())
|
||||||
|
@ -13,6 +13,8 @@ namespace Bit.App.Pages
|
|||||||
private readonly IPlatformUtilsService _platformUtilsService;
|
private readonly IPlatformUtilsService _platformUtilsService;
|
||||||
private readonly ISyncService _syncService;
|
private readonly ISyncService _syncService;
|
||||||
|
|
||||||
|
private string _lastSync = "--";
|
||||||
|
|
||||||
public SyncPageViewModel()
|
public SyncPageViewModel()
|
||||||
{
|
{
|
||||||
_deviceActionService = ServiceContainer.Resolve<IDeviceActionService>("deviceActionService");
|
_deviceActionService = ServiceContainer.Resolve<IDeviceActionService>("deviceActionService");
|
||||||
@ -22,15 +24,43 @@ namespace Bit.App.Pages
|
|||||||
PageTitle = AppResources.Sync;
|
PageTitle = AppResources.Sync;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string LastSync
|
||||||
|
{
|
||||||
|
get => _lastSync;
|
||||||
|
set => SetProperty(ref _lastSync, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task SetLastSyncAsync()
|
||||||
|
{
|
||||||
|
var last = await _syncService.GetLastSyncAsync();
|
||||||
|
if(last != null)
|
||||||
|
{
|
||||||
|
var localDate = last.Value.ToLocalTime();
|
||||||
|
LastSync = string.Format("{0} {1}", localDate.ToShortDateString(), localDate.ToShortTimeString());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LastSync = AppResources.Never;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async Task SyncAsync()
|
public async Task SyncAsync()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await _deviceActionService.ShowLoadingAsync(AppResources.Syncing);
|
await _deviceActionService.ShowLoadingAsync(AppResources.Syncing);
|
||||||
await _syncService.FullSyncAsync(true);
|
var success = await _syncService.FullSyncAsync(true);
|
||||||
await _deviceActionService.HideLoadingAsync();
|
await _deviceActionService.HideLoadingAsync();
|
||||||
|
if(success)
|
||||||
|
{
|
||||||
|
await SetLastSyncAsync();
|
||||||
_platformUtilsService.ShowToast("success", null, AppResources.SyncingComplete);
|
_platformUtilsService.ShowToast("success", null, AppResources.SyncingComplete);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await Page.DisplayAlert(null, AppResources.SyncingFailed, AppResources.Ok);
|
||||||
|
}
|
||||||
|
}
|
||||||
catch(ApiException e)
|
catch(ApiException e)
|
||||||
{
|
{
|
||||||
await _deviceActionService.HideLoadingAsync();
|
await _deviceActionService.HideLoadingAsync();
|
||||||
|
Loading…
Reference in New Issue
Block a user