diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/CategoryTypeMapping.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/CategoryTypeMapping.kt index c9c235940..1fd8e31e8 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/CategoryTypeMapping.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/CategoryTypeMapping.kt @@ -58,7 +58,7 @@ class CategoryGetResolver : DefaultGetResolver() { // SY --> val orderString = cursor.getString(cursor.getColumnIndex(COL_MANGA_ORDER)) - mangaOrder = orderString?.split("/")?.mapNotNull { it.toLongOrNull() } ?: emptyList() + mangaOrder = orderString?.split("/")?.mapNotNull { it.toLongOrNull() }.orEmpty() // SY <-- } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt index 2cde20893..c91c6e994 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt @@ -229,13 +229,13 @@ class DownloadManager(/* SY private */ val context: Context) { * return the list of all manga folders */ fun getMangaFolders(source: Source): List { - return provider.findSourceDir(source)?.listFiles()?.toList() ?: emptyList() + return provider.findSourceDir(source)?.listFiles()?.toList().orEmpty() } /** * Deletes the directories of chapters that were read or have no match * - * @param chapters the list of chapters to delete. + * @param allChapters the list of chapters to delete. * @param manga the manga of the chapters. * @param source the source of the chapters. */ diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/UrlImportableSource.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/UrlImportableSource.kt index 1f022a1fb..6fd177157 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/UrlImportableSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/UrlImportableSource.kt @@ -9,7 +9,7 @@ interface UrlImportableSource : Source { val matchingHosts: List fun matchesUri(uri: Uri): Boolean { - return (uri.host ?: "").toLowerCase() in matchingHosts + return uri.host.orEmpty().toLowerCase() in matchingHosts } // This method is allowed to block for IO if necessary diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt index c70f9ca80..acf971b71 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/MergedSource.kt @@ -90,7 +90,7 @@ class MergedSource : SuspendHttpSource() { // TODO more chapter dedupe return db.getChaptersByMergedMangaId(manga.id!!).asRxObservable() .map { chapterList -> - val mangaReferences = runBlocking(Dispatchers.IO) { db.getMergedMangaReferences(manga.id!!).await() } ?: emptyList() + val mangaReferences = runBlocking(Dispatchers.IO) { db.getMergedMangaReferences(manga.id!!).await().orEmpty() } if (editScanlators) { val sources = mangaReferences.map { sourceManager.getOrStub(it.mangaSourceId) to it.mangaId } chapterList.onEach { chapter -> diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HBrowse.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HBrowse.kt index 3240fcfcc..87ab16052 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HBrowse.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HBrowse.kt @@ -71,7 +71,7 @@ class HBrowse(delegate: HttpSource, val context: Context) : private fun parseIntoTables(doc: Document): Map> { return doc.select("#main > .listTable").map { ele -> - val tableName = ele.previousElementSibling()?.text()?.toLowerCase() ?: "" + val tableName = ele.previousElementSibling()?.text()?.toLowerCase().orEmpty() tableName to ele.select("tr").map { it.child(0).text() to it.child(1) }.toMap() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/MigrationMangaDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/MigrationMangaDialog.kt index 3a6370f2b..7594d289c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/MigrationMangaDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/MigrationMangaDialog.kt @@ -31,7 +31,7 @@ class MigrationMangaDialog(bundle: Bundle? = null) : DialogController(bundle) if (mangaSkipped > 0) " " + applicationContext?.getString(R.string.skipping_, mangaSkipped) else "" ) - ) ?: "" + ).orEmpty() return MaterialDialog(activity!!) .message(text = confirmString) .positiveButton(if (copy) R.string.copy else R.string.migrate) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/PreMigrationController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/PreMigrationController.kt index 75510577f..1c8fe2645 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/PreMigrationController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/PreMigrationController.kt @@ -109,7 +109,7 @@ class PreMigrationController(bundle: Bundle? = null) : override fun startMigration(extraParam: String?) { val listOfSources = adapter?.items?.filter { it.sourceEnabled - }?.joinToString("/") { it.source.id.toString() } ?: "" + }?.joinToString("/") { it.source.id.toString() }.orEmpty() prefs.migrationSources().set(listOfSources) router.replaceTopController( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListController.kt index 2145b2b81..f4d2c1785 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListController.kt @@ -33,6 +33,7 @@ import eu.kanade.tachiyomi.ui.browse.migration.search.SearchController import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource import eu.kanade.tachiyomi.util.lang.await +import eu.kanade.tachiyomi.util.lang.awaitSingle import eu.kanade.tachiyomi.util.lang.launchUI import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.system.toast @@ -50,7 +51,6 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.sync.Semaphore import kotlinx.coroutines.sync.withPermit import kotlinx.coroutines.withContext -import rx.schedulers.Schedulers import timber.log.Timber import uy.kohesive.injekt.injectLazy import java.util.concurrent.atomic.AtomicInteger @@ -178,7 +178,7 @@ class MigrationListController(bundle: Bundle? = null) : searchResult, source.id ) - val chapters = (if (source is EHentai) source.fetchChapterList(localManga, throttleManager::throttle) else source.fetchChapterList(localManga)).toSingle().await(Schedulers.io()) + val chapters = (if (source is EHentai) source.fetchChapterList(localManga, throttleManager::throttle) else source.fetchChapterList(localManga)).awaitSingle() try { syncChaptersWithSource(db, chapters, localManga, source) } catch (e: Exception) { @@ -210,7 +210,7 @@ class MigrationListController(bundle: Bundle? = null) : if (searchResult != null) { val localManga = smartSearchEngine.networkToLocalManga(searchResult, source.id) val chapters = try { - (if (source is EHentai) source.fetchChapterList(localManga, throttleManager::throttle) else source.fetchChapterList(localManga)).toSingle().await(Schedulers.io()) ?: emptyList() + (if (source is EHentai) source.fetchChapterList(localManga, throttleManager::throttle) else source.fetchChapterList(localManga)).awaitSingle() } catch (e: java.lang.Exception) { Timber.e(e) emptyList() @@ -240,7 +240,7 @@ class MigrationListController(bundle: Bundle? = null) : if (result != null && result.thumbnail_url == null) { try { - val newManga = sourceManager.getOrStub(result.source).fetchMangaDetails(result).toSingle().await() + val newManga = sourceManager.getOrStub(result.source).fetchMangaDetails(result).awaitSingle() result.copyFrom(newManga) db.insertManga(result).await() @@ -345,7 +345,7 @@ class MigrationListController(bundle: Bundle? = null) : val result = CoroutineScope(migratingManga.manga.migrationJob).async { val localManga = smartSearchEngine.networkToLocalManga(manga, source.id) try { - val chapters = source.fetchChapterList(localManga).toSingle().await(Schedulers.io()) + val chapters = source.fetchChapterList(localManga).awaitSingle() syncChaptersWithSource(db, chapters, localManga, source) } catch (e: Exception) { return@async null @@ -355,7 +355,7 @@ class MigrationListController(bundle: Bundle? = null) : if (result != null) { try { - val newManga = sourceManager.getOrStub(result.source).fetchMangaDetails(result).toSingle().await() + val newManga = sourceManager.getOrStub(result.source).fetchMangaDetails(result).awaitSingle() result.copyFrom(newManga) db.insertManga(result).await() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationProcessAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationProcessAdapter.kt index c8ab66783..456fcba3d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationProcessAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationProcessAdapter.kt @@ -24,7 +24,7 @@ class MigrationProcessAdapter( val menuItemListener: MigrationProcessInterface = controller override fun updateDataSet(items: List?) { - this.items = items ?: emptyList() + this.items = items.orEmpty() super.updateDataSet(items) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/index/IndexPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/index/IndexPresenter.kt index f173963ae..f2e928a09 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/index/IndexPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/index/IndexPresenter.kt @@ -111,9 +111,9 @@ open class IndexPresenter( .asFlow() .singleOrNull() ?.mangas - ?.take(10) - ?.map { networkToLocalManga(it, source.id) } - ?: emptyList() + .orEmpty() + .take(10) + .map { networkToLocalManga(it, source.id) } } catch (e: Exception) { emptyList() } @@ -139,9 +139,9 @@ open class IndexPresenter( .asFlow() .singleOrNull() ?.mangas - ?.take(10) - ?.map { networkToLocalManga(it, source.id) } - ?: emptyList() + .orEmpty() + .take(10) + .map { networkToLocalManga(it, source.id) } } catch (e: Exception) { emptyList() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt index 004474bde..8b203fb09 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryAdapter.kt @@ -53,7 +53,7 @@ class LibraryCategoryAdapter(view: LibraryCategoryView, val controller: LibraryC // Keep compatibility as searchText field was replaced when we upgraded FlexibleAdapter var searchText - get() = getFilter(String::class.java) ?: "" + get() = getFilter(String::class.java).orEmpty() set(value) { setFilter(value) } @@ -169,7 +169,7 @@ class LibraryCategoryAdapter(view: LibraryCategoryView, val controller: LibraryC val mappedQueries = queries.groupBy { it.excluded } val tracks = if (hasLoggedServices) db.getTracks(manga).await().toList() else null val source = sourceManager.get(manga.source) - val genre = if (checkGenre) manga.getGenres() else null + val genre = if (checkGenre) manga.getGenres().orEmpty() else emptyList() val hasNormalQuery = mappedQueries[false]?.all { queryComponent -> when (queryComponent) { is Text -> { @@ -179,9 +179,9 @@ class LibraryCategoryAdapter(view: LibraryCategoryView, val controller: LibraryC (manga.artist?.contains(query, true) == true) || (source?.name?.contains(query, true) == true) || (hasLoggedServices && tracks != null && filterTracks(query, tracks)) || - (genre != null && genre.any { it.contains(query, true) }) || - (searchTags != null && searchTags.any { it.name.contains(query, true) }) || - (searchTitles != null && searchTitles.any { it.title.contains(query, true) }) + (genre.any { it.contains(query, true) }) || + (searchTags.orEmpty().any { it.name.contains(query, true) }) || + (searchTitles.orEmpty().any { it.title.contains(query, true) }) } is Namespace -> { searchTags != null && searchTags.any { @@ -199,13 +199,13 @@ class LibraryCategoryAdapter(view: LibraryCategoryView, val controller: LibraryC val query = queryComponent.asQuery() query.isBlank() || ( (!manga.title.contains(query, true)) && - (!(manga.author ?: "").contains(query, true)) && - (!(manga.artist ?: "").contains(query, true)) && - (!(source?.name ?: "").contains(query, true)) && + (!manga.author.orEmpty().contains(query, true)) && + (!manga.artist.orEmpty().contains(query, true)) && + (!source?.name.orEmpty().contains(query, true)) && (!hasLoggedServices || hasLoggedServices && tracks == null || tracks != null && !filterTracks(query, tracks)) && - ((genre ?: emptyList()).all { !it.contains(query, true) }) && - ((searchTags ?: emptyList()).all { !it.name.contains(query, true) }) && - ((searchTitles ?: emptyList()).all { !it.title.contains(query, true) }) + (genre.none { it.contains(query, true) }) && + (searchTags.orEmpty().none { it.name.contains(query, true) }) && + (searchTitles.orEmpty().none { it.title.contains(query, true) }) ) } is Namespace -> { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt index d4788bd67..a98804b12 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -503,7 +503,7 @@ class LibraryPresenter( val chapter = db.getChapters(manga).await().minByOrNull { it.source_order } if (chapter != null && !chapter.read) listOf(chapter) else emptyList() } else if (manga.source == MERGED_SOURCE_ID) { - (sourceManager.getOrStub(MERGED_SOURCE_ID) as? MergedSource)?.getChaptersFromDB(manga)?.awaitSingleOrNull()?.filter { !it.read } ?: emptyList() + (sourceManager.getOrStub(MERGED_SOURCE_ID) as? MergedSource)?.getChaptersFromDB(manga)?.awaitSingleOrNull()?.filter { !it.read }.orEmpty() } else /* SY <-- */ db.getChapters(manga).executeAsBlocking() .filter { !it.read } @@ -558,7 +558,7 @@ class LibraryPresenter( fun markReadStatus(mangas: List, read: Boolean) { mangas.forEach { manga -> launchIO { - val chapters = if (manga.source == MERGED_SOURCE_ID) (sourceManager.get(MERGED_SOURCE_ID) as? MergedSource)?.getChaptersFromDB(manga)?.awaitSingleOrNull() ?: emptyList() else db.getChapters(manga).executeAsBlocking() + val chapters = if (manga.source == MERGED_SOURCE_ID) (sourceManager.get(MERGED_SOURCE_ID) as? MergedSource)?.getChaptersFromDB(manga)?.awaitSingleOrNull().orEmpty() else db.getChapters(manga).executeAsBlocking() chapters.forEach { it.read = read if (!read) { @@ -647,7 +647,7 @@ class LibraryPresenter( // SY --> /** Returns first unread chapter of a manga */ fun getFirstUnread(manga: Manga): Chapter? { - val chapters = (if (manga.source == MERGED_SOURCE_ID) (sourceManager.get(MERGED_SOURCE_ID) as? MergedSource).let { runBlocking { it?.getChaptersFromDB(manga)?.awaitSingleOrNull() } ?: emptyList() } else db.getChapters(manga).executeAsBlocking()) + val chapters = (if (manga.source == MERGED_SOURCE_ID) (sourceManager.get(MERGED_SOURCE_ID) as? MergedSource).let { runBlocking { it?.getChaptersFromDB(manga)?.awaitSingleOrNull().orEmpty() } } else db.getChapters(manga).executeAsBlocking()) return if (manga.source == EH_SOURCE_ID || manga.source == EXH_SOURCE_ID) { val chapter = chapters.sortedBy { it.source_order }.getOrNull(0) if (chapter?.read == false) chapter else null diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt index 684950f5e..197f8251e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt @@ -92,22 +92,22 @@ class EditMangaDialog : DialogController { binding.title.append(manga.title) } binding.title.hint = "${resources?.getString(R.string.title)}: ${manga.url}" - binding.mangaAuthor.append(manga.author ?: "") - binding.mangaArtist.append(manga.artist ?: "") - binding.mangaDescription.append(manga.description ?: "") + binding.mangaAuthor.append(manga.author.orEmpty()) + binding.mangaArtist.append(manga.artist.orEmpty()) + binding.mangaDescription.append(manga.description.orEmpty()) binding.mangaGenresTags.setChips(manga.getGenres()) } else { if (manga.title != manga.originalTitle) { binding.title.append(manga.title) } if (manga.author != manga.originalAuthor) { - binding.mangaAuthor.append(manga.author ?: "") + binding.mangaAuthor.append(manga.author.orEmpty()) } if (manga.artist != manga.originalArtist) { - binding.mangaArtist.append(manga.artist ?: "") + binding.mangaArtist.append(manga.artist.orEmpty()) } if (manga.description != manga.originalDescription) { - binding.mangaDescription.append(manga.description ?: "") + binding.mangaDescription.append(manga.description.orEmpty()) } binding.mangaGenresTags.setChips(manga.getGenres()) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt index d75dbd500..c1c8a01ec 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt @@ -118,7 +118,7 @@ class ReaderPresenter( val meta = meta val filteredScanlators = meta?.filteredScanlators?.let { MdUtil.getScanlators(it) } // SY <-- - val dbChapters = /* SY --> */if (manga.source == MERGED_SOURCE_ID) runBlocking { (sourceManager.get(MERGED_SOURCE_ID) as? MergedSource)?.getChaptersFromDB(manga)?.awaitSingleOrNull() ?: emptyList() } else /* SY <-- */ db.getChapters(manga).executeAsBlocking() + val dbChapters = /* SY --> */if (manga.source == MERGED_SOURCE_ID) runBlocking { (sourceManager.get(MERGED_SOURCE_ID) as? MergedSource)?.getChaptersFromDB(manga)?.awaitSingleOrNull().orEmpty() } else /* SY <-- */ db.getChapters(manga).executeAsBlocking() val selectedChapter = dbChapters.find { it.id == chapterId } ?: error("Requested chapter of id $chapterId not found in chapter list") diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/AutoCompleteAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/AutoCompleteAdapter.kt index eebf755f1..fb4eccf69 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/AutoCompleteAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/AutoCompleteAdapter.kt @@ -51,7 +51,7 @@ class AutoCompleteAdapter(context: Context, resource: Int, var objects: List? ?: emptyList() + (results.values as List?).orEmpty() } else { emptyList() } diff --git a/app/src/main/java/exh/md/handlers/FollowsHandler.kt b/app/src/main/java/exh/md/handlers/FollowsHandler.kt index 05387c460..bdd5d4df1 100644 --- a/app/src/main/java/exh/md/handlers/FollowsHandler.kt +++ b/app/src/main/java/exh/md/handlers/FollowsHandler.kt @@ -48,7 +48,7 @@ class FollowsHandler(val client: OkHttpClient, val headers: Headers, val prefere val followsPageResult = try { MdUtil.jsonParser.decodeFromString( FollowsPageResult.serializer(), - response.body?.string() ?: "" + response.body?.string().orEmpty() ) } catch (e: Exception) { XLog.e("error parsing follows", e) @@ -79,7 +79,7 @@ class FollowsHandler(val client: OkHttpClient, val headers: Headers, val prefere val followsPageResult = try { MdUtil.jsonParser.decodeFromString( FollowsPageResult.serializer(), - response.body?.string() ?: "" + response.body?.string().orEmpty() ) } catch (e: Exception) { XLog.e("error parsing follows", e) diff --git a/app/src/main/java/exh/patch/NetworkPatches.kt b/app/src/main/java/exh/patch/NetworkPatches.kt index ab635664e..fe3f28689 100644 --- a/app/src/main/java/exh/patch/NetworkPatches.kt +++ b/app/src/main/java/exh/patch/NetworkPatches.kt @@ -20,8 +20,8 @@ fun OkHttpClient.Builder.injectPatches(sourceIdProducer: () -> Long): OkHttpClie fun findAndApplyPatches(sourceId: Long): EHInterceptor { // TODO make it so captcha doesnt auto open in manga eden while applying universal interceptors - return if (Injekt.get().eh_autoSolveCaptchas().get()) ((EH_INTERCEPTORS[sourceId] ?: emptyList()) + (EH_INTERCEPTORS[EH_UNIVERSAL_INTERCEPTOR] ?: emptyList())).merge() - else (EH_INTERCEPTORS[sourceId] ?: emptyList()).merge() + return if (Injekt.get().eh_autoSolveCaptchas().get()) ((EH_INTERCEPTORS[sourceId].orEmpty()) + (EH_INTERCEPTORS[EH_UNIVERSAL_INTERCEPTOR].orEmpty())).merge() + else (EH_INTERCEPTORS[sourceId].orEmpty()).merge() } fun List.merge(): EHInterceptor { diff --git a/app/src/main/java/exh/ui/metadata/MetadataViewController.kt b/app/src/main/java/exh/ui/metadata/MetadataViewController.kt index b14706080..33cb90f4f 100644 --- a/app/src/main/java/exh/ui/metadata/MetadataViewController.kt +++ b/app/src/main/java/exh/ui/metadata/MetadataViewController.kt @@ -83,7 +83,7 @@ class MetadataViewController : NucleusController().get(source)?.name - val currentTags = getGenres() ?: emptyList() + val currentTags = getGenres().orEmpty() if (source == EH_SOURCE_ID || source == EXH_SOURCE_ID || source in nHentaiSourceIds) { return currentTags.none { tag -> isNonHentaiTag(tag) } diff --git a/app/src/main/java/exh/util/LoggingRealmQuery.kt b/app/src/main/java/exh/util/LoggingRealmQuery.kt index d7bbf803d..73a65f26a 100644 --- a/app/src/main/java/exh/util/LoggingRealmQuery.kt +++ b/app/src/main/java/exh/util/LoggingRealmQuery.kt @@ -51,7 +51,7 @@ class LoggingRealmQuery(val query: RealmQuery) { "\"$fieldName\" == \"$value\"" + ( casing?.let { " CASE ${casing.name}" - } ?: "" + }.orEmpty() ) ) } @@ -121,7 +121,7 @@ class LoggingRealmQuery(val query: RealmQuery) { )}] IN \"$fieldName\"" + ( casing?.let { " CASE ${casing.name}" - } ?: "" + }.orEmpty() ) ) } @@ -181,7 +181,7 @@ class LoggingRealmQuery(val query: RealmQuery) { "\"$fieldName\" != \"$value\"" + ( casing?.let { " CASE ${casing.name}" - } ?: "" + }.orEmpty() ) ) } @@ -391,7 +391,7 @@ class LoggingRealmQuery(val query: RealmQuery) { "\"$fieldName\" CONTAINS \"$value\"" + ( casing?.let { " CASE ${casing.name}" - } ?: "" + }.orEmpty() ) ) } @@ -411,7 +411,7 @@ class LoggingRealmQuery(val query: RealmQuery) { "\"$fieldName\" BEGINS WITH \"$value\"" + ( casing?.let { " CASE ${casing.name}" - } ?: "" + }.orEmpty() ) ) } @@ -431,7 +431,7 @@ class LoggingRealmQuery(val query: RealmQuery) { "\"$fieldName\" ENDS WITH \"$value\"" + ( casing?.let { " CASE ${casing.name}" - } ?: "" + }.orEmpty() ) ) } @@ -451,7 +451,7 @@ class LoggingRealmQuery(val query: RealmQuery) { "\"$fieldName\" LIKE \"$value\"" + ( casing?.let { " CASE ${casing.name}" - } ?: "" + }.orEmpty() ) ) } diff --git a/app/src/main/java/exh/util/MangaType.kt b/app/src/main/java/exh/util/MangaType.kt index 7e15fe8e5..fb93096ff 100644 --- a/app/src/main/java/exh/util/MangaType.kt +++ b/app/src/main/java/exh/util/MangaType.kt @@ -26,7 +26,7 @@ fun Manga.mangaType(context: Context): String { */ fun Manga.mangaType(): MangaType { val sourceName = Injekt.get().getOrStub(source).name - val currentTags = getGenres() ?: emptyList() + val currentTags = getGenres().orEmpty() return if (currentTags.any { tag -> isMangaTag(tag) }) { MangaType.TYPE_MANGA } else if (currentTags.any { tag -> isWebtoonTag(tag) } || isWebtoonSource(sourceName)) {