mirror of
https://github.com/bitwarden/mobile
synced 2025-12-16 08:13:20 +00:00
Removed disclosure from view cell in favor of button. Updated sync logic for incrementals. Store revision date from server record. Apply more accessability font size support for editor and picker controls
This commit is contained in:
@@ -156,15 +156,10 @@ namespace Bit.App.Services
|
||||
|
||||
var siteTask = SyncSitesAsync(ciphers.Result.Revised.Where(c => c.Type == Enums.CipherType.Site), false);
|
||||
var folderTask = SyncFoldersAsync(ciphers.Result.Revised.Where(c => c.Type == Enums.CipherType.Folder), false);
|
||||
var deleteTask = DeleteCiphersAsync(ciphers.Result.Deleted);
|
||||
|
||||
foreach(var cipherId in ciphers.Result.Deleted)
|
||||
{
|
||||
await _siteRepository.DeleteAsync(cipherId);
|
||||
}
|
||||
|
||||
await Task.WhenAll(siteTask, folderTask);
|
||||
|
||||
if(folderTask.Exception != null || siteTask.Exception != null)
|
||||
await Task.WhenAll(siteTask, folderTask, deleteTask);
|
||||
if(folderTask.Exception != null || siteTask.Exception != null || deleteTask.Exception != null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -179,14 +174,15 @@ namespace Bit.App.Services
|
||||
|
||||
foreach(var serverFolder in serverFolders)
|
||||
{
|
||||
var data = new FolderData(serverFolder, _authService.UserId);
|
||||
var existingLocalFolder = localFolders.SingleOrDefault(f => f.Id == serverFolder.Id);
|
||||
if(existingLocalFolder == null)
|
||||
{
|
||||
var data = new FolderData(serverFolder, _authService.UserId);
|
||||
await _folderRepository.InsertAsync(data);
|
||||
}
|
||||
else
|
||||
else if(existingLocalFolder.RevisionDateTime != serverFolder.RevisionDate)
|
||||
{
|
||||
var data = new FolderData(serverFolder, _authService.UserId);
|
||||
await _folderRepository.UpdateAsync(data);
|
||||
}
|
||||
}
|
||||
@@ -208,14 +204,15 @@ namespace Bit.App.Services
|
||||
|
||||
foreach(var serverSite in serverSites)
|
||||
{
|
||||
var data = new SiteData(serverSite, _authService.UserId);
|
||||
var existingLocalSite = localSites.SingleOrDefault(s => s.Id == serverSite.Id);
|
||||
if(existingLocalSite == null)
|
||||
{
|
||||
var data = new SiteData(serverSite, _authService.UserId);
|
||||
await _siteRepository.InsertAsync(data);
|
||||
}
|
||||
else
|
||||
else if(existingLocalSite.RevisionDateTime != serverSite.RevisionDate)
|
||||
{
|
||||
var data = new SiteData(serverSite, _authService.UserId);
|
||||
await _siteRepository.UpdateAsync(data);
|
||||
}
|
||||
}
|
||||
@@ -230,5 +227,16 @@ namespace Bit.App.Services
|
||||
await _siteRepository.DeleteAsync(site.Id);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task DeleteCiphersAsync(IEnumerable<string> cipherIds)
|
||||
{
|
||||
var tasks = new List<Task>();
|
||||
foreach(var cipherId in cipherIds)
|
||||
{
|
||||
tasks.Add(_siteRepository.DeleteAsync(cipherId));
|
||||
tasks.Add(_folderRepository.DeleteAsync(cipherId));
|
||||
}
|
||||
await Task.WhenAll(tasks);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user