Browse Source

[android] Update save path getters to not use a fixed path + fix firmware install

pull/3154/head
Kleidis 2 weeks ago
committed by crueter
parent
commit
cd8447a072
  1. 11
      src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt
  2. 4
      src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt
  3. 4
      src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
  4. 6
      src/android/app/src/main/jni/native.cpp

11
src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt

@ -31,6 +31,7 @@ import org.yuzu.yuzu_emu.model.TaskState
import org.yuzu.yuzu_emu.ui.main.MainActivity import org.yuzu.yuzu_emu.ui.main.MainActivity
import org.yuzu.yuzu_emu.utils.DirectoryInitialization import org.yuzu.yuzu_emu.utils.DirectoryInitialization
import org.yuzu.yuzu_emu.utils.FileUtil import org.yuzu.yuzu_emu.utils.FileUtil
import org.yuzu.yuzu_emu.utils.NativeConfig
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
import org.yuzu.yuzu_emu.utils.collect import org.yuzu.yuzu_emu.utils.collect
import java.io.BufferedOutputStream import java.io.BufferedOutputStream
@ -99,11 +100,11 @@ class InstallableFragment : Fragment() {
}, },
export = { export = {
val oldSaveDataFolder = File( val oldSaveDataFolder = File(
"${DirectoryInitialization.userDirectory}/nand" +
NativeConfig.getSaveDir() +
NativeLibrary.getDefaultProfileSaveDataRoot(false) NativeLibrary.getDefaultProfileSaveDataRoot(false)
) )
val futureSaveDataFolder = File( val futureSaveDataFolder = File(
"${DirectoryInitialization.userDirectory}/nand" +
NativeConfig.getSaveDir() +
NativeLibrary.getDefaultProfileSaveDataRoot(true) NativeLibrary.getDefaultProfileSaveDataRoot(true)
) )
if (!oldSaveDataFolder.exists() && !futureSaveDataFolder.exists()) { if (!oldSaveDataFolder.exists() && !futureSaveDataFolder.exists()) {
@ -213,7 +214,7 @@ class InstallableFragment : Fragment() {
} }
val internalSaveFolder = File( val internalSaveFolder = File(
"${DirectoryInitialization.userDirectory}/nand$baseSaveDir"
"${NativeConfig.getSaveDir()}$baseSaveDir"
) )
internalSaveFolder.deleteRecursively() internalSaveFolder.deleteRecursively()
internalSaveFolder.mkdir() internalSaveFolder.mkdir()
@ -290,7 +291,7 @@ class InstallableFragment : Fragment() {
cacheSaveDir.mkdir() cacheSaveDir.mkdir()
val oldSaveDataFolder = File( val oldSaveDataFolder = File(
"${DirectoryInitialization.userDirectory}/nand" +
NativeConfig.getSaveDir() +
NativeLibrary.getDefaultProfileSaveDataRoot(false) NativeLibrary.getDefaultProfileSaveDataRoot(false)
) )
if (oldSaveDataFolder.exists()) { if (oldSaveDataFolder.exists()) {
@ -298,7 +299,7 @@ class InstallableFragment : Fragment() {
} }
val futureSaveDataFolder = File( val futureSaveDataFolder = File(
"${DirectoryInitialization.userDirectory}/nand" +
NativeConfig.getSaveDir() +
NativeLibrary.getDefaultProfileSaveDataRoot(true) NativeLibrary.getDefaultProfileSaveDataRoot(true)
) )
if (futureSaveDataFolder.exists()) { if (futureSaveDataFolder.exists()) {

4
src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt

@ -15,6 +15,7 @@ import org.yuzu.yuzu_emu.YuzuApplication
import org.yuzu.yuzu_emu.activities.EmulationActivity import org.yuzu.yuzu_emu.activities.EmulationActivity
import org.yuzu.yuzu_emu.utils.DirectoryInitialization import org.yuzu.yuzu_emu.utils.DirectoryInitialization
import org.yuzu.yuzu_emu.utils.FileUtil import org.yuzu.yuzu_emu.utils.FileUtil
import org.yuzu.yuzu_emu.utils.NativeConfig
import java.time.LocalDateTime import java.time.LocalDateTime
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
@ -57,8 +58,7 @@ class Game(
}.zip" }.zip"
val saveDir: String val saveDir: String
get() = DirectoryInitialization.userDirectory + "/nand" +
NativeLibrary.getSavePath(programId)
get() = NativeConfig.getSaveDir() + NativeLibrary.getSavePath(programId)
val addonDir: String val addonDir: String
get() = DirectoryInitialization.userDirectory + "/load/" + programIdHex + "/" get() = DirectoryInitialization.userDirectory + "/load/" + programIdHex + "/"

4
src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt

@ -456,7 +456,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
val filterNCA = FilenameFilter { _, dirName -> dirName.endsWith(".nca") } val filterNCA = FilenameFilter { _, dirName -> dirName.endsWith(".nca") }
val firmwarePath = val firmwarePath =
File(DirectoryInitialization.userDirectory + "/nand/system/Contents/registered/")
File(NativeConfig.getNandDir() + "/system/Contents/registered/")
val cacheFirmwareDir = File("${cacheDir.path}/registered/") val cacheFirmwareDir = File("${cacheDir.path}/registered/")
ProgressDialogFragment.newInstance( ProgressDialogFragment.newInstance(
@ -499,7 +499,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
fun uninstallFirmware() { fun uninstallFirmware() {
val firmwarePath = val firmwarePath =
File(DirectoryInitialization.userDirectory + "/nand/system/Contents/registered/")
File(NativeConfig.getNandDir() + "/system/Contents/registered/")
ProgressDialogFragment.newInstance( ProgressDialogFragment.newInstance(
this, this,
R.string.firmware_uninstalling R.string.firmware_uninstalling

6
src/android/app/src/main/jni/native.cpp

@ -1389,12 +1389,12 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getSavePath(JNIEnv* env, jobject j
const auto user_id = manager.GetUser(static_cast<std::size_t>(0)); const auto user_id = manager.GetUser(static_cast<std::size_t>(0));
ASSERT(user_id); ASSERT(user_id);
const auto nandDir = Common::FS::GetEdenPath(Common::FS::EdenPath::NANDDir);
auto vfsNandDir = system.GetFilesystem()->OpenDirectory(Common::FS::PathToUTF8String(nandDir),
const auto saveDir = Common::FS::GetEdenPath(Common::FS::EdenPath::SaveDir);
auto vfsSaveDir = system.GetFilesystem()->OpenDirectory(Common::FS::PathToUTF8String(saveDir),
FileSys::OpenMode::Read); FileSys::OpenMode::Read);
const auto user_save_data_path = FileSys::SaveDataFactory::GetFullPath( const auto user_save_data_path = FileSys::SaveDataFactory::GetFullPath(
{}, vfsNandDir, FileSys::SaveDataSpaceId::User, FileSys::SaveDataType::Account, program_id,
{}, vfsSaveDir, FileSys::SaveDataSpaceId::User, FileSys::SaveDataType::Account, program_id,
user_id->AsU128(), 0); user_id->AsU128(), 0);
return Common::Android::ToJString(env, user_save_data_path); return Common::Android::ToJString(env, user_save_data_path);
} }

Loading…
Cancel
Save