Fix crashes
This commit is contained in:
@@ -41,9 +41,10 @@ class ChipsView @JvmOverloads constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
chipStyle = context.obtainStyledAttributes(attrs, R.styleable.ChipsView, defStyleAttr, 0).use {
|
val ta = context.obtainStyledAttributes(attrs, R.styleable.ChipsView, defStyleAttr, 0)
|
||||||
it.getResourceId(R.styleable.ChipsView_chipStyle, R.style.Widget_Kotatsu_Chip)
|
chipStyle = ta.getResourceId(R.styleable.ChipsView_chipStyle, R.style.Widget_Kotatsu_Chip)
|
||||||
}
|
ta.recycle()
|
||||||
|
|
||||||
if (isInEditMode) {
|
if (isInEditMode) {
|
||||||
setChips(
|
setChips(
|
||||||
List(5) {
|
List(5) {
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ private fun getVolumePathBeforeAndroid11(volumeId: String, context: Context): St
|
|||||||
val length = ArrayReflect.getLength(checkNotNull(result))
|
val length = ArrayReflect.getLength(checkNotNull(result))
|
||||||
(0 until length).firstNotNullOfOrNull { i ->
|
(0 until length).firstNotNullOfOrNull { i ->
|
||||||
val storageVolumeElement = ArrayReflect.get(result, i)
|
val storageVolumeElement = ArrayReflect.get(result, i)
|
||||||
val uuid = getUuid.invoke(storageVolumeElement) as String
|
val uuid = getUuid.invoke(storageVolumeElement) as String?
|
||||||
val primary = isPrimary.invoke(storageVolumeElement) as Boolean
|
val primary = isPrimary.invoke(storageVolumeElement) as Boolean
|
||||||
when {
|
when {
|
||||||
primary && volumeId == PRIMARY_VOLUME_NAME -> getPath.invoke(storageVolumeElement) as String
|
primary && volumeId == PRIMARY_VOLUME_NAME -> getPath.invoke(storageVolumeElement) as String
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import org.koitharu.kotatsu.parsers.model.Manga
|
|||||||
import org.koitharu.kotatsu.parsers.model.MangaChapter
|
import org.koitharu.kotatsu.parsers.model.MangaChapter
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaPage
|
import org.koitharu.kotatsu.parsers.model.MangaPage
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaSource
|
import org.koitharu.kotatsu.parsers.model.MangaSource
|
||||||
|
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
|
||||||
import org.koitharu.kotatsu.parsers.util.toFileNameSafe
|
import org.koitharu.kotatsu.parsers.util.toFileNameSafe
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -54,7 +55,8 @@ sealed class LocalMangaInput(
|
|||||||
zip.isFile -> LocalMangaZipInput(zip)
|
zip.isFile -> LocalMangaZipInput(zip)
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
if (input?.getMangaInfo()?.id == manga.id) {
|
val info = runCatchingCancellable { input?.getMangaInfo() }.getOrNull()
|
||||||
|
if (info?.id == manga.id) {
|
||||||
send(input)
|
send(input)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,9 +5,11 @@ import kotlinx.coroutines.sync.Mutex
|
|||||||
import kotlinx.coroutines.sync.withLock
|
import kotlinx.coroutines.sync.withLock
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import okio.Closeable
|
import okio.Closeable
|
||||||
|
import org.koitharu.kotatsu.core.util.ext.printStackTraceDebug
|
||||||
import org.koitharu.kotatsu.local.data.input.LocalMangaInput
|
import org.koitharu.kotatsu.local.data.input.LocalMangaInput
|
||||||
import org.koitharu.kotatsu.parsers.model.Manga
|
import org.koitharu.kotatsu.parsers.model.Manga
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaChapter
|
import org.koitharu.kotatsu.parsers.model.MangaChapter
|
||||||
|
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
|
||||||
import org.koitharu.kotatsu.parsers.util.toFileNameSafe
|
import org.koitharu.kotatsu.parsers.util.toFileNameSafe
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -86,7 +88,11 @@ sealed class LocalMangaOutput(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun canWriteTo(file: File, manga: Manga): Boolean {
|
private suspend fun canWriteTo(file: File, manga: Manga): Boolean {
|
||||||
val info = LocalMangaInput.of(file).getMangaInfo() ?: return false
|
val info = runCatchingCancellable {
|
||||||
|
LocalMangaInput.of(file).getMangaInfo()
|
||||||
|
}.onFailure {
|
||||||
|
it.printStackTraceDebug()
|
||||||
|
}.getOrNull() ?: return false
|
||||||
return info.id == manga.id
|
return info.id == manga.id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user