diff --git a/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt b/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt index e1f7acc7..816ad127 100644 --- a/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt +++ b/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt @@ -264,18 +264,21 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene } binding.importExportSettings.setOnClickListener { + var i = 0 val dialog = AlertDialog.Builder(this, R.style.MyPopup) .setTitle("Import/Export Settings") .setSingleChoiceItems(Location.entries.map { it.name }.toTypedArray(), 0) { dialog, which -> selectedImpExp = Location.entries[which].name + i = which } .setPositiveButton("Import...") { dialog, _ -> openDocumentLauncher.launch("Select a file") dialog.dismiss() } - .setNegativeButton("Export...") { dialog, which -> - savePrefsToDownloads(Location.entries[which].name, - PrefManager.exportAllPrefs(Location.entries[which]), + .setNegativeButton("Export...") { dialog, _ -> + if (i < 0) return@setNegativeButton + savePrefsToDownloads(Location.entries[i].name, + PrefManager.exportAllPrefs(Location.entries[i]), this@SettingsActivity) dialog.dismiss() } diff --git a/app/src/main/java/ani/dantotsu/settings/saving/PrefManager.kt b/app/src/main/java/ani/dantotsu/settings/saving/PrefManager.kt index 28a07c79..9584f743 100644 --- a/app/src/main/java/ani/dantotsu/settings/saving/PrefManager.kt +++ b/app/src/main/java/ani/dantotsu/settings/saving/PrefManager.kt @@ -94,12 +94,12 @@ object PrefManager { return try { val pref = getPrefLocation(prefName.data.prefLocation) when (prefName.data.type) { - Boolean::class -> pref.getBoolean(prefName.name, prefName.data.default as Boolean) as T? - Int::class -> pref.getInt(prefName.name, prefName.data.default as Int) as T? - Float::class -> pref.getFloat(prefName.name, prefName.data.default as Float) as T? - Long::class -> pref.getLong(prefName.name, prefName.data.default as Long) as T? - String::class -> pref.getString(prefName.name, prefName.data.default as String?) as T? - Set::class -> convertFromStringSet(pref.getStringSet(prefName.name, null), prefName.data.default) as T? + Boolean::class -> pref.getBoolean(prefName.name, default as Boolean) as T? + Int::class -> pref.getInt(prefName.name, default as Int) as T? + Float::class -> pref.getFloat(prefName.name, default as Float) as T? + Long::class -> pref.getLong(prefName.name, default as Long) as T? + String::class -> pref.getString(prefName.name, default as String?) as T? + Set::class -> convertFromStringSet(pref.getStringSet(prefName.name, null), default) as T? else -> deserialzeClass(prefName.name, default) } } catch (e: Exception) {