diff --git a/Core/System.cpp b/Core/System.cpp index 777804999f..a7a96c713f 100644 --- a/Core/System.cpp +++ b/Core/System.cpp @@ -564,10 +564,6 @@ void InitSysDirectories() { File::CreateDir(g_Config.memStickDirectory + "PSP/GAME"); File::CreateDir(g_Config.memStickDirectory + "PSP/SAVEDATA"); File::CreateDir(g_Config.memStickDirectory + "PSP/PPSSPP_STATE"); -#ifdef ANDROID - // Avoid media scanners in PPSSPP_STATE directory - File::CreateEmptyFile(g_Config.memStickDirectory + "PSP/PPSSPP_STATE/.nomedia"); -#endif if (g_Config.currentDirectory.empty()) { g_Config.currentDirectory = GetSysDirectory(DIRECTORY_GAME); diff --git a/UI/NativeApp.cpp b/UI/NativeApp.cpp index 24277f9759..5662d5c024 100644 --- a/UI/NativeApp.cpp +++ b/UI/NativeApp.cpp @@ -326,6 +326,19 @@ static void PostLoadConfig() { i18nrepo.LoadIni(g_Config.sLanguageIni, langOverridePath); } +void CreateDirectoriesAndroid() { + // On Android, create a PSP directory tree in the external_dir, + // to hopefully reduce confusion a bit. + ILOG("Creating %s", (g_Config.memStickDirectory + "PSP").c_str()); + File::CreateDir((g_Config.memStickDirectory + "PSP").c_str()); + File::CreateDir((g_Config.memStickDirectory + "PSP/SAVEDATA").c_str()); + File::CreateDir((g_Config.memStickDirectory + "PSP/PPSSPP_STATE").c_str()); + File::CreateDir((g_Config.memStickDirectory + "PSP/GAME").c_str()); + // Avoid media scanners in PPSSPP_STATE and SAVEDATA directories + File::CreateEmptyFile(g_Config.memStickDirectory + "PSP/PPSSPP_STATE/.nomedia"); + File::CreateEmptyFile(g_Config.memStickDirectory + "PSP/SAVEDATA/.nomedia"); +} + void NativeInit(int argc, const char *argv[], const char *savegame_dir, const char *external_dir, const char *cache_dir, bool fs) { net::Init(); // This needs to happen before we load the config. So on Windows we also run it in Main. It's fine to call multiple times. @@ -409,17 +422,9 @@ void NativeInit(int argc, const char *argv[], const char *savegame_dir, const ch LogManager *logman = LogManager::GetInstance(); #ifdef __ANDROID__ - // TODO: This is also done elsewhere. Remove? - // On Android, create a PSP directory tree in the external_dir, - // to hopefully reduce confusion a bit. - ILOG("Creating %s", (g_Config.memStickDirectory + "PSP").c_str()); - File::CreateDir((g_Config.memStickDirectory + "PSP").c_str()); - File::CreateDir((g_Config.memStickDirectory + "PSP/SAVEDATA").c_str()); - File::CreateDir((g_Config.memStickDirectory + "PSP/GAME").c_str()); + CreateDirectoriesAndroid(); #endif - - const char *fileToLog = 0; const char *stateToLoad = 0; @@ -963,10 +968,12 @@ void HandleGlobalMessage(const std::string &msg, const std::string &value) { osm.Show(sy->T("WARNING: Battery save mode is on"), 2.0f, 0xFFFFFF, -1, true, "core_powerSaving"); #endif } - Core_SetPowerSaving(value != "false"); } if (msg == "permission_granted" && value == "storage") { +#ifdef __ANDROID__ + CreateDirectoriesAndroid(); +#endif // We must have failed to load the config before, so load it now to avoid overwriting the old config // with a freshly generated one. ILOG("Reloading config after storage permission grant.");