using Avalonia.Media;
using Ryujinx.Ava.UI.Controls;
using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Ava.UI.Views.User;
using Ryujinx.HLE.HOS.Services.Account.Acc;
using Profile = Ryujinx.HLE.HOS.Services.Account.Acc.UserProfile;
namespace Ryujinx.Ava.UI.Models
{
public class UserProfile : BaseModel
private readonly Profile _profile;
private readonly NavigationDialogHost _owner;
private byte[] _image;
private string _name;
private UserId _userId;
private bool _isPointerOver;
private IBrush _backgroundColor;
public byte[] Image
get => _image;
set
_image = value;
OnPropertyChanged();
}
public UserId UserId
get => _userId;
_userId = value;
public string Name
get => _name;
_name = value;
public bool IsPointerOver
get => _isPointerOver;
_isPointerOver = value;
public IBrush BackgroundColor
get => _backgroundColor;
_backgroundColor = value;
public UserProfile(Profile profile, NavigationDialogHost owner)
_profile = profile;
_owner = owner;
UpdateBackground();
Image = profile.Image;
Name = profile.Name;
UserId = profile.UserId;
public void UpdateState()
OnPropertyChanged(nameof(Name));
private void UpdateBackground()
Avalonia.Application.Current.Styles.TryGetResource("ControlFillColorSecondary", out object color);
if (color is not null)
BackgroundColor = _profile.AccountState == AccountState.Open ? new SolidColorBrush((Color)color) : Brushes.Transparent;
public void Recover(UserProfile userProfile)
_owner.Navigate(typeof(UserEditorView), (_owner, userProfile, true));