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

View File

@ -349,7 +349,7 @@ class LibraryUpdateService(
}
}
LibraryGroup.BY_SOURCE -> {
val sourceExtra = groupExtra.nullIfBlank()?.toIntOrNull()
val sourceExtra = groupExtra?.nullIfBlank()?.toIntOrNull()
val source = libraryManga.map { it.source }
.distinct()
.sorted()

View File

@ -124,7 +124,7 @@ open class SourceFeedController :
}
override fun onSearchViewQueryTextSubmit(query: String?) {
onBrowseClick(query.nullIfBlank())
onBrowseClick(query?.nullIfBlank())
}
override fun onSearchViewQueryTextChange(newText: String?) {

View File

@ -54,7 +54,6 @@ import exh.source.PERV_EDEN_IT_SOURCE_ID
import exh.source.isEhBasedManga
import exh.source.mangaDexSourceIds
import exh.source.nHentaiSourceIds
import exh.ui.LoaderManager
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancel
import kotlinx.coroutines.delay
@ -121,7 +120,6 @@ class LibraryController(
// Favorites
private var favoritesSyncJob: Job? = null
val loaderManager = LoaderManager()
// <-- EH
init {
@ -462,7 +460,7 @@ class LibraryController(
.setTitle(R.string.favorites_sync)
.setMessage(R.string.favorites_sync_conformation_message)
.setPositiveButton(android.R.string.ok) { _, _ ->
presenter.favoritesSync.runSync()
presenter.runSync()
}
.setNegativeButton(android.R.string.cancel, null)
.show()

View File

@ -168,14 +168,13 @@ class LibraryPresenter(
var groupType = preferences.groupLibraryBy().get()
private val libraryIsGrouped
get() = groupType != LibraryGroup.UNGROUPED
private val loggedServices by lazy { trackManager.services.filter { it.isLogged } }
private val services = trackManager.services.associate { service ->
private val services by lazy {
trackManager.services.associate { service ->
service.id to context.getString(service.nameRes())
}
}
/**
* Relay used to apply the UI update to the last emission of the library.
@ -570,7 +569,7 @@ class LibraryPresenter(
var editedCategories = categories
val items = if (groupType == LibraryGroup.BY_DEFAULT) {
map
} else if (!libraryIsGrouped) {
} else if (groupType == LibraryGroup.UNGROUPED) {
editedCategories = listOf(Category(0, "All", 0, 0))
mapOf(
0L to map.values.flatten().distinctBy { it.manga.id },
@ -1123,9 +1122,8 @@ class LibraryPresenter(
return map to categories
}
override fun onDestroy() {
super.onDestroy()
favoritesSync.onDestroy()
fun runSync() {
favoritesSync.runSync(presenterScope)
}
// SY <--
}

View File

@ -37,8 +37,6 @@ import exh.util.ignore
import exh.util.wifiManager
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.launch
import okhttp3.FormBody
@ -60,8 +58,6 @@ class FavoritesSyncHelper(val context: Context) {
private val prefs: PreferencesHelper by injectLazy()
private val scope = CoroutineScope(Job() + Dispatchers.Main)
private val exh by lazy {
Injekt.get<SourceManager>().get(EXH_SOURCE_ID) as? EHentai
?: EHentai(0, true, context)
@ -81,7 +77,7 @@ class FavoritesSyncHelper(val context: Context) {
val status: MutableStateFlow<FavoritesSyncStatus> = MutableStateFlow(FavoritesSyncStatus.Idle(context))
@Synchronized
fun runSync() {
fun runSync(scope: CoroutineScope) {
if (status.value !is FavoritesSyncStatus.Idle) {
return
}
@ -407,10 +403,6 @@ class FavoritesSyncHelper(val context: Context) {
class IgnoredException : RuntimeException()
fun onDestroy() {
scope.cancel()
}
companion object {
private val THROTTLE_WARN = 1.seconds
}

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)
}
}

View File

@ -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()
}
}

View File

@ -10,13 +10,6 @@ fun String.removeArticles(): String {
return replace(articleRegex, "")
}
fun String.trimOrNull(): String? {
val trimmed = trim()
return trimmed.ifBlank { null }
}
fun String.trimOrNull() = trim().nullIfBlank()
fun String?.nullIfBlank(): String? = if (isNullOrBlank()) {
null
} else {
this
}
fun String.nullIfBlank(): String? = ifBlank { null }