941 Commits

Author SHA1 Message Date
Fenopy
15efd91769 Merge pull request #300 from VRPirates/beta/RSL-3.0.1
Beta/rsl 3.0.1
v3.0.1
2026-03-18 12:58:00 -05:00
fenopy
28fe132012 fix: better handling when no config files are available 2026-03-18 12:55:26 -05:00
Fenopy
db93c7b610 Merge pull request #292 from jp64k/RSL-3.0.5
Bunch of changes, look inside
2026-02-06 06:22:15 -06:00
jp64k
3bae614d7e Fixed another regression (release notes placeholder not being centered on launch) 2026-02-04 04:35:27 +01:00
jp64k
3e3a452ceb Updated changelog.txt 2026-02-04 04:11:48 +01:00
jp64k
4dc11191f0 Implemented async real-time progress updates for drag and drop. Removed deprecated Sideload(...) and CopyOBB(...) functions
Replaced the old sideload/OBB operations with our newer async, progress-aware flows to enable real-time progress feedback in the UI for non-blocking drag and drop operations. Also cleaned up a bit code and made minor logging adjustments. Updated "No Trailer found" message to disappear after 5 seconds
2026-02-04 03:47:28 +01:00
jp64k
3e626c6390 Refined backup messages and updated backup button labels
Changed button texts for clarity: 'BACKUP WITH ADB' to 'BACKUP GAMESAVE WITH ADB', 'BACKUP GAMESAVES' to 'BACKUP ALL GAMESAVES'. Updated dialog and message box titles to match. Added explanatory notes to the bulk backup summary, guiding users to use ADB backup for games requiring special permissions
2026-02-02 04:04:13 +01:00
jp64k
5b44295418 Improved Rookie connection status feedback and fixed typo
Updated the sideloading status label and download button to provide clearer feedback when no device is connected or sideloading is disabled. The download button now shows "DOWNLOAD AND INSTALL" only when sideloading is enabled and a device is connected, otherwise it shows "DOWNLOAD". Meanwhile the sideloading status label now shows "Sideloading: No Device Connected" in orange while no device is connected. Also added missing </Setting> tag in Settings.settings
2026-02-02 03:51:39 +01:00
jp64k
95b9059bed ListView: Show uninstall button on hover
Changed uninstall button logic to display on mouse hover over a ListView item instead of on selection (click) to match gallery view behavior
2026-02-02 02:48:21 +01:00
jp64k
163a0d9fce Bumped version to 3.0.1 and updated changelogs
Increased the version to 3.0.1. New changelog reflects fixes for popularity ranking, favorites updating, improved YouTube trailer matching, automatic public config creation, and new grouped tile logic in Gallery View
2026-01-30 04:49:56 +01:00
jp64k
af84f2cf8c Improvd base game name derivation for grouped tiles
Refactored the logic to strip parentheses from all version names before selecting the shortest, instead of selecting the shortest name first and then stripping
2026-01-30 04:40:59 +01:00
jp64k
9f2e824df2 Gallery View: Added logic to remove unfavorited subitems of grouped tiles in favorites-view
In gallery view, when a game version of a grouped tile is unfavorited in favorites-view, it is now
automatically removed from the display. Added RemoveVersionFromDisplay
method to handle item removal, tile updates and layout
recalculation. The grouped-view is automatically closed
when only one version remains after unfavoriting
2026-01-30 04:33:51 +01:00
jp64k
f21efcd476 Fixed group titles to show actual name when only one version is favorited
Updated the version name logic in gallery view to display the actual game name instead of the simplified base name when only one version of a grouped game is present in favorites
2026-01-30 04:17:38 +01:00
jp64k
50b52d963b Fixed favorites not refreshing when removing entries
Fixed favorites not refreshing when removing entries while in favorites view. Previously, removed items would only disappear after switching to regular view and back. The favorites list now updates immediately upon removal
2026-01-30 04:07:30 +01:00
jp64k
61e6c143fa Fixed regression from earlier commit (f91ee27)
Corrected the index used to parse the size in MB from index 6 to 5
2026-01-30 03:55:35 +01:00
jp64k
60d68cbc8c Improved YouTube trailer matching accuracy
Improved the trailer selection algorithm by requiring all game name words (normalized by removing apostrophes) to be present in the video title. Increased the number of processed matches from 5 to 10 and refined scoring bonuses and penalties, enhancing the accuracy for selecting the most relevant clip
2026-01-30 03:50:24 +01:00
jp64k
93ed359ed1 Auto-create public config file without prompt
Removed the user prompt for creating the public config file when missing. The file is now created automatically when AutoUpdateConfig is enabled, streamlining the process similar to how Rookie handles other required files
2026-01-30 03:13:13 +01:00
jp64k
8bd7efc22e Gallery View: Added grouped tile logic for packages with multiple versions
Implemented grouping of gallery tiles by package with a cleaned base name and an overlay UI for selection among multiple versions. Added new rendering logic, sorting and interaction for grouped tiles, including badges, a scrollable overlay, favorite context-menu support and release-notes updates on hover. Refactored a bit of code in GalleryView.
2026-01-29 18:47:08 +01:00
fenopy
07957d93fe Merge branch 'master' of https://github.com/VRPirates/rookie 2026-01-28 06:21:45 -06:00
jp64k
f91ee27c35 Fixed culture-specific decimal separator problem
Replaced all direct double.TryParse calls with new StringUtilities.TryParseDouble helper method to ensure consistent, culture-invariant parsing of numeric values
2026-01-24 16:57:34 +01:00
Fenopy
d8cc5dc539 Merge pull request #283 from jp64k/RSL-3.0.4
Improved YouTube trailer search accuracy, added TryDeleteDirectory utility for all directory deletions, moved WebView2 cache from hardcoded path to app directory, replaced dated folder dialogs with modern FolderSelectDialog, improved backup/restore logic
v3.0 v3.0-beta6
2026-01-08 06:06:21 -06:00
jp64k
ed17322983 Refactored and fixed backup directory handling, refactored and fixed backup/restore logic and improved UX
Centralized backup directory logic via SettingsManager.GetEffectiveBackupDir(), replacing repeated path construction throughout the codebase. Fixed backup and restore logic aborting on error, streamlined backup/restore workflows for both individual apps and bulk operations, improved UI text for clarity, improved error handling and improved progress feedback. Removed redundant code and ensured consistent backup directory usage in MainForm, Sideloader, and SettingsForm
2026-01-08 01:46:11 +01:00
jp64k
0970b73fe7 Replaced dated download/backup directory set dialogs with modern FolderSelectDialog
Updated download and backup directory selection to use modern FolderSelectDialog for better folder browsing with initial directories based on user settings, improving UX
2026-01-07 20:32:26 +01:00
jp64k
7cc437309a Moved hardcoded WebView2 path from "C:\RSL" to the application's current directory
Changed the WebView2 cache directory from system root path "C:\RSL" to the application's current directory for improved portability and reliability. Ensured the cache directory is created before initializing the WebView2 environment
2026-01-07 20:16:44 +01:00
jp64k
a050d82c8b Refactored all directory deletion calls to use new TryDeleteDirectory utility
Replaced all direct Directory.Delete calls by our new custom FileSystemUtilities.TryDeleteDirectory class and method for safer and more robust directory deletion throughout the codebase with automatic retries (3x 150ms), recursive deletion, handling of read-only attributes, rename-then-delete fallback, and better error handling. Also moved the WebView cleanup to happen earlier on initialization, before creation of the WebView environment
2026-01-07 19:46:35 +01:00
jp64k
4c5a651b2b Removed deprecated multi-strategy approach 2026-01-07 17:39:28 +01:00
jp64k
af17f5bb12 Improved YouTube trailer search accuracy
Improved YouTube trailer search algorithm by cleaning game names, having 2 search strategies for higher hit accuracy, and adding a scoring system that selects the most relevant clip (trailer) based on title similarity and result position (respecting YouTube's sort order)
2026-01-07 03:55:52 +01:00
Fenopy
670ace1963 Merge pull request #282 from jp64k/RSL-3.0.4
Feat: Rookie now flashes in taskbar when FlexibleMessageBox is thrown and window is inactive, Fix: FlexibleMessageBox positioning for inactive/minimized window
2026-01-06 12:03:22 -06:00
jp64k
77cfb81545 Feat: Rookie now flashes in taskbar when FlexibleMessageBox is thrown and window is inactive, Fix: FlexibleMessageBox positioning for inactive/minimized window
Added taskbar flashing to notify users when a task is complete or requires user input (= when FlexibleMessageBox is thrown) while the application is inactive or minimized. Enhanced FlexibleMessageBox to better handle when the application is minimized by centering the dialog on the screen and repositioning it when the form is restored.
2026-01-06 17:51:36 +01:00
fenopy
3d241cc634 fix: issue with selecting the default mirror 2026-01-06 08:50:34 -06:00
Fenopy
187f1d3689 Merge pull request #279 from jp64k/RSL-3.0-2
Fixes, QoL and new features... Enhanced DNS/ADB handling, fixed gallery selection, fixed newer than list/blacklist logic, synchronized gallery/list view sorting, modernized download queue UI, added session persistence
v3.0-beta5
2026-01-05 06:53:11 -06:00
jp64k
6ccaf06ab4 Fixed broken shortcuts (CTRL+P, CTRL+L, ALT+L)
Fixed broken shortcuts (CTRL+P behavior was already broken on 2.34.1), updated to use FlexibleMessageBox and changed CTRL+P logic to immediately copy the selected game's package name without confirmation, supporting both list and gallery views, with a neater notification
2026-01-03 05:41:01 +01:00
jp64k
f289026438 Added game name to disk/device space error messages
Updated disk and device space error messages to show the game name
2026-01-03 05:14:32 +01:00
jp64k
de6b0e4c70 Added download queue space checks with new error messages
Implemented disk and device space validation for the download/install queue with per-game and total queue size checks. The UI displays total queue size and updates available device space after each install. Improved error handling and user prompts for insufficient space.

When adding an entry to the queue, we check:
- Free disk space in the current download directory
- Device free space (if sideloading is enabled)
- Whether the download is already queued
- Total queue size against download directory and device free space to prevent over-queuing

When a download starts (e.g., when resuming downloads after a restart), we recheck disk and device space for that download and allow the user to skip it or clear the queue if not.

Space checks are intentionally lenient. We only block downloads when we're confident the download won't fit. If space is close, users will proceed since they'll receive an error during the actual installation when it fails anyway.
2026-01-03 05:05:43 +01:00
jp64k
debb204719 Improved YouTube search query accuracy
Wrapped the game name in quotes in the YouTube search query to yield more accurate results for VR trailers
2026-01-02 16:09:45 +01:00
jp64k
f80d5f841c Removed dated drag-and-drop label, updated notes display
Removed DragDropLbl label and its related logic, consolidating drag-and-drop tips into the notesRichTextBox with improved styling. Added UpdateReleaseNotes method to handle dynamic notes display and placeholer styling
2026-01-02 15:43:33 +01:00
jp64k
38a1968c42 Refactored gallery view tile rendering for better performance and increased hover effect animation speed
Simplified and unified tile and thumbnail drawing, reduced gallery image filter quality (interpolation) for better performance with negligible visual quality loss while maintaining the best filter quality (HighQualityBicubic) for the currently hovered tile, and adjusted hover and animation constants. Tile borders are now drawn after the image. Removed no longer used FormatSize method
2026-01-02 15:20:30 +01:00
jp64k
b92def0283 Added persistent download queue with resume support
Implemented automatic saving and loading of the download queue, allowing users to resume unfinished downloads after restarting the application. Added methods to persist the queue state, prompting users to ask if they want to resume queued downloads on startup, and updated queue management logic to support resumed downloads
2025-12-31 05:37:47 +01:00
jp64k
62343f8cf6 Implemented minor Copilot changes 2025-12-31 05:11:58 +01:00
jp64k
fdb091cee6 Persist window size, position, state and sort order between sessions
Added functionality to automatically save and restore the main window's position, size, (maximized) state, and sort order for list and gallery views between sessions. Introduced new properties in SettingsManager for window and sort state persistence. Updated MainForm to load and save these settings on startup, close, and sort changes, and added default/fallback behavior. Modified ModernListView to suppress header drawing and interaction during initialization
2025-12-31 04:54:11 +01:00
jp64k
3993e574a8 Replaced dated download queue ListBox with custom ModernQueuePanel
Introduced ModernQueuePanel as a modern control for the download queue, supporting
drag-and-drop reordering, auto-scroll, and entry removal via close buttons (replaced
double-click) in a modernized look. Removed legacy ListBox event handlers and updated
MainForm to use the new panel, synchronizing it with the queue's binding list and
refactored UI logic for queue management and download cancellation
2025-12-31 03:44:46 +01:00
jp64k
fb36826091 Fixed incorrect NEWER THAN LIST logic/behavior for blacklisted apps
Moved increment of newerThanListCount and setting of item.ForeColor outside the blacklist check. Now, only the prompt for upload is skipped for blacklisted packages, while the UI still reflects that a newer version is installed
2025-12-30 22:24:14 +01:00
jp64k
84ddce1423 Synchronized sorting states between list view and gallery view
Introduced shared sorting state logic to maintain consistent sorting order when switching between gallery and list views (game name, last updated, size, popularity, asc and desc)
2025-12-30 22:12:29 +01:00
jp64k
f363550351 Fixed incorrect item selection in gallery view for entries with duplicate package names
Updated GalleryView selection logic to consistently use unique release name (SubItems[ReleaseNameIndex]) instead of non-unique package name, which fixes incorrect item selections in gallery view for entries with duplicate package names
2025-12-30 21:50:47 +01:00
jp64k
02ab0f0e2a Improved timeout handling for ADB connect command and suppressed devices command log spam
Enhanced RunAdbCommandToString to use a 5-second timeout for connect commands, preventing prolonged blocking during startup/initialization when an ADB wireless config exists but fails to connect to the device. Also added a suppressLogging parameter to control 'devices' command output logging, which is used for our quick 'devices' check command that runs every second while no devices are connected
2025-12-30 17:23:00 +01:00
jp64k
5819bc8083 Refactored DnsHelper and added DNS testing for the public config hostname instead of a hardcoded URL
Refactored DnsHelper for maintainability and added automatic DNS testing for the public config hostname after creation/update of vrp-public.json to automatically enable fallback DNS and proxy if system DNS fails for that
2025-12-30 16:54:00 +01:00
fenopy
311f0cfb7e feat: save selected mirror 2025-12-23 09:26:35 -06:00
Fenopy
58cb75c38c Merge pull request #276 from jp64k/RSL-3.0-2
Several changes and fixes, see notes below
v3.0-beta4
2025-12-23 07:07:17 -06:00
Fenopy
4383b9d398 store deviceId in variable instead of line-splitting
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-23 07:06:33 -06:00
jp64k
b3ce3ab214 Adjusted wireless ADB dialog widths to fix layout
Increased width of 'Wireless ADB Options' and 'Wireless ADB Connection' dialogs by 6 pixels each to improve layout centering
2025-12-22 03:47:53 +01:00