Minor cleanup

This commit is contained in:
Jobobby04
2022-07-18 09:59:09 -04:00
parent 6f4a46b437
commit cec181f444
8 changed files with 21 additions and 98 deletions
-55
View File
@@ -1,55 +0,0 @@
package exh.ui
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.util.UUID
import kotlin.coroutines.CoroutineContext
import kotlin.coroutines.EmptyCoroutineContext
typealias LoadingHandle = String
/**
* Class used to manage loader UIs
*/
class LoaderManager(parentContext: CoroutineContext = EmptyCoroutineContext) : CoroutineScope {
override val coroutineContext = Dispatchers.Main + parentContext
private val openLoadingHandles = mutableListOf<LoadingHandle>()
var loadingChangeListener: (suspend (newIsLoading: Boolean) -> Unit)? = null
fun openProgressBar(): LoadingHandle {
val (handle, shouldUpdateLoadingStatus) = synchronized(this) {
val handle = UUID.randomUUID().toString()
openLoadingHandles += handle
handle to (openLoadingHandles.size == 1)
}
if (shouldUpdateLoadingStatus) {
launch {
updateLoadingStatus(true)
}
}
return handle
}
@Synchronized
fun closeProgressBar(handle: LoadingHandle?) {
if (handle == null) return
val shouldUpdateLoadingStatus = synchronized(this) {
openLoadingHandles.remove(handle) && openLoadingHandles.isEmpty()
}
if (shouldUpdateLoadingStatus) {
launch {
updateLoadingStatus(false)
}
}
}
private suspend fun updateLoadingStatus(newStatus: Boolean) {
loadingChangeListener?.invoke(newStatus)
}
}
@@ -8,8 +8,7 @@ import eu.kanade.tachiyomi.util.lang.withIOContext
import exh.GalleryAddEvent
import exh.GalleryAdder
import exh.log.xLogE
import exh.util.dropEmpty
import exh.util.trimAll
import exh.util.trimOrNull
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ensureActive
@@ -30,25 +29,21 @@ class BatchAddPresenter : BasePresenter<BatchAddController>() {
fun addGalleries(context: Context, galleries: String) {
eventFlow = MutableSharedFlow(1)
val regex =
"""[0-9]*?\.[a-z0-9]*?:""".toRegex()
val testedGalleries = if (regex.containsMatchIn(galleries)) {
val splitGalleries = if (ehVisitedRegex.containsMatchIn(galleries)) {
val url = if (preferences.enableExhentai().get()) {
"https://exhentai.org/g/"
} else {
"https://e-hentai.org/g/"
}
regex.findAll(galleries).map { galleryKeys ->
ehVisitedRegex.findAll(galleries).map { galleryKeys ->
val linkParts = galleryKeys.value.split(".")
url + linkParts[0] + "/" + linkParts[1].replace(":", "")
}.joinToString(separator = "\n")
}.toList()
} else {
galleries
galleries.split("\n")
.mapNotNull(String::trimOrNull)
}
val splitGalleries = testedGalleries.split("\n")
.trimAll()
.dropEmpty()
progressFlow.value = 0
progressTotalFlow.value = splitGalleries.size
@@ -92,5 +87,7 @@ class BatchAddPresenter : BasePresenter<BatchAddController>() {
const val STATE_IDLE = 0
const val STATE_INPUT_TO_PROGRESS = 1
const val STATE_PROGRESS_TO_INPUT = 2
val ehVisitedRegex = """[0-9]*?\.[a-z0-9]*?:""".toRegex()
}
}