mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-15 02:18:04 -04:00
#2361 used sequence method
This commit is contained in:
parent
6572502778
commit
e797930fcb
@ -151,14 +151,14 @@ open class KiwixWebView @SuppressLint("SetJavaScriptEnabled") constructor(
|
|||||||
url?.substringAfterLast("/", "")
|
url?.substringAfterLast("/", "")
|
||||||
?.takeIf { it.contains(".") }
|
?.takeIf { it.contains(".") }
|
||||||
?: src?.substringAfterLast("/", "")
|
?: src?.substringAfterLast("/", "")
|
||||||
?.substringAfterLast("%3A", "") ?: ""
|
?.substringAfterLast("%3A") ?: ""
|
||||||
|
|
||||||
@SuppressWarnings("NestedBlockDepth")
|
@SuppressWarnings("NestedBlockDepth")
|
||||||
override fun handleMessage(msg: Message) {
|
override fun handleMessage(msg: Message) {
|
||||||
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) {
|
||||||
val fileName = getDecodedFileName(url, src)
|
var fileName = getDecodedFileName(url, src)
|
||||||
val dotIndex = fileName.lastIndexOf('.')
|
val dotIndex = fileName.lastIndexOf('.')
|
||||||
var root =
|
var root =
|
||||||
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
|
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
|
||||||
@ -166,19 +166,26 @@ open class KiwixWebView @SuppressLint("SetJavaScriptEnabled") constructor(
|
|||||||
root = instance.externalMediaDirs[0]
|
root = instance.externalMediaDirs[0]
|
||||||
}
|
}
|
||||||
var storageDir = File(root, fileName)
|
var storageDir = File(root, fileName)
|
||||||
var newUrl = fileName
|
sequence {
|
||||||
var i = 2
|
yieldAll(generateSequence(1) { it + 1 })
|
||||||
while (storageDir.exists()) {
|
}.map {
|
||||||
newUrl = fileName.substring(0, dotIndex) + "_" + i + fileName.substring(dotIndex)
|
fileName = fileName.replace(".", "_$it")
|
||||||
storageDir = File(root, newUrl)
|
storageDir = File(root, fileName)
|
||||||
i++
|
return@map storageDir
|
||||||
}
|
}.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) }
|
storageDir.outputStream().use { inputStream.copyTo(it) }
|
||||||
}
|
}
|
||||||
instance.toast(instance.getString(R.string.save_media_saved, newUrl))
|
instance.toast(instance.getString(R.string.save_media_saved, fileName))
|
||||||
} 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