diff --git a/Libraries/FsLib b/Libraries/FsLib index 6e9443b..bae65f9 160000 --- a/Libraries/FsLib +++ b/Libraries/FsLib @@ -1 +1 @@ -Subproject commit 6e9443be6456f109b940da33a4ee10949ff6aa0e +Subproject commit bae65f98fa5c7a34555d85d92eaf6ba78c4fa3cb diff --git a/Libraries/SDLLib b/Libraries/SDLLib index bf1e6f4..fa7d0f4 160000 --- a/Libraries/SDLLib +++ b/Libraries/SDLLib @@ -1 +1 @@ -Subproject commit bf1e6f40677a48d8b350b93b4aa49d411cb363c3 +Subproject commit fa7d0f456c78d7f94b8519260978419b564610b8 diff --git a/Remote Instructions/GoogleDrive_EN.MD b/Remote Instructions/GoogleDrive_EN.MD deleted file mode 100644 index 1b22efc..0000000 --- a/Remote Instructions/GoogleDrive_EN.MD +++ /dev/null @@ -1,116 +0,0 @@ -# JKSV Google Drive Instructions (2025) - -**Update 2025 / JKSV rewrite:** -JKSV's rewrite returns to using UTF-8 titles for Google Drive like the original JKSV did in the beginning. This change was made by a less skilled developer than myself. I apologize for this. I should have scrutinized this decision, _and the WebDav code in general_, more before merging. I mistakenly assumed using "path safe" titles would only apply to WebDav and not be applied to both. I apologize for any issues this has caused. - -**Note:** Throughout this guide, clickable items in screenshots will be highlighted in **red**. I did the best I could with Markdown's limitations. - ---- - -### 1. Create a new project -1. Go to [Google Cloud Console](https://console.cloud.google.com/welcome/new) and click **Select a project** (top-left corner). -
-Screenshot -

- -

-
-
- -2. Click **New Project** (top-right). Name it `JKSV`. It's fine to leave **Organization** blank. - -
-Screenshots -

- - -

-
-
- -3. Wait for the project to be created, then click **Select Project**. - -
-Screenshot -

- -

-
-
- ---- - -### 2. Enable the Google Drive API -1. Click the **Navigation menu** (top-left) → **APIs & Services** → **Enabled APIs & Services**. -
-Screenshots -

- - -

-
-
- -2. Click **+ Enable APIs and services**, scroll to **Google Workspace**, select **Google Drive API**, and click **Enable**. -
-Screenshots -

- - - -

-
-
- ---- - -### 3. Create OAuth credentials -1. Go to **Credentials** → **+ Create Credentials** → **OAuth client ID**. -
-Screenshot -

- -

-
-
- -2. Click **Configure consent screen**. - - Set the **Application Type** to **TVs and limited input devices**. - - **Download the JSON file containing your client info! Google no longer allows you to download this again after this point!** -
-Screenshots -

- - - -

-
-
- -3. Rename the downloaded file to `client_secret.json` and store it somewhere safe. - ---- - -### 4. Add yourself as a test user -1. Go to **Navigation menu** → **APIs & Services** → **OAuth consent screen** → **Audience**. -2. Click **+ Add users** and add your email. -
-Screenshots -

- - -

-
-
- ---- - -### 5. Copy the JSON to your Switch -- Move the JSON to: `sdmc:/config/JKSV/client_secret.json`. -- The next time JKSV starts with an internet connection, it will guide you to complete the login process. - ---- - -### **6. (OPTIONAL BONUS STEP!)** -- Make a secure backup of `client_secret.json` from your Switch's SD card **after logging in with JKSV**. -- This is recommended if you plan to share saves between multiple Switches due to Google’s OAuth scope policies. diff --git a/source/appstates/BackupMenuState.cpp b/source/appstates/BackupMenuState.cpp index 72e5988..0849e8c 100644 --- a/source/appstates/BackupMenuState.cpp +++ b/source/appstates/BackupMenuState.cpp @@ -127,7 +127,7 @@ void BackupMenuState::refresh() } int index{}; - for (const fslib::DirectoryEntry &entry : m_directoryListing) + for (const fslib::DirectoryEntry &entry : m_directoryListing.list()) { sm_backupMenu->add_option(entry.get_filename()); m_menuEntries.push_back({MenuEntryType::Local, index}); diff --git a/source/data/DataContext.cpp b/source/data/DataContext.cpp index 26ddd3c..33a454a 100644 --- a/source/data/DataContext.cpp +++ b/source/data/DataContext.cpp @@ -171,7 +171,7 @@ void data::DataContext::import_svi_files(sys::Task *task) task->set_status(statusLoadingSvi); - for (const fslib::DirectoryEntry &entry : sviDir) + for (const fslib::DirectoryEntry &entry : sviDir.list()) { const fslib::Path target{sviPath / entry}; fslib::File sviFile{target, FsOpenMode_Read}; diff --git a/source/fs/directory_functions.cpp b/source/fs/directory_functions.cpp index 989b49d..0caa294 100644 --- a/source/fs/directory_functions.cpp +++ b/source/fs/directory_functions.cpp @@ -8,7 +8,7 @@ uint64_t fs::get_directory_total_size(const fslib::Path &targetPath) if (!targetDir.is_open()) { return 0; } uint64_t directorySize = 0; - for (const fslib::DirectoryEntry &entry : targetDir) + for (const fslib::DirectoryEntry &entry : targetDir.list()) { if (entry.is_directory()) { @@ -26,7 +26,7 @@ bool fs::directory_has_contents(const fslib::Path &directoryPath) fslib::Directory testDir{directoryPath}; if (!testDir.is_open()) { return false; } - for (const fslib::DirectoryEntry &entry : testDir) + for (const fslib::DirectoryEntry &entry : testDir.list()) { if (entry.get_filename() != fs::NAME_SAVE_META) { return true; } } diff --git a/source/fs/io.cpp b/source/fs/io.cpp index 6e31483..6c0fcc9 100644 --- a/source/fs/io.cpp +++ b/source/fs/io.cpp @@ -189,7 +189,7 @@ void fs::copy_directory(const fslib::Path &source, const fslib::Path &destinatio fslib::Directory sourceDir{source}; if (error::fslib(sourceDir.is_open())) { return; } - for (const fslib::DirectoryEntry &entry : sourceDir) + for (const fslib::DirectoryEntry &entry : sourceDir.list()) { const char *filename = entry.get_filename(); if (filename == fs::NAME_SAVE_META) { continue; } @@ -217,7 +217,7 @@ void fs::copy_directory_commit(const fslib::Path &source, fslib::Directory sourceDir{source}; if (error::fslib(sourceDir.is_open())) { return; } - for (const fslib::DirectoryEntry &entry : sourceDir) + for (const fslib::DirectoryEntry &entry : sourceDir.list()) { const char *filename = entry.get_filename(); if (filename == fs::NAME_SAVE_META) { continue; } diff --git a/source/fs/zip.cpp b/source/fs/zip.cpp index 43b71f8..25286fd 100644 --- a/source/fs/zip.cpp +++ b/source/fs/zip.cpp @@ -100,7 +100,7 @@ void fs::copy_directory_to_zip(const fslib::Path &source, fs::MiniZip &dest, sys fslib::Directory sourceDir{source}; if (error::fslib(sourceDir.is_open())) { return; } - for (const fslib::DirectoryEntry &entry : sourceDir) + for (const fslib::DirectoryEntry &entry : sourceDir.list()) { const fslib::Path fullSource{source / entry}; if (entry.is_directory()) { fs::copy_directory_to_zip(fullSource, dest, task); }