97 Commits

Author SHA1 Message Date
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
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
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
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
62343f8cf6 Implemented minor Copilot changes 2025-12-31 05:11:58 +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
c5b151471a Refactored progress bar to show fractional percentages and improved ETA smoothing
Progress values and callbacks (labels, progressbar) now use float instead of int to reflect fractional percentages for a better / more responsive user experience. Improved ETA display for APK install, OBB copy and ZIP extraction operations by introducing a reusable EtaEstimator class for smoother and more accurate ETA calculations
2025-12-17 02:20:40 +01:00
jp64k
f528520024 Simplified extraction and installation progress labels in inner progress bar
- Removed extraction filenames from progress status label in inner progress bar to keep it clean and simple, and to avoid confusion with OBB file copy operations
- Removed redundant ETA text for install progress in inner progress bar to match the style of other progress labels
- Changed the trailer player.html directory from 'webroot' to 'trailer', shortened YouTube player initialization script, added fs: 0 to hide unnecessary fullscreen toggle, iv_load_policy: 3 to hide video annotations
2025-12-17 00:05:03 +01:00
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
acaea1d243 Fixed UI lag during progress updates
Added throttling to progress and status callbacks during APK installation and OBB copy operations. UI updates are now limited to at most once every 100 ms or when the progress percentage changes, preventing excessive UI thread updates and associated lag.
2025-12-16 21:10:53 +01: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
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
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
Ashus
5a7c4971df Changed C:\RSL\platform-tools path to platform-tools in working dir 2025-09-11 17:27:27 -07:00
Chax
d80dc1c465 Add safeguard to prevent deletion of current directory 2024-11-05 00:19:56 +01:00
fenopy
1471b6bb0b Merge remote-tracking branch 'origin/beta/RSL-2.30.1' into beta/RSL-2.31 2024-10-11 13:47:22 -05:00
Chax
eb88d746c1 Switch away from using inbuilt settings and use a json 2024-10-05 17:09:12 +02:00
fenopy
f7b5c94136 fix: wrap adb in try to prevent crash 2024-10-04 08:44:15 -05:00
fenopy
535b3826f8 fix: change device unauthorized prompt 2024-09-05 10:28:50 -05:00
fenopy
497c670a98 fix: quotes around some command paths 2024-06-03 08:37:49 -05:00
fenopy
df0a8b10d1 fix: allow adb commands with or without prefix 2024-02-28 11:51:21 -06:00
fenopy
f3d81252f0 chore: prettier 2024-01-08 15:47:27 -06:00
fenopy
e795b85ab8 chore: clean up path concats; thx @Krutonium 2024-01-08 15:43:25 -06:00
fenopy
223de0ba4a chore: remove qu settings 2023-12-06 14:06:37 -06:00
Chax
da48607154 Fix CopyOBB for Quest 3 2023-11-22 23:38:19 +01:00
Chax
c576f62d28 Fix the unauthorized bug, hopefully. 2023-10-31 09:35:12 +01:00
fenopy
4349603f51 fix: fix double-escape on \\RSL paths 2023-08-04 07:15:34 -05:00
Chax
97cbfdea4e Remove ADB.WakeDevice due to redundancy. 2023-07-20 11:57:00 +02:00
Chax
ce5cf80f96 Change all C:/ paths to {Path.GetPathRoot(Environment.SystemDirectory)}
This commit closes #161 as it's now redundant.
2023-07-05 19:40:05 +02:00
Chax
c17cc3f601 Further adjust names to fit naming convention 2023-06-20 17:26:25 +02:00
Chax
c06d606164 Improve logging system 2023-06-19 01:05:04 +02:00
Chax
ce370d4575 Create a new process for every ADB command, this could prevent Rookie from trying to access exited or inproperly started processes. 2023-06-15 14:27:41 +02:00
Chax
0f6001b312 Put error we repeat 3 times into a singular method to remove bloated code. 2023-05-30 06:37:04 +02:00
Chax
1142a67f88 Optimize GetAvailableSpace() 2023-05-30 05:40:44 +02:00
Chax
95eb1d545e Clean up messy code. 2023-05-30 05:25:42 +02:00
Fenopy
f8724bae66 Merge pull request #156 from Chax1/fix/QualityOfLife
Quality of Life Changes
2023-05-23 12:13:55 -05:00
Chax
39fa784540 Remove redundant standardinput.writeline and flush, we already give ADB the command in " adb.StartInfo.Arguments = command;" 2023-05-23 19:09:49 +02:00
Chax
1a860399d9 Invoke MessageBox to avoid crashes during debugging. 2023-05-23 19:09:49 +02:00
Fenopy
c010fda0db fix: storage display for v50 or below 2023-05-19 10:14:16 -05:00
Chax
2346accccc Add loglevels to exceptions etc. 2023-05-17 16:49:01 +02:00
Chax
dd69b75c7f Fix storage display 2023-05-17 16:43:49 +02:00
Fenopy
8c5b2d623b added parent to dialogs 2022-12-20 08:27:36 -06:00
SytheZN
d3a2c4012c Release/RSL-2.17 (#128)
* fix: pull to desktop not resetting work status.

resolves #104

* Create Text File with upload size for verification

* bump version

* better public config handling

* code cleanup

Co-authored-by: Fenopy <Fenopie@Gmail.com>
2022-12-05 23:42:59 +02:00
Chax
361bec9060 Removed auto updating configs, and fixed one spelling mistake. 2022-07-19 14:24:17 +02:00
William Swartwood
8ecad85d3f donor form and update form 2021-09-15 03:34:22 -04:00
William Swartwood
4a492ffcd2 -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

RSL 2.9.4

= Changed install.txt logic to search
for any .7z files and use Zip Extract
function from GeneralUtilities, should
fix version issues with users who have
a newer 7zip installed than the 7zip
exe included with install.txt games.

= Fully moved ADB folder to
C:\RSL\platform-rools and removed
adb folder from Rookie directory.
Rookie will do this automatically upon
first launch after updating. This will
make updating to future versions of ADB
much smoother. This should also fix issues
caused by having multiple version of
adb.exe clashing and fix AAPT issues as
well.

= Updated 7z.exe and 7z.dll on Github.

HFP
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmEsQnoACgkQx/Rql1Vo
czeKPRAAi0l9Ti06d48p0vd6Rziw3mHLVXg5dDOZWyrNULu1Y8axnSCVnZOVduVD
ftY0fVjTNNv7aU+fyWtH2Gr33CtJ6DvaQpj5RIsFiZpiTeDN3cOq2Ina55jtVvEl
ZrBVlLdXtv/L/W3ltrMzc/sNnJhrEfBXq7lNDFMj7IT31miphRZ1X9pgIdqGIpdE
gwcVxxkOu/5PXMzR3+eclpVePeagtJQNBH8dYUBQ9OziKObpzAfVYvoYS94MTYUY
ZdoHP5tfXEsuW0tQ6G1dvGrIi+ty8EJWX3GS42mkPW6xlyKbSOdu/IQa4KFPmpkK
7QwCMDzU5FgxJhg4+j35z/4BxJUzUHeTnp2xQYw/HE+GWdiJklIpZoOeqFQ+QLy/
6jwyhqcPD7cni2HMrCi4HxT0GcuVV5jrqqBAtCHdecglH90EMBCS9DrvmZyw1JgA
b9bCPQwWvVRLFw8HfiybiqVM98C2kW3TUsprGJOcnT6l1SzKlHEwiSMJSTVWshuu
bG8Q19gfhKSLEjTdjKVYV9WDHp8it+lrF6ETdneP4kcSsLhigYSgz0AeETx62Ugh
D13MyxcS6K9XqoRGy5Dr3gL/qkT0I5T6dsWL6vj9o317uexIO9sPkmrGTktbGUn1
heW2jD324PwyuuPxxoqM1lVKVquUIS0Difx+cqlJHY0lWqIk/Ck=
=lZeM
-----END PGP SIGNATURE-----
2021-08-29 22:33:38 -04:00
William Swartwood
78b816c5e6 -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

RSL 2.9.2

+ Added option in settings menu
to automatically reinstall apps
when installs fail due to previous
version clashing with update.

NOTE: If your USB or wireless ADB
connection is extremely slow this
setting can cause larger APK installs
to fail in rare cases.

= Fixed auto reinstall for signature
mismatch when if ADB reports error
properly (thanks to ADB update),
this will lead to faster reinstalls
in general when there are issues.

= Fixed crash that would occur when
closing Rookie.

= Added check to see if AAPT was
sucessful in retrieving mew game
name from APK, if not RSL will just
call the name by its package name
instead.

HFP
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmEotsUACgkQx/Rql1Vo
czc2/w/8DkMuVYLb31J0WyqeIdo/12t+TO0oIbmTvGl8Oi1LttnfH1a+PUBYYXFF
VTEcBoEgGde/Jk7+AblKhzce+uQIzwzU9KC7HL+Ab/1AAj3tdczx2vE4uKTPfMUe
k8XuZz0Qe37IOVUgnHugQCac8jjaDCFXzwoIwADnBg7mW/4Ha+LqxJr/+dsMUnz/
WsenolRWWKyhTj3RHIulZu82yEV9Gw+KfIUpO/XJR71xNdCq1IyrAfBRT8KqgI3F
2IuX/pIqMSMvG1N62rWUzxD67BM5NbpjxiDZKg3LmBo39avqowSGclT7gOP+eiGY
eSvvl+zoI08ofL+8Vonhu/mwnQNUcGFQqqpwAvDIcgE/zVDM9uTVAOTRkrjW0ge2
xEUhpdKZVJ/UzbwnUEyR7zeAkt+sVkEbAD9My7NdQ58eD52F20+yYTAWC6CU8dB4
8QJbJBEzd0Pm23H7iY5F5/7UnPy+rxzfyezrJCKV5u+D65Fn4n13VY33CDxBJW4y
kmcpWwal81mbGgwhWpxK6+xy1V2oWL9PLN9YIkfv+n5/KlqJjUfj3wqah+aUG5qI
X/5mqLAWnsQcM/F0bZXzt3dVszInPHH7jjSjoyKOKQwfVxYrh6uuonVhG7NfHfij
LGs8d6O8osorkiB+2Aiziw8A+9o8fWLmfjeDhFcGc5YTb3eMxz0=
=XRAG
-----END PGP SIGNATURE-----
2021-08-27 05:58:45 -04:00
William Swartwood
2882737958 2.9 2021-08-24 03:35:54 -04:00
William Swartwood
2ed7034284 RSL 2.8.5
+ Added OPT-IN installed packages check,
this will be used to add common free apps
to a blacklist so a future version of RSL
can ask users to donate new apps.

= Fixed logic for apk signature mismatch
automatic reinstall.

= Increased timer for apk installation
failure to 3 minutes.

= Fixed blacklist implementation for
updates to apps already on RSL.

- - Removed 2nd confirmation dialog for
app uninstalls.

HFP
2021-08-20 03:56:48 -04:00
William Swartwood
383e721f4b ADB SDK Update 2021-08-19 05:01:53 -04:00