|
|
|
@ -3,15 +3,8 @@ |
|
|
|
|
|
|
|
package org.yuzu.yuzu_emu.features.settings.utils |
|
|
|
|
|
|
|
import android.widget.Toast |
|
|
|
import java.io.* |
|
|
|
import org.ini4j.Wini |
|
|
|
import org.yuzu.yuzu_emu.R |
|
|
|
import org.yuzu.yuzu_emu.YuzuApplication |
|
|
|
import org.yuzu.yuzu_emu.features.settings.model.* |
|
|
|
import org.yuzu.yuzu_emu.utils.DirectoryInitialization |
|
|
|
import org.yuzu.yuzu_emu.utils.Log |
|
|
|
import org.yuzu.yuzu_emu.utils.NativeConfig |
|
|
|
|
|
|
|
/** |
|
|
|
* Contains static methods for interacting with .ini files in which settings are stored. |
|
|
|
@ -19,41 +12,6 @@ import org.yuzu.yuzu_emu.utils.NativeConfig |
|
|
|
object SettingsFile { |
|
|
|
const val FILE_NAME_CONFIG = "config" |
|
|
|
|
|
|
|
/** |
|
|
|
* Saves a Settings HashMap to a given .ini file on disk. If unsuccessful, outputs an error |
|
|
|
* telling why it failed. |
|
|
|
* |
|
|
|
* @param fileName The target filename without a path or extension. |
|
|
|
*/ |
|
|
|
fun saveFile(fileName: String) { |
|
|
|
val ini = getSettingsFile(fileName) |
|
|
|
try { |
|
|
|
val wini = Wini(ini) |
|
|
|
for (specificCategory in Settings.Category.values()) { |
|
|
|
val categoryHeader = NativeConfig.getConfigHeader(specificCategory.ordinal) |
|
|
|
for (setting in Settings.settingsList) { |
|
|
|
if (setting.key!!.isEmpty()) continue |
|
|
|
|
|
|
|
val settingCategoryHeader = |
|
|
|
NativeConfig.getConfigHeader(setting.category.ordinal) |
|
|
|
val iniSetting: String? = wini.get(categoryHeader, setting.key) |
|
|
|
if (iniSetting != null || settingCategoryHeader == categoryHeader) { |
|
|
|
wini.put(settingCategoryHeader, setting.key, setting.valueAsString) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
wini.store() |
|
|
|
} catch (e: IOException) { |
|
|
|
Log.error("[SettingsFile] File not found: " + fileName + ".ini: " + e.message) |
|
|
|
val context = YuzuApplication.appContext |
|
|
|
Toast.makeText( |
|
|
|
context, |
|
|
|
context.getString(R.string.error_saving, fileName, e.message), |
|
|
|
Toast.LENGTH_SHORT |
|
|
|
).show() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
fun getSettingsFile(fileName: String): File = |
|
|
|
File(DirectoryInitialization.userDirectory + "/config/" + fileName + ".ini") |
|
|
|
} |