| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- 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;
- set
- {
- _userId = value;
- OnPropertyChanged();
- }
- }
- public string Name
- {
- get => _name;
- set
- {
- _name = value;
- OnPropertyChanged();
- }
- }
- public bool IsPointerOver
- {
- get => _isPointerOver;
- set
- {
- _isPointerOver = value;
- OnPropertyChanged();
- }
- }
- public IBrush BackgroundColor
- {
- get => _backgroundColor;
- set
- {
- _backgroundColor = value;
- OnPropertyChanged();
- }
- }
- public UserProfile(Profile profile, NavigationDialogHost owner)
- {
- _profile = profile;
- _owner = owner;
- UpdateBackground();
- Image = profile.Image;
- Name = profile.Name;
- UserId = profile.UserId;
- }
- public void UpdateState()
- {
- UpdateBackground();
- 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));
- }
- }
- }
|