nullIfEmpty

This commit is contained in:
Jobobby04 2021-05-25 23:34:56 -04:00
parent 9e63f32a82
commit 33b6912c22
9 changed files with 19 additions and 11 deletions

View File

@ -247,7 +247,7 @@ class MangaDex(delegate: HttpSource, val context: Context) :
}
suspend fun getTrackingAndMangaInfo(track: Track): Pair<Track, MangaDexSearchMetadata?> {
return mangaHandler.getTrackingInfo(track, mdList)
return mangaHandler.getTrackingInfo(track)
}
override suspend fun updateFollowStatus(mangaID: String, followStatus: FollowStatus): Boolean {

View File

@ -18,6 +18,7 @@ import exh.metadata.metadata.base.insertFlatMetadata
import exh.util.dropEmpty
import exh.util.executeOnIO
import exh.util.floor
import exh.util.nullIfEmpty
import okhttp3.OkHttpClient
import okhttp3.Response
import tachiyomi.source.model.ChapterInfo
@ -71,7 +72,7 @@ class ApiMangaParser(val client: OkHttpClient, private val lang: String) {
val networkManga = networkApiManga.data.attributes
mdUuid = networkApiManga.data.id
title = MdUtil.cleanString(networkManga.title[lang] ?: networkManga.title["en"]!!)
altTitles = networkManga.altTitles.mapNotNull { it[lang] }
altTitles = networkManga.altTitles.mapNotNull { it[lang] }.nullIfEmpty()
val coverUrl = MdUtil.formThumbUrl(networkApiManga.data.id)
/*val coverUrlId = networkApiManga.relationships.firstOrNull { it.type == "cover_art" }?.id

View File

@ -117,7 +117,7 @@ class MangaHandler(
}
}
suspend fun getTrackingInfo(track: Track, mdList: MdList): Pair<Track, MangaDexSearchMetadata?> {
suspend fun getTrackingInfo(track: Track): Pair<Track, MangaDexSearchMetadata?> {
return withIOContext {
val metadata = async {
val mangaUrl = MdUtil.buildMangaUrl(MdUtil.getMangaId(track.tracking_url))

View File

@ -3,6 +3,7 @@ package exh.metadata.metadata
import android.content.Context
import eu.kanade.tachiyomi.R
import exh.metadata.metadata.base.RaisedSearchMetadata
import exh.util.nullIfEmpty
import kotlinx.serialization.Serializable
import tachiyomi.source.model.MangaInfo
@ -41,7 +42,7 @@ class EightMusesSearchMetadata : RaisedSearchMetadata() {
return with(context) {
listOfNotNull(
title?.let { getString(R.string.title) to it },
path.takeUnless { it.isEmpty() }?.joinToString("/", prefix = "/")
path.nullIfEmpty()?.joinToString("/", prefix = "/")
?.let { getString(R.string.path) to it },
thumbnailUrl?.let { getString(R.string.thumbnail_url) to it }
)

View File

@ -4,6 +4,7 @@ import android.content.Context
import eu.kanade.tachiyomi.R
import exh.metadata.MetadataUtil
import exh.metadata.metadata.base.RaisedSearchMetadata
import exh.util.nullIfEmpty
import kotlinx.serialization.Serializable
import tachiyomi.source.model.MangaInfo
import java.util.Date
@ -67,12 +68,12 @@ class HitomiSearchMetadata : RaisedSearchMetadata() {
hlId?.let { getString(R.string.id) to it },
title?.let { getString(R.string.title) to it },
thumbnailUrl?.let { getString(R.string.thumbnail_url) to it },
artists.takeUnless { it.isEmpty() }?.joinToString()?.let { getString(R.string.artist) to it },
artists.nullIfEmpty()?.joinToString()?.let { getString(R.string.artist) to it },
group?.let { getString(R.string.group) to it },
genre?.let { getString(R.string.genre) to it },
language?.let { getString(R.string.language) to it },
series.takeUnless { it.isEmpty() }?.joinToString()?.let { getString(R.string.series) to it },
characters.takeUnless { it.isEmpty() }?.joinToString()?.let { getString(R.string.characters) to it },
series.nullIfEmpty()?.joinToString()?.let { getString(R.string.series) to it },
characters.nullIfEmpty()?.joinToString()?.let { getString(R.string.characters) to it },
uploadDate?.let { getString(R.string.date_posted) to MetadataUtil.EX_DATE_FORMAT.format(Date(it)) }
)
}

View File

@ -5,6 +5,7 @@ import androidx.core.net.toUri
import eu.kanade.tachiyomi.R
import exh.metadata.metadata.base.RaisedSearchMetadata
import exh.metadata.metadata.base.RaisedTitle
import exh.util.nullIfEmpty
import kotlinx.serialization.Serializable
import tachiyomi.source.model.MangaInfo
@ -70,7 +71,7 @@ class PervEdenSearchMetadata : RaisedSearchMetadata() {
url?.let { getString(R.string.url) to it },
thumbnailUrl?.let { getString(R.string.thumbnail_url) to it },
title?.let { getString(R.string.title) to it },
altTitles.takeUnless { it.isEmpty() }?.joinToString()
altTitles.nullIfEmpty()?.joinToString()
?.let { getString(R.string.alt_titles) to it },
artist?.let { getString(R.string.artist) to it },
genre?.let { getString(R.string.genre) to it },

View File

@ -6,6 +6,7 @@ import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.source.model.SManga
import exh.metadata.MetadataUtil
import exh.metadata.metadata.base.RaisedSearchMetadata
import exh.util.nullIfEmpty
import kotlinx.serialization.Serializable
import tachiyomi.source.model.MangaInfo
import java.text.SimpleDateFormat
@ -80,8 +81,8 @@ class TsuminoSearchMetadata : RaisedSearchMetadata() {
category?.let { getString(R.string.genre) to it },
collection?.let { getString(R.string.collection) to it },
group?.let { getString(R.string.group) to it },
parody.takeUnless { it.isEmpty() }?.joinToString()?.let { getString(R.string.parodies) to it },
character.takeUnless { it.isEmpty() }?.joinToString()?.let { getString(R.string.characters) to it },
parody.nullIfEmpty()?.joinToString()?.let { getString(R.string.parodies) to it },
character.nullIfEmpty()?.joinToString()?.let { getString(R.string.characters) to it },
)
}
}

View File

@ -0,0 +1,3 @@
package exh.util
fun <C : Collection<R>, R> C.nullIfEmpty() = ifEmpty { null }

View File

@ -14,7 +14,7 @@ fun Manga.shouldDeleteChapters(db: DatabaseHelper, prefs: PreferencesHelper): Bo
val categoriesForManga =
db.getCategoriesForManga(this).executeAsBlocking()
.mapNotNull { it.id }
.takeUnless { it.isEmpty() } ?: listOf(0)
.ifEmpty { listOf(0) }
// We want to return false if there is intersects
// so we use isEmpty to return true if its empty