mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-14 18:06:39 -04:00
#2361 improved file name storing
This commit is contained in:
parent
e797930fcb
commit
01e2e73876
@ -158,34 +158,27 @@ open class KiwixWebView @SuppressLint("SetJavaScriptEnabled") constructor(
|
|||||||
val url = msg.data["url"] as? String
|
val url = msg.data["url"] as? String
|
||||||
val src = msg.data["src"] as? String
|
val src = msg.data["src"] as? String
|
||||||
if (url != null || src != null) {
|
if (url != null || src != null) {
|
||||||
var fileName = getDecodedFileName(url, src)
|
val fileName = getDecodedFileName(url, src)
|
||||||
val dotIndex = fileName.lastIndexOf('.')
|
|
||||||
var root =
|
var root =
|
||||||
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
|
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
|
||||||
if (instance.externalMediaDirs.isNotEmpty()) {
|
if (instance.externalMediaDirs.isNotEmpty()) {
|
||||||
root = instance.externalMediaDirs[0]
|
root = instance.externalMediaDirs[0]
|
||||||
}
|
}
|
||||||
var storageDir = File(root, fileName)
|
val fileToSave = sequence {
|
||||||
sequence {
|
yield(File(root, fileName))
|
||||||
yieldAll(generateSequence(1) { it + 1 })
|
yieldAll(generateSequence(1) { it + 1 }.map {
|
||||||
}.map {
|
File(
|
||||||
fileName = fileName.replace(".", "_$it")
|
root,
|
||||||
storageDir = File(root, fileName)
|
fileName.replace(".", "_$it.")
|
||||||
return@map storageDir
|
)
|
||||||
|
})
|
||||||
}.first { !it.exists() }
|
}.first { !it.exists() }
|
||||||
// generateSequence(1) { it + 1 }
|
|
||||||
// .map {
|
|
||||||
// newUrl = fileName.substring(0, dotIndex) + "_" + it + fileName.substring(dotIndex)
|
|
||||||
// storageDir = File(root, newUrl)
|
|
||||||
// return@map storageDir
|
|
||||||
// }
|
|
||||||
// .first { !it.exists() }
|
|
||||||
val source = Uri.parse(src)
|
val source = Uri.parse(src)
|
||||||
try {
|
try {
|
||||||
zimReaderContainer.load("$source").data.use { inputStream ->
|
zimReaderContainer.load("$source").data.use { inputStream ->
|
||||||
storageDir.outputStream().use { inputStream.copyTo(it) }
|
fileToSave.outputStream().use { inputStream.copyTo(it) }
|
||||||
}
|
}
|
||||||
instance.toast(instance.getString(R.string.save_media_saved, fileName))
|
instance.toast(instance.getString(R.string.save_media_saved, fileToSave.name))
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
Log.w("kiwix", "Couldn't save image", e)
|
Log.w("kiwix", "Couldn't save image", e)
|
||||||
instance.toast(R.string.save_media_error)
|
instance.toast(R.string.save_media_error)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user