1
0
Fork 0
mirror of https://github.com/DarkMatterCore/nxdumptool.git synced 2024-11-10 04:31:44 +00:00
Commit graph

359 commits

Author SHA1 Message Date
Pablo Curiel
ba0c5d9e35 utils: implement utilsIsApplicationUpdatable().
Also removed legacy code that has already been reimplemented.
2021-08-07 05:44:36 -04:00
Pablo Curiel
28cd0ce10f OptionsTab: fully implement application update feature.
Other changes include:

* Codebase: move JSON parsing logic from config.c/h to nxdt_json.c/h.
* Codebase: replace all calls to localtime() with localtime_r() to guarantee thread-safety.
* Codebase: updated todo.txt.
* utils: implement utilsParseGitHubReleaseJsonData(), utilsFreeGitHubReleaseJsonData(), utilsGetApplicationUpdatedState() and utilsGetApplicationUpdatedState().
* utils: add extra logic to move the application's NRO to its proper path if the launch path isn't the right one (commented out at this moment).
* utils: add extra logic to replace the application's NRO at exit (commented out at this moment).
* defines: add DEVOPTAB_SDMC_DEVICE and tweak GitHub URL macros.
* DownloadTask: set percentage to 0 if the download size is unknown.
* DownloadTask: fix ETA string formatting.
* OptionsTab: repurpose OptionsTabUpdateFileDialogContent into OptionsTabUpdateProgress.
* OptionsTab: implement OptionsTabUpdateApplicationFrame.
* RootView: move date formatting into the static GetFormattedDateString() method.
* Makefile: use _GNU_SOURCE as part of CFLAGS to use strptime().
2021-08-07 04:42:03 -04:00
Pablo Curiel
3f16e3f835 PoC: use 7z instead of tar. 2021-08-03 03:15:06 -04:00
Pablo Curiel
230e3d2cee PoC: fix building + implement AuthoringTool data option. 2021-08-03 02:37:04 -04:00
Pablo Curiel
7c5aae39e6 config: add append_authoringtool_data boolean. 2021-08-03 00:22:33 -04:00
Pablo Curiel
962cf00ba9 Display a CrashFrame warning at startup if the application is running under applet mode.
Other changes include:

* defines: added NON_MOVEABLE macro.
* AsyncTask: set class as non-moveable, too.
* RootView: provide an override for getDefaultFocus().
* StatusInfoTask: replace GetStatusInfoData with IsInternetConnectionAvailable().
2021-07-30 17:07:26 -04:00
Pablo Curiel
bc842d8905 OptionsTab: check if an Internet connection is available before starting an update. 2021-07-29 15:55:31 -04:00
Pablo Curiel
841fd73fbf utils: implement utilsSetLongRunningProcessState().
Other changes include:

* DownloadTask: use utilsSetLongRunningProcessState() to control HOME button block status, screen dimming and auto sleep.
* Add missing utilsCommitSdCardFileSystemChanges() calls throughout the codebase.
2021-07-29 12:48:32 -04:00
Pablo Curiel
dbbc5c7ebd Implemented OptionsTabUpdateFileDialog and OptionsTabUpdateFileDialogContent classes.
Other changes include:

* utils: utilsGenerateFormattedSizeString() now takes an input double instead of size_t.
* DownloadTask: calculated speed is now expressed in bytes per second, so now it's up to the caller to convert it to other units.
* DownloadTask: set download size and percentage if the download size isn't known and we're dealing with the final chunk.
* http: slightly improved CURL error info formatting.
* OptionsTab: fully implemented NSWDB XML update option.
2021-07-29 03:50:17 -04:00
Pablo Curiel
f80573e5c4 Move DownloadTask classes to their own header file. 2021-07-27 19:47:12 -04:00
Pablo Curiel
eb97ae3de5 Implement DownloadTask, DownloadFileTask and DownloadDataTask classes.
Other changes include:

