Commit graph

7 commits

Author SHA1 Message Date
Pat Hartl
222492a24b Continue to tweak UI, add notifications, partial add gamepad support
- Add backgrounds for login / splash
- Fix logo to use uncut version
- Update titlebar icon
- WIP implementation of notifying on install complete/fail with cross-platform support
- WIP support for gamepads using SDL2
- Add lancommander:// protocol support for navigating to a specific game (currently used for notifications)
- WIP support for updating taskbar progress
- Don't show "in library" checkmark in library view
- Change back button text based on active view
- Adjust styling of download queue
- Add grouping by first letter + index control
- Change titlebar title based on view selected
- Adjust how titlebar overlaps main content
- Make chips clickable in game details
- Add overlay for game install options
- Add resizing to window
2026-03-28 16:59:33 -05:00
Pat Hartl
81a6a3a0fc Rework views / interactions
- Added a horizontal and list view for depot/library
- Games only show covers (with fallback cover)
- Added install addon / directory select dialog
- Fixed download queue
- Added footer somewhat matching Blazor launcher
- Temporarily removed sidebar
- Implemented custom window chrome
- Added profile button
- Reworked game details to better match Blazor launcher
- Added grouping by genre, collection, or first letter
2026-03-27 18:59:17 -04:00
Aaron Powell
025d12e1ca Show loading screen during login-to-shell transition
After login succeeds, switch to the splash view with a 'Loading library...'
message and progress bar before running ShellViewModel.InitializeAsync().
This gives immediate visual feedback instead of leaving the user staring
at the login screen wondering if the app has frozen.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 15:18:23 +11:00
Aaron Powell
73e310f349 Fix sidebar state issues on first login
- Initialize ShellViewModel fully before switching CurrentView in all paths
  (splash→shell, login→shell, offline→shell). Previously the UI rendered
  with uninitialized child ViewModels causing race conditions.
- Hide download queue panel entirely when no items (removes confusing
  'No active downloads' panel and empty header on first login)
- Collapsed download progress only shows when there's an active download

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 14:56:43 +11:00
Aaron Powell
827629e68b Add offline mode support for Avalonia launcher
- Detect server unreachable at startup and enter offline mode if user was previously logged in
- Skip server import when offline, load library from local database only
- Add offline indicator bar in sidebar (orange warning with 'Go Online' button)
- Add manual 'Go Offline' button in sidebar footer
- Disable install button when offline (CanInstall property)
- Propagate offline state from ShellViewModel to Sidebar, GamesListViewModel, GameDetailViewModel, and GameActionBarViewModel
- TryGoOnlineAsync attempts to reconnect and re-authenticate when user clicks 'Go Online'
2026-01-23 16:00:15 +11:00
Aaron Powell
7f64550602 feat: Add splash screen on startup while checking connection 2026-01-19 22:15:02 +11:00
Aaron Powell
8cf2139ccf feat: Add Avalonia launcher PoC with cross-platform UI
- Create LANCommander.Launcher.Avalonia project using Avalonia MVVM
- Implement server selection, login, and game library views
- Add library sidebar showing user's games
- Add depot/games list view with game details
- Integrate with LANCommander.Launcher.Services for:
  - DepotService, LibraryService, ImportService, MediaService
  - SDK authentication and connection clients
- Fix async initialization pattern to prevent UI thread deadlocks
- Add ConfigureAwait(false) to ServerConfigurationProvider.RefreshAsync
- Add Microsoft.Extensions.Http package for HttpClient DI

Key features:
- Server discovery and connection
- User authentication with credential persistence
- Library import from server to local SQLite cache
- Game icons and banners via MediaService
- Navigation between library, depot, and game details
2026-01-19 14:24:49 +11:00