* feat: Enhanced sender avatars with gravatar and favicons integration * chore: Remove unused known companies thumbnails * feat(thumbnail): add IThumbnailService and refactor usage - Introduced a new interface `IThumbnailService` for handling thumbnail-related functionalities. - Registered `IThumbnailService` with its implementation `ThumbnailService` in the service container. - Updated `NotificationBuilder` to use an instance of `IThumbnailService` instead of static methods. - Refactored `ThumbnailService` from a static class to a regular class with instance methods and variables. - Modified `ImagePreviewControl` to utilize the new `IThumbnailService` instance. - Completed integration of `IThumbnailService` in the application by registering it in `App.xaml.cs`. * style: Show favicons as squares - Changed `hintCrop` in `NotificationBuilder` to `None` for app logo display. - Added `FaviconSquircle`, `FaviconImage`, and `isFavicon` to `ImagePreviewControl` for favicon handling. - Updated `UpdateInformation` method to manage favicon visibility. - Introduced `GetBitmapImageAsync` for converting Base64 to Bitmap images. - Enhanced XAML to include `FaviconSquircle` for improved UI appearance. * refactor thumbnail service * Removed old code and added clear method * added prefetch function * Change key from host to email * Remove redundant code * Test event * Fixed an issue with the thumbnail updated event. * Fix cutted favicons * exclude some domain from favicons * add yandex.ru * fix buttons in settings * remove prefetch method * Added thumbnails propagation to mailRenderingPage * Revert MailItemViewModel to object * Remove redundant code * spaces * await load parameter added * fix spaces * fix case sensativity for mail list thumbnails * change duckdns to google * Some cleanup. --------- Co-authored-by: Aleh Khantsevich <aleh.khantsevich@gmail.com> Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using System;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using Wino.Core.Domain;
|
|
using Wino.Core.Domain.Entities.Shared;
|
|
|
|
namespace Wino.Mail.ViewModels.Data;
|
|
|
|
public partial class AccountContactViewModel : ObservableObject
|
|
{
|
|
public string Address { get; set; }
|
|
public string Name { get; set; }
|
|
public string Base64ContactPicture { get; set; }
|
|
public bool IsRootContact { get; set; }
|
|
|
|
public AccountContactViewModel(AccountContact contact)
|
|
{
|
|
Address = contact.Address;
|
|
Name = contact.Name;
|
|
Base64ContactPicture = contact.Base64ContactPicture;
|
|
IsRootContact = contact.IsRootContact;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets whether the contact is the current account.
|
|
/// </summary>
|
|
public bool IsMe { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets whether the ShortNameOrYOu should have semicolon.
|
|
/// </summary>
|
|
public bool IsSemicolon { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Provides a short name of the contact.
|
|
/// <see cref="ShortDisplayName"/> or "You"
|
|
/// </summary>
|
|
public string ShortNameOrYou => (IsMe ? Translator.AccountContactNameYou : ShortDisplayName) + (IsSemicolon ? ";" : string.Empty);
|
|
|
|
/// <summary>
|
|
/// Short display name of the contact.
|
|
/// Either Name or Address.
|
|
/// </summary>
|
|
public string ShortDisplayName => Address == Name || string.IsNullOrWhiteSpace(Name) ? $"{Address.ToLowerInvariant()}" : $"{Name}";
|
|
|
|
/// <summary>
|
|
/// Display name of the contact in a format: Name <Address>.
|
|
/// </summary>
|
|
public string DisplayName => Address == Name || string.IsNullOrWhiteSpace(Name) ? Address.ToLowerInvariant() : $"{Name} <{Address.ToLowerInvariant()}>";
|
|
|
|
[ObservableProperty]
|
|
public partial bool ThumbnailUpdatedEvent { get; set; }
|
|
}
|