From 33b6912c222459580fbe879fe2551b000c51a9a4 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Tue, 25 May 2021 23:34:56 -0400 Subject: [PATCH] nullIfEmpty --- .../java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt | 2 +- app/src/main/java/exh/md/handlers/ApiMangaParser.kt | 3 ++- app/src/main/java/exh/md/handlers/MangaHandler.kt | 2 +- .../java/exh/metadata/metadata/EightMusesSearchMetadata.kt | 3 ++- .../java/exh/metadata/metadata/HitomiSearchMetadata.kt | 7 ++++--- .../java/exh/metadata/metadata/PervEdenSearchMetadata.kt | 3 ++- .../java/exh/metadata/metadata/TsuminoSearchMetadata.kt | 5 +++-- app/src/main/java/exh/util/ListUtil.kt | 3 +++ app/src/main/java/exh/util/MangaExtensions.kt | 2 +- 9 files changed, 19 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/exh/util/ListUtil.kt diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt index b38f8d142..54e023fe2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MangaDex.kt @@ -247,7 +247,7 @@ class MangaDex(delegate: HttpSource, val context: Context) : } suspend fun getTrackingAndMangaInfo(track: Track): Pair { - return mangaHandler.getTrackingInfo(track, mdList) + return mangaHandler.getTrackingInfo(track) } override suspend fun updateFollowStatus(mangaID: String, followStatus: FollowStatus): Boolean { diff --git a/app/src/main/java/exh/md/handlers/ApiMangaParser.kt b/app/src/main/java/exh/md/handlers/ApiMangaParser.kt index 0683f33be..81c3461a5 100644 --- a/app/src/main/java/exh/md/handlers/ApiMangaParser.kt +++ b/app/src/main/java/exh/md/handlers/ApiMangaParser.kt @@ -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 diff --git a/app/src/main/java/exh/md/handlers/MangaHandler.kt b/app/src/main/java/exh/md/handlers/MangaHandler.kt index 7982135fc..56b4a62db 100644 --- a/app/src/main/java/exh/md/handlers/MangaHandler.kt +++ b/app/src/main/java/exh/md/handlers/MangaHandler.kt @@ -117,7 +117,7 @@ class MangaHandler( } } - suspend fun getTrackingInfo(track: Track, mdList: MdList): Pair { + suspend fun getTrackingInfo(track: Track): Pair { return withIOContext { val metadata = async { val mangaUrl = MdUtil.buildMangaUrl(MdUtil.getMangaId(track.tracking_url)) diff --git a/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt index cc030f7d7..00e843b7a 100644 --- a/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt @@ -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 } ) diff --git a/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt index b46af4169..130cc7d67 100644 --- a/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt @@ -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)) } ) } diff --git a/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt index 0ab64860d..0e765fc48 100644 --- a/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt @@ -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 }, diff --git a/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt index 1280ab507..6b7189585 100644 --- a/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt @@ -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 }, ) } } diff --git a/app/src/main/java/exh/util/ListUtil.kt b/app/src/main/java/exh/util/ListUtil.kt new file mode 100644 index 000000000..0bdc4ed12 --- /dev/null +++ b/app/src/main/java/exh/util/ListUtil.kt @@ -0,0 +1,3 @@ +package exh.util + +fun , R> C.nullIfEmpty() = ifEmpty { null } diff --git a/app/src/main/java/exh/util/MangaExtensions.kt b/app/src/main/java/exh/util/MangaExtensions.kt index 84b60e55a..3e55a1ae7 100644 --- a/app/src/main/java/exh/util/MangaExtensions.kt +++ b/app/src/main/java/exh/util/MangaExtensions.kt @@ -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