* AsyncTask: use a recursive mutex instead of atomics. Fixes build issues related to non-trivially-copyable elements.
* http: remove CURLOPT_ACCEPT_ENCODING option in httpPerformGetRequest().
2021-07-27 11:00:09 -04:00
Pablo Curiel
882a7581cc http: add extra info about httpDownloadData(). 2021-07-25 18:26:41 -04:00
Pablo Curiel
63d9be7db1 Implemented CURL-based HTTP client.
Only supports GET requests, but that's more than enough for the time being.

Other changes include:

* OptionsTab: added an option to update the NSWDB XML (not implemented yet).
* config: add missing flag check in getters and setters.
* Move default socket initialization from utils.c to services.c.
2021-07-25 18:23:44 -04:00
Pablo Curiel
499afea6d8 i18n: fix en-US typos (so far). 2021-07-25 11:06:16 -04:00
Pablo Curiel
05dec93795 Implemented AsyncTask class.
Other changes include:

* Updated borealis.
* Updated Makefile.
* Began implementation of a (very) simple, CURL-based HTTP handler.
* OptionsTab: added a small disclaimer about dump options.
* OptionsTab:  added notifications for the update application item (running as NSO, app already updated).
* config: improved boundary handling while validating integer entries.
* utils: (de)initialize CURL (this will be moved to http.c eventually).
2021-07-25 01:37:13 -04:00
Pablo Curiel
ff0a2a385c Fix PoCs. 2021-07-23 08:42:20 -04:00
Pablo Curiel
6bb693b493 AboutTab: add json-c to dependencies list. 2021-07-23 03:42:26 -04:00
Pablo Curiel
3afe5caa7a Implement OptionsTab class.
Other changes:

* title: rename TitleFileNameConvention -> TitleNamingConvention.
* utils: display Lockpick_RCM's GitHub repository URL if keysLoadKeyset() fails.
2021-07-23 03:24:00 -04:00
Pablo Curiel
64ab1705bc Implement JSON configuration handler.
* Thread-safe.
* Provides getter/setter functions for the data types used by nxdumptool's configuration.
* Each setter function writes the modified JSON configuration back to the SD card.
* Configuration is validated on interface initialization. If validation fails, a default JSON template is loaded from the application's RomFS and written back to the SD card.

Other changes:

