srctree

Robin Linden parent a1404c73 45159053
Simplify SaveManager

inlinesplit
domain/src/main/kotlin/tox/SaveManager.kt added: 7, removed: 9, total 0
@@ -22,23 +22,21 @@ interface SaveManager {
class AndroidSaveManager @Inject constructor(val context: Context) : SaveManager {
private val saveDir get() = context.filesDir
 
override fun list(): List<String> = saveDir.listFiles()?.let { saves ->
saves.filter { it.extension == "tox" }.map { it.nameWithoutExtension }
} ?: listOf()
override fun list(): List<String> =
saveDir.listFiles()?.filter { it.extension == "tox" }?.map(File::nameWithoutExtension) ?: listOf()
 
override fun save(pk: PublicKey, saveData: ByteArray) = AtomicFile(File("$saveDir/${pk.string()}.tox")).run {
override fun save(pk: PublicKey, saveData: ByteArray) = AtomicFile(fileFor(pk)).run {
Log.i(TAG, "Saving profile to $baseFile")
writeBytes(saveData)
}
 
override fun load(pk: PublicKey): ByteArray? = tryReadBytes(File(pathTo(pk)))
 
private fun tryReadBytes(saveFile: File): ByteArray? =
override fun load(pk: PublicKey): ByteArray? = fileFor(pk).let { saveFile ->
if (saveFile.exists()) {
saveFile.readBytes()
} else {
null
}
}
 
private fun pathTo(publicKey: PublicKey) = "$saveDir/${publicKey.string()}.tox"
private fun fileFor(pk: PublicKey) = File("$saveDir/${pk.string()}.tox")
}