Commit Graph

421 Commits

Author SHA1 Message Date
jp64k
a92d4c0267 Unified DLS+ETA progress labels and implemented ETA tracking for extraction, installation, and copy operations
- Removed separate DLS+ETA labels, unified into a clearer single label
- Repositioned and resized that label slightly to avoid top of label getting cut off
- Added guards to prevent brief progress bar flashes during multi-file downloads
- Added ETA for file extraction, APK installation, and OBB copy operations by tracking elapsed time and calculating a smoothed ETA based on the rate of progress
2025-12-16 22:50:55 +01:00
jp64k
6cbfdbe52c Refactored file download logic to use DNS fallback for 7-zip and WebView2 downloads, fixed crash craused by corrupted user.config preventing startup
Refactored all file download logic to use DNS fallback and applied it to 7-zip and WebView2 runtime downloads. Moved WebView2 runtime download logic to GetDependencies and ensures it is downloaded at startup if missing. Added robust handling for corrupted user.config files in Program.cs, including auto-repair and fallback guidance.
2025-12-15 00:07:54 +01:00
jp64k
0c20841db3 Added efficient Cloudflare DNS fallback with local proxy for RCLONE
Introduced DnsHelper to detect system DNS failures and fall back to Cloudflare (1.1.1.1 / 1.0.0.1) DNS resolving, with caching and helpers for downloads. When fallback is required a lightweight local proxy is started and HTTP_PROXY/HTTPS_PROXY are set for spawned rclone processes so rclone uses the proxy’s DNS resolution; the proxy is cleaned up on exit. This finally resolves the very common ISP DNS blockage issues of users.
2025-12-14 20:25:48 +01:00
jp64k
b33251d98b Moved ShowError_QuotaExceeded() outside of try-catch, updated message, close application after showing the error
Moved quota exceeded check outside of try-catch block so it always runs the check. Updated the error message in ShowError_QuotaExceeded(). The application now exits after showing the error.
2025-12-14 18:45:21 +01:00
Fenopy
0ecb4255e9 Merge pull request #269 from jp64k/RSL-3.0
Added modern progress bar, real-time install/OBB progress updates using AdvancedSharpAdbClient, updated sideload confirmation messages, a new icon based on the VRP server icon, prompt to ask if users want to delete game files after install when enabling sideloading
2025-12-11 17:50:07 -06:00
jp64k
f8dea1e135 Added modern progress bar, real-time install/OBB progress updates using AdvancedSharpAdbClient, updated sideload confirmation messages, and a new icon based on the VRP server icon.
Introduce ModernProgressBar, a custom control with gradient fill, rounded corners, indeterminate animation, and optional status text. Integrated AdvancedSharpAdbClient to provide real-time progress updates for APK installs and OBB copies, updating the UI to reflect the current operation and its progress. Refactored ADB methods to support async progress reporting, updated MainForm to use the new progress bar features, improved user feedback with clearer confirmation messages during and after sideloading, added a new icon based on the VRP server icon and enabled it in the window title bar.
2025-12-11 23:06:49 +01:00
jp64k
f714d2cb92 Added prompt to ask if users want to delete game files after install when enabling sideloading
Added a dialog to ask users if they want to delete game files after install when enabling sideloading from the toggle from the left side navigation. Also moved UpdateStatusLabels() to ensure sideload status labels are already updated as they see the prompt.
2025-12-11 16:01:17 +01:00
fenopy
f3a93afccc qol: add github link to about 2025-12-11 08:48:09 -06:00
fenopy
123fb7261c feat: add firmware version to Device Model Label 2025-12-11 08:33:41 -06:00
jp64k
062d702877 Improve wireless ADB setup, added rookie, device ID, mirror and sideloading status labels, fixed a UI-thread blocking regression in ProcessNewApps...
Reworked Wireless ADB options: Manual IP address field now prefills the first 3 octets by getting the local IPv4 of the system. Automatic no longer requires USB connection to establish a connection, instead now performs a network scan to find the device and connects to it. Included multi-device selection support (untested - I only have a single device.) Nonetheless Wireless ADB still requires a one-time USB setup for the ADB 'tcpip 5555' command (I wasn't able to ever establish a connection without that in Rookie, neither here nor in 2.34). Updated ADB button label to match new logic. Updated ADB messages to provide more guidance for the user. Synced sideloading button text to correctly match the sideloading status. Added rookie application status updates, device ID, mirror and sideloading status labels in bottom left corner. Fixed ProcessNewApps regression (no longer blocks UI thread). Replaced Program.form.changeTitle calls with local changeTitle for consistency. Fixed Game Gallery application install status not updating after installation.
2025-12-11 03:47:32 +01:00
jp64k
3db36a16c7 Added automatic device detection
Added a 1-second timer to detect when a device connects and trigger a full UI/data refresh, resetting flags and gallery data sources so install statuses stay accurate
2025-12-09 05:21:36 +01:00
jp64k
b06ee70c38 Added a newline to the "game already exists" message for clearer prompts 2025-12-09 04:57:35 +01:00
jp64k
769358b999 Fixed init when no device is connected and refined download-only flow
Fixed 'no device connected' error preventing application initialization. Improved download-only mode logic to preserve downloaded files until successful installation. Clarified user prompts and updated UI titles
2025-12-09 04:55:55 +01:00
jp64k
66058b3134 Refactored favorite context menu logic, removed early return from favorite filter; now shows empty list
Refactored favorite context menu logic to eliminate code duplication and improve clarity. Removed early return from favorite filter to intentionally display empty list when no favorites exist
2025-12-09 03:13:58 +01:00
jp64k
a65b369836 Refactor uninstall logic, fixed active filter resetting after uninstalling, and list to gallery switch now jumps to selected title
Added FastGalleryPanel.ScrollToPackage to center the previously selected package in gallery view when switching from list view to gallery view. Refactored uninstall logic to have list and gallery views both use a single uninstall method, and added RefreshGameListAsync to update UI and remember/apply active filters after uninstall.
2025-12-09 02:56:54 +01:00
jp64k
3e950833f9 Redesigned SettingsForm to use less vertical space, refined UI text
Redesigned SettingsForm layout to reduce its vertical height. Reorganized and repositioned controls, adjusted sizes, and refined UI text throughout
2025-12-09 01:00:36 +01:00
jp64k
4c333453b4 Fixed flickering of comboboxes (share app, uninstall app, pull app to desktop, etc.) and updated/shortened changelog notes
Changed ComboBox FlatStyle from Flat to Standard to fix flickering. Updated changelog to shorten it.
2025-12-08 23:09:56 +01:00
jp64k
3e4787d1a2 Reworked DonorsListView UI, NewApps UI and ADB command UI
Introduced a cleaner AdbCommandForm for running custom ADB commands and toggling OS updates. The DonorsListView and MainForm UIs are modernized with rounded, shadowed windows, updated color schemes, and improved button and label styling. Removed legacy data bindings and redundant controls.
2025-12-07 23:30:16 +01:00
jp64k
047f84e9e7 Fixed critical dependency download issue (when not awaiting)
Changed the background task for downloading dependencies to be awaited.
2025-12-07 21:25:36 +01:00
jp64k
eb0245dfe2 oops - removed debug data 2025-12-07 21:02:15 +01:00
jp64k
602fafe779 Fixing dynamic layout sizing issues for bottom panels on resize 2025-12-07 20:40:49 +01:00
jp64k
bbe4050b40 Completed comprehensive rookie redesign with extensive UI/UX modernization, new theme and architectural improvements
Implemented a custom theme with a new color scheme and extensively refined UI logic and architecture for improved modernity and consistency. Relocated and reworked numerous options (mount device, select device, share app, uninstall app, pull-to-desktop, filters, etc.), and updated all message boxes to use the new themed styling with enhanced visual polish. All message boxes now use custom themed styling with enhanced visual polish. Corrected grammatical or logical flaws across text, tooltips, and title updates throughout the application. Added smooth animations to left-side navigation / container elements. Fine-tuned sizing, positioning, and colors across numerous UI components. Enhanced GalleryView with proper favorites support including context menu integration, favorite border styling and favorite badge, as well as some bug fixes. Implemented custom modern ToggleSwitch component (iOS-like) with animations. Completely overhauled quest option and rookie option menus to utilize new toggle switches in modernized layouts. Refined sorting and installation status logic to streamline UX; rookie now also functions as an efficient installed-quest-app browser with easily accessible view/uninstall controls. Added WebView2.dll validation to ensure runtime dependencies exist. Re-implemented trailer option. GalleryView is now shown on very first launch, but rookie remembers your preferred view thereafter, so list-view users won't be bothered, while everyone still gets to see the new gallery view at least once. Gallery performance has also been validated on very-low-spec hardware and confirmed to run fine and fast there, due to numerous optimizations. Given the extensive scope of changes across this commit series for beta-2.35-yt, I believe this update represents a significant milestone warranting v3.0 designation. In my opinion these changes represent one of the most significant set of logical and visual changes and enhancements the rookie application has seen in years. Changes have been summarized in changelog.txt for update.
2025-12-07 19:57:09 +01:00
jp64k
a25ae6dbb7 Startup performance optimizations (metadata extraction and game list initialization)
Improved performance and reliability of metadata extraction by using faster directory deletion, parallel operations, and atomic game list updates. Refactored game list initialization for better memory usage and parallelized device connection and metadata updates. Logger initialization message is now more prominent. Minor UI and code cleanups included.
2025-12-05 05:27:45 +01:00
jp64k
d89c9dd739 Fixed trailer runtime download regression
Readded automatic WebView2 runtime download and extraction if not present. Added additional error handling + message.
2025-12-05 01:17:40 +01:00
jp64k
9f719672ac Gallery view: Fixed incorrect tile selection after sorting 2025-12-04 23:21:50 +01:00
jp64k
8962cf6d4f Added *uninstall* buttons to list and gallery views for better UX, added sorting buttons to gallery view
- Added a uninstall button for installed items to list view and gallery view.

- Fixed uninstall (TodaysDate) prompt text.

- Added sorting functionality with custom sort panel / buttons for Name, Updated, Size, and Popularity fields, including ascending/descending toggles, to gallery view.
2025-12-04 23:01:36 +01:00
jp64k
ef3ef7d714 Added custom high-performance gallery view
Introduced a virtual gallery panel for displaying games in a high-performance, animated gallery view. Added a toggle button for toggling between list and gallery view, with synchronized data and selection between views. The new gallery view supports dynamic scaling, smooth scrolling, hover animations, status badges, search, filters, and is optimized for displaying large numbers of items with LRU image caching.
2025-12-04 04:42:34 +01:00
jp64k
2c1f0ec259 Overhauled UI (WIP)
Overhauled UI (left side navigation bar, device information, search, background, text colors) for a cleaner and more modern-looking interface. Removed no longer used resources. Adjusted layout and visibility of certain panels and controls for a cleaner interface.

TODO:
- Finish the full UI overhaul.
- Fix MainForm Designer so it doesn't override the changes.
2025-12-02 23:01:45 +01:00
jp64k
31b19ca0f6 Fixed list view initialization
Changed list view initialization from a background task to run directly on the UI thread.
2025-12-02 05:44:44 +01:00
jp64k
4682646d36 Massively improved game list initialization time (~20x faster)
Massively improved game list initialization and metadata extraction, reducing game list processing time from ~11 seconds to under 1 second (~20x faster) on my end. Refactored initListView with batched version code retrieval and parallelized blacklist/whitelist loading. Optimized Sideloader/RCLONE metadata extraction and improved directory operations. Minor UI and logging tweaks.
2025-12-02 04:23:45 +01:00
jp64k
352a86334f Add retry logic for RCLONE initialization
Added a retry mechanism in initMirrors to handle cases where RCLONE is not immediately available, and error handling.
2025-12-02 02:20:59 +01:00
jp64k
6c6732c8d1 Removed splash screen and reworked start logic for a quick, efficient launch
Removed the splash form, associated images, and all references to splash screen logic from the project. Refactored startup logic to run directly, with improved asynchronous initialization and cleanup.
2025-12-02 02:14:45 +01:00
jp64k
b5dfcef34f Reworked search bar design and massively improved search performance
Improved the search functionality by adding a search index for faster lookups and updating the debounce timer for quicker response. Modified the search bar color and changed the "Search" text placeholder color.
2025-12-02 01:50:47 +01:00
jp64k
fea63cc03e Added local blacklist support for donation requests
Added a local blacklist button to DonorsListView, allowing users to permanently skip donation requests for locally blacklisted apps. These apps are stored in a local blacklist.json file and locally merged with the server blacklist, enabling users to stop donation prompts for selected apps without waiting for them to be blacklisted on the server side. Also performed some minor code cleanup.
2025-12-01 23:36:02 +01:00
jp64k
39b946b94b No longer prompt for update when local version is greater than server version
Replaced string equality check with semantic version comparison in Updater.cs to ensure updates are only prompted when the server version is greater than the local version. Also removed unused usings from MainForm.cs for code cleanliness.
2025-12-01 20:58:48 +01:00
jp64k
de6c96a7ac Trailers are now shown next to thumbnails, and massively improved list filter performance
Trailers are now initialized and shown next to thumbnails. Removed the 'Use Trailers instead of Thumbnails' setting and related UI/control logic. Cleaned up associated code, settings, and designer elements for a simpler, unified trailer experience. Also cleaned up list filtering logic with massively improved performance (from several seconds to now being instant on 'UP TO DATE' / 'UPDATE AVAILABLE' / 'NEWER THAN LIST' button clicks).
2025-12-01 20:28:09 +01:00
jp64k
2590eebfff Fixed Youtube trailer playback issues on beta 2.35
Replaced embedded video URL loading with a local player.html using the YouTube IFrame API and WebView2 message bridge. Added per-game video ID caching, improved trailer search reliability, streamlined initialization and navigation logic for faster trailer loading.
2025-12-01 17:39:16 +01:00
Sombody101
dbaeea4e8b Moved WV2 event subscriptions to WV2 initialization 2025-09-23 23:04:04 +02:00
Sombody101
b120d18014 Added better error logging for trailer requests 2025-09-23 23:04:04 +02:00
Sombody101
85804ee69c Fix WebView2 'too many automatic redirections' error 2025-09-23 23:04:04 +02:00
Chax
413113e732 Merge branch 'beta/RSL-2.35' of https://github.com/VRPirates/rookie into beta/RSL-2.35 2025-09-13 23:17:09 +02:00
Chax
26f7044053 Remove hideAdultContent due to there not being any anymore 2025-09-13 23:16:58 +02:00
Ashus
5a7c4971df Changed C:\RSL\platform-tools path to platform-tools in working dir 2025-09-11 17:27:27 -07:00
fenopy
44e8bdef7b fix- cleanup packages listing 2025-07-16 15:56:09 -05:00
Chax
da09545168 Fix "Cannot add or insert the item" bug. 2025-04-13 11:37:33 +02:00
Chax
49deba5771 Update Discord 2025-04-10 16:21:57 +02:00
Chax
56947d0648 Add favorite mechanism 2025-04-10 16:18:53 +02:00
Chax
f2c285c141 Show release notes with trailers enabled, this fixes #198 2025-03-22 13:15:51 +01:00
Chax
3195116fdf Remove obsolete code 2025-02-22 15:31:00 +01:00
Chax
1fb77054d1 Allow users to cancel backup 2025-02-22 15:25:25 +01:00