* Implement directory creation.
* Moved more preprocessor definitions to defines.h.
* Replaced strtok() calls throughout the code with strtok_r() to guarantee thread-safety.
2021-07-21 11:04:18 -04:00
Pablo Curiel
a2a401d36d More progress.
* Updated borealis fork (refer to https://github.com/DarkMatterCore/borealis/commits/nxdumptool-legacy).
* Updated NcaKeyGeneration enum.
* Commented out title task notification.
* Remove unnecessary instant view invalidations.
* NS application records are now retrieved using a loop.
* Fixed text alignment issues in RootView.
* Slightly improved gamecard notifications.
2021-07-19 17:09:58 -04:00
Pablo Curiel
88c1846702 Update libusbhsfs 2021-07-15 12:22:13 -04:00
Pablo Curiel
a1ba535d3b Update requirements. 2021-07-15 12:19:03 -04:00
Pablo Curiel
4cd7a9c782 Smooth ticker for single line labels. 2021-06-30 13:48:30 -04:00
Pablo Curiel
b46740de8a Image class rewrite. 2021-06-27 16:53:58 -04:00
Pablo Curiel
5aa3eb05b7 Add subtle click animation and scrollbars.
Also use DWARFv4 explicitly for debug ELFs.
2021-06-27 14:54:27 -04:00
Pablo Curiel
9528e38d61 Update borealis 2021-06-26 00:05:19 -04:00
Pablo Curiel
a9d8edebcb RootView: display USB host speed. 2021-06-25 19:28:38 -04:00
Pablo Curiel
41ce1f23b2 Update PoCs to reflect the changes made to usbIsReady(). 2021-06-25 17:05:02 -04:00
Pablo Curiel
b23af8c131 usb: modified usbIsReady() to return the speed selected by the host device. 2021-06-25 17:01:15 -04:00
Pablo Curiel
e32782f322 Move notifications to tasks.cpp. 2021-06-25 16:26:20 -04:00
Pablo Curiel
c50840ec7c Move refocus logic to from TitlesTab to LayeredErrorFrame.
* Refocus logic now also takes care of updating Borealis' internal focus stack if a view has been pushed on top of the root view using a ListItem from LayeredErrorFrame.
* Further modifications to Borealis are used to store a pointer to the corresponding sidebar item in LayeredErrorFrame objects.
* The UI code now always uses C++-style casts.
* Git commit information is now displayed next to the nxdumptool release version.
* The applet mode warning is now displayed centered at the top.
* Title IDs in title lists are now displayed at the right of each entry.
2021-06-25 16:13:39 -04:00
Pablo Curiel
c683e77873 Implement TitlesTabPopup class. 2021-06-24 11:53:36 -04:00
Pablo Curiel
9635670007 Repurposed UserTitlesTab class into TitlesTab.
Also implemented system titles tab view in the process.
2021-06-23 21:37:57 -04:00
Pablo Curiel
7a15b4eab8 UserTitleTab: remove the need for a title ID map by extending the ListItem class.
Each ListItem element gets its own internal title ID.
2021-06-23 21:04:28 -04:00
Pablo Curiel
b5507b38a6 Fix building issues.
An unordered map is now being used to hold ListItem + TitleApplicationMetadata pairs.
2021-06-23 19:02:47 -04:00
Pablo Curiel
cfe293af7c Update borealis. 2021-06-23 17:55:11 -04:00
Pablo Curiel
4d1b3660c3 Cherry-pick improvements from the rewrite-yoga branch. 2021-06-23 14:27:06 -04:00
Pablo Curiel
4453e7950f Removed legacy borealis 2021-06-21 16:01:22 -04:00
Pablo Curiel
83f07b3b3b Update borealis 2021-06-21 00:08:48 -04:00
Pablo Curiel
14374885f9 Add gamecard notification. 2021-06-21 00:06:44 -04:00
Pablo Curiel
75ebd97413 UserTitlesTab: display a notification after updating the user titles list. 2021-06-20 23:00:39 -04:00
Pablo Curiel
65a7816f2e Implemented UserTitlesTab class.
* LayeredErrorFrame: both the error frame and the list are now protected instead of private, letting any expanded classes take more control over the them. SetErrorFrameMessage(), AddListView() and the class destructor have been removed because of this change.

* LayeredErrorFrame: removed views vector and simplified the list element focus check carried out before switching to the error frame.
2021-06-20 22:43:40 -04:00
Pablo Curiel
1a2289c396 Simplified LayeredErrorFrame by letting extended classes handle task events. 2021-06-20 16:37:31 -04:00
Pablo Curiel
2ca9878c85 Rename ErrorLayerView -> LayeredErrorFrame. 2021-06-20 13:27:10 -04:00
Pablo Curiel
7af87f50f3 Added templated FocusableItem class. 2021-06-20 13:20:09 -04:00
Pablo Curiel
e621b0473f Added templated ErrorLayerView class. 2021-06-20 03:49:33 -04:00
Pablo Curiel
da2b7daae2 Update libusbhsfs 2021-06-20 00:10:15 -04:00
Pablo Curiel
c70fd0c1c8 RootView: display status labels using StatusInfoTask data. 2021-06-18 14:10:19 -04:00
Pablo Curiel
063d8e9b3f Added StatusInfoTask. 2021-06-18 03:02:23 -04:00
Pablo Curiel
ee17ffca5d title: update hardcoded system title metadata. 2021-06-18 01:34:02 -04:00