diff --git a/src/App/Controls/AvatarImageSource.cs b/src/App/Controls/AvatarImageSource.cs index 1ebe3509a..19138c853 100644 --- a/src/App/Controls/AvatarImageSource.cs +++ b/src/App/Controls/AvatarImageSource.cs @@ -62,6 +62,10 @@ namespace Bit.App.Controls upperData = _data.ToUpper(); chars = GetFirstLetters(upperData, 2); } + else + { + chars = upperData = _data.ToUpper(); + } var bgColor = StringToColor(upperData); var textColor = Color.White; @@ -122,7 +126,7 @@ namespace Bit.App.Controls { return data.Substring(0, 2); } - return null; + return data; } private Color StringToColor(string str) diff --git a/src/Core/Abstractions/IStateService.cs b/src/Core/Abstractions/IStateService.cs index 670a250b9..e354269fa 100644 --- a/src/Core/Abstractions/IStateService.cs +++ b/src/Core/Abstractions/IStateService.cs @@ -55,6 +55,7 @@ namespace Bit.Core.Abstractions Task SetAutofillTileAddedAsync(bool? value); Task GetEmailAsync(string userId = null); Task GetNameAsync(string userId = null); + Task SetNameAsync(string value, string userId = null); Task GetOrgIdentifierAsync(string userId = null); Task GetLastActiveTimeAsync(string userId = null); Task SetLastActiveTimeAsync(long? value, string userId = null); diff --git a/src/Core/Services/StateService.cs b/src/Core/Services/StateService.cs index 3f5d25e58..ae64bee8a 100644 --- a/src/Core/Services/StateService.cs +++ b/src/Core/Services/StateService.cs @@ -470,6 +470,15 @@ namespace Bit.Core.Services ))?.Profile?.Name; } + public async Task SetNameAsync(string value, string userId = null) + { + var reconciledOptions = ReconcileOptions(new StorageOptions { UserId = userId }, + await GetDefaultStorageOptionsAsync()); + var account = await GetAccountAsync(reconciledOptions); + account.Profile.Name = value; + await SaveAccountAsync(account, reconciledOptions); + } + public async Task GetOrgIdentifierAsync(string userId = null) { return (await GetAccountAsync( diff --git a/src/Core/Services/SyncService.cs b/src/Core/Services/SyncService.cs index 9f339bbb4..a7ce471ab 100644 --- a/src/Core/Services/SyncService.cs +++ b/src/Core/Services/SyncService.cs @@ -327,6 +327,7 @@ namespace Bit.Core.Services var organizations = response.Organizations.ToDictionary(o => o.Id, o => new OrganizationData(o)); await _organizationService.ReplaceAsync(organizations); await _stateService.SetEmailVerifiedAsync(response.EmailVerified); + await _stateService.SetNameAsync(response.Name); await _keyConnectorService.SetUsesKeyConnector(response.UsesKeyConnector); } diff --git a/src/iOS.Core/Renderers/CustomNavigationRenderer.cs b/src/iOS.Core/Renderers/CustomNavigationRenderer.cs index 4242ca882..7700f4c2e 100644 --- a/src/iOS.Core/Renderers/CustomNavigationRenderer.cs +++ b/src/iOS.Core/Renderers/CustomNavigationRenderer.cs @@ -71,7 +71,7 @@ namespace Bit.iOS.Core.Renderers { try { - uiBarButtonItem.Image = uiBarButtonItem.Image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); + uiBarButtonItem.Image = uiBarButtonItem.Image?.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); } catch (ObjectDisposedException) {