// Android paths void setPaths() { PATH_CONF = std::string(SDL_AndroidGetInternalStoragePath()) + "/config"; PATH_USER = std::string(SDL_AndroidGetInternalStoragePath()) + "/userdata"; createDir(PATH_CONF); createDir(PATH_USER); createDir(PATH_USER + "/mods"); createDir(PATH_USER + "/saves"); std::string mods_folder = "data/org.flare.app/files"; if (SDL_AndroidGetExternalStorageState() != 0) { PATH_DATA = std::string(SDL_AndroidGetExternalStoragePath()); } else if (dirExists("/sdcard/Android")) { PATH_DATA = "/sdcard/Android/" + mods_folder; } else if (dirExists("/mnt/sdcard/Android")) { PATH_DATA = "/mnt/sdcard/Android/" + mods_folder; } else if (dirExists("storage/sdcard0/Android")) { PATH_DATA = "/storage/sdcard0/Android/" + mods_folder; } else if (dirExists("/storage/emulated/0/Android")) { PATH_DATA = "/storage/emulated/0/Android/" + mods_folder; } else if (dirExists("/storage/emulated/legacy/Android")) { PATH_DATA = "/storage/emulated/legacy/Android/" + mods_folder; } else { logError("Settings: Android external storage unavailable: %s", SDL_GetError()); } PATH_CONF = PATH_CONF + "/"; PATH_USER = PATH_USER + "/"; PATH_DATA = PATH_DATA + "/"; }
void PlatformSetPaths() { const std::string externalSDList[] = { "/mnt/extSdCard/Android", "/storage/extSdCard/Android" }; const int externalSDList_size = 2; PATH_CONF = std::string(SDL_AndroidGetInternalStoragePath()) + "/config"; const std::string package_name = AndroidGetPackageName(); const std::string user_folder = "data/" + package_name + "/files"; if (SDL_AndroidGetExternalStorageState() != 0) { PATH_USER = std::string(SDL_AndroidGetExternalStoragePath()); } // NOTE: Next condition shouldn't be needed, but in theory SDL_AndroidGetExternalStoragePath() can fail. else { const std::string internalSDList[] = { "/sdcard/Android", "/mnt/sdcard/Android", "/storage/sdcard0/Android", "/storage/emulated/0/Android", "/storage/emulated/legacy/Android", }; const int internalSDList_size = 5; for (int i = 0; i < internalSDList_size; i++) { if (dirExists(internalSDList[i])) { PATH_USER = internalSDList[i] + "/" + user_folder; break; } } } if (PATH_USER.empty()) { logError("Settings: Android external storage unavailable: %s", SDL_GetError()); } for (int i = 0; i < externalSDList_size; i++) { if (dirExists(externalSDList[i])) { PATH_DATA = externalSDList[i] + "/" + user_folder; if (!dirExists(PATH_DATA)) { createDir(externalSDList[i] + "/data" + package_name); createDir(externalSDList[i] + "/data" + package_name + "/files"); } break; } } PATH_USER += "/userdata"; createDir(PATH_CONF); createDir(PATH_USER); createDir(PATH_USER + "/mods"); createDir(PATH_USER + "/saves"); PATH_CONF += "/"; PATH_USER += "/"; PATH_DATA += "/"; }