Build fixes after cherry picking

This commit is contained in:
Jobobby04 2021-12-02 20:44:05 -05:00
parent 85207b1d2d
commit 42da9abe3e
15 changed files with 39 additions and 37 deletions

View File

@ -1,7 +1,7 @@
package eu.kanade.tachiyomi.data.database.queries package eu.kanade.tachiyomi.data.database.queries
import exh.source.MERGED_SOURCE_ID
import eu.kanade.tachiyomi.data.database.resolvers.SourceIdMangaCountGetResolver import eu.kanade.tachiyomi.data.database.resolvers.SourceIdMangaCountGetResolver
import exh.source.MERGED_SOURCE_ID
import eu.kanade.tachiyomi.data.database.tables.CategoryTable as Category import eu.kanade.tachiyomi.data.database.tables.CategoryTable as Category
import eu.kanade.tachiyomi.data.database.tables.ChapterTable as Chapter import eu.kanade.tachiyomi.data.database.tables.ChapterTable as Chapter
import eu.kanade.tachiyomi.data.database.tables.HistoryTable as History import eu.kanade.tachiyomi.data.database.tables.HistoryTable as History

View File

@ -131,11 +131,11 @@ class MdList(private val context: Context, id: Int) : TrackService(id) {
val mdex = mdex ?: throw MangaDexNotFoundException() val mdex = mdex ?: throw MangaDexNotFoundException()
mdex.fetchSearchManga(0, query, mdex.getFilterList()) mdex.fetchSearchManga(0, query, mdex.getFilterList())
.flatMap { page -> .flatMap { page ->
runAsObservable({ runAsObservable {
page.mangas.map { page.mangas.map {
toTrackSearch(mdex.getMangaDetails(it.toMangaInfo())) toTrackSearch(mdex.getMangaDetails(it.toMangaInfo()))
} }
}) }
} }
.awaitSingle() .awaitSingle()
} }

View File

@ -28,16 +28,16 @@ internal class ExtensionGithubApi {
.await() .await()
.parseAs<List<ExtensionJsonObject>>() .parseAs<List<ExtensionJsonObject>>()
.toExtensions() /* SY --> */ + preferences.extensionRepos() .toExtensions() /* SY --> */ + preferences.extensionRepos()
.get() .get()
.flatMap { repoPath -> .flatMap { repoPath ->
val url = "$BASE_URL$repoPath/repo/" val url = "$BASE_URL$repoPath/repo/"
networkService.client networkService.client
.newCall(GET("${url}index.min.json")) .newCall(GET("${url}index.min.json"))
.await() .await()
.parseAs<List<ExtensionJsonObject>>() .parseAs<List<ExtensionJsonObject>>()
.toExtensions(url) .toExtensions(url)
} }
// SY <-- // SY <--
// Sanity check - a small number of extensions probably means something broke // Sanity check - a small number of extensions probably means something broke
// with the repo generator // with the repo generator

View File

@ -52,9 +52,9 @@ interface MetadataSource<M : RaisedSearchMetadata, I> : CatalogueSource {
*/ */
@Suppress("DeprecatedCallableAddReplaceWith") @Suppress("DeprecatedCallableAddReplaceWith")
@Deprecated("Use the MangaInfo variant") @Deprecated("Use the MangaInfo variant")
fun parseToManga(manga: SManga, input: I): Completable = runAsObservable({ fun parseToManga(manga: SManga, input: I): Completable = runAsObservable {
parseToManga(manga.toMangaInfo(), input) parseToManga(manga.toMangaInfo(), input)
}).toCompletable() }.toCompletable()
suspend fun parseToManga(manga: MangaInfo, input: I): MangaInfo { suspend fun parseToManga(manga: MangaInfo, input: I): MangaInfo {
val mangaId = manga.id() val mangaId = manga.id()
@ -82,9 +82,9 @@ interface MetadataSource<M : RaisedSearchMetadata, I> : CatalogueSource {
@Suppress("DeprecatedCallableAddReplaceWith") @Suppress("DeprecatedCallableAddReplaceWith")
@Deprecated("use fetchOrLoadMetadata made for MangaInfo") @Deprecated("use fetchOrLoadMetadata made for MangaInfo")
fun getOrLoadMetadata(mangaId: Long?, inputProducer: () -> Single<I>): Single<M> = fun getOrLoadMetadata(mangaId: Long?, inputProducer: () -> Single<I>): Single<M> =
runAsObservable({ runAsObservable {
fetchOrLoadMetadata(mangaId) { inputProducer().toObservable().awaitSingle() } fetchOrLoadMetadata(mangaId) { inputProducer().toObservable().awaitSingle() }
}).toSingle() }.toSingle()
/** /**
* Try to first get the metadata from the DB. If the metadata is not in the DB, calls the input * Try to first get the metadata from the DB. If the metadata is not in the DB, calls the input

View File

@ -365,9 +365,9 @@ class EHentai(
@Suppress("DeprecatedCallableAddReplaceWith") @Suppress("DeprecatedCallableAddReplaceWith")
@Deprecated("Use getChapterList instead") @Deprecated("Use getChapterList instead")
fun fetchChapterList(manga: SManga, throttleFunc: suspend () -> Unit) = runAsObservable({ fun fetchChapterList(manga: SManga, throttleFunc: suspend () -> Unit) = runAsObservable {
getChapterList(manga.toMangaInfo(), throttleFunc).map { it.toSChapter() } getChapterList(manga.toMangaInfo(), throttleFunc).map { it.toSChapter() }
}) }
override fun fetchPageList(chapter: SChapter) = fetchChapterPage(chapter, baseUrl + chapter.url) override fun fetchPageList(chapter: SChapter) = fetchChapterPage(chapter, baseUrl + chapter.url)
.map { .map {

View File

@ -183,7 +183,7 @@ class MangaDex(delegate: HttpSource, val context: Context) :
} }
override fun fetchPageList(chapter: SChapter): Observable<List<Page>> { override fun fetchPageList(chapter: SChapter): Observable<List<Page>> {
return runAsObservable({ pageHandler.fetchPageList(chapter, isLogged(), usePort443Only(), dataSaver(), delegate) }) return runAsObservable { pageHandler.fetchPageList(chapter, isLogged(), usePort443Only(), dataSaver(), delegate) }
} }
override fun fetchImage(page: Page): Observable<Response> { override fun fetchImage(page: Page): Observable<Response> {

View File

@ -173,13 +173,13 @@ open class LatestPresenter(
* @return an observable of the manga to initialize * @return an observable of the manga to initialize
*/ */
private fun getMangaDetailsObservable(manga: Manga, source: Source): Observable<Manga> { private fun getMangaDetailsObservable(manga: Manga, source: Source): Observable<Manga> {
return runAsObservable({ return runAsObservable {
val networkManga = source.getMangaDetails(manga.toMangaInfo()) val networkManga = source.getMangaDetails(manga.toMangaInfo())
manga.copyFrom(networkManga.toSManga()) manga.copyFrom(networkManga.toSManga())
manga.initialized = true manga.initialized = true
db.insertManga(manga).executeAsBlocking() db.insertManga(manga).executeAsBlocking()
manga manga
}) }
.onErrorResumeNext { Observable.just(manga) } .onErrorResumeNext { Observable.just(manga) }
} }

View File

@ -45,7 +45,7 @@ class MigrationMangaPresenter(
fun migrateManga(prevManga: Manga, manga: Manga, replace: Boolean) { fun migrateManga(prevManga: Manga, manga: Manga, replace: Boolean) {
val source = sourceManager.get(manga.source) ?: return val source = sourceManager.get(manga.source) ?: return
Observable.defer { runAsObservable({ source.getChapterList(manga.toMangaInfo()).map { it.toSChapter() } }) }.onErrorReturn { emptyList() } Observable.defer { runAsObservable { source.getChapterList(manga.toMangaInfo()).map { it.toSChapter() } } }.onErrorReturn { emptyList() }
.doOnNext { migrateMangaInternal(source, it, prevManga, manga, replace) } .doOnNext { migrateMangaInternal(source, it, prevManga, manga, replace) }
.onErrorReturn { emptyList() }.subscribeOn(Schedulers.io()) .onErrorReturn { emptyList() }.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())

View File

@ -183,13 +183,13 @@ open class IndexPresenter(
* @return an observable of the manga to initialize * @return an observable of the manga to initialize
*/ */
private fun getMangaDetailsObservable(manga: Manga, source: Source, isLatest: Boolean): Observable<Pair<Manga, Boolean>> { private fun getMangaDetailsObservable(manga: Manga, source: Source, isLatest: Boolean): Observable<Pair<Manga, Boolean>> {
return runAsObservable({ return runAsObservable {
val networkManga = source.getMangaDetails(manga.toMangaInfo()) val networkManga = source.getMangaDetails(manga.toMangaInfo())
manga.copyFrom(networkManga.toSManga()) manga.copyFrom(networkManga.toSManga())
manga.initialized = true manga.initialized = true
db.insertManga(manga).executeAsBlocking() db.insertManga(manga).executeAsBlocking()
manga to isLatest manga to isLatest
}) }
.onErrorResumeNext { Observable.just(manga to isLatest) } .onErrorResumeNext { Observable.just(manga to isLatest) }
} }

View File

@ -1,8 +1,10 @@
package eu.kanade.tachiyomi.ui.setting package eu.kanade.tachiyomi.ui.setting
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Dialog
import android.content.ActivityNotFoundException import android.content.ActivityNotFoundException
import android.content.Intent import android.content.Intent
import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog

View File

@ -154,7 +154,7 @@ class ClearDatabaseController :
) )
val selected = booleanArrayOf(true, true) val selected = booleanArrayOf(true, true)
return MaterialAlertDialogBuilder(activity!!) return MaterialAlertDialogBuilder(activity!!)
//.setMessage(R.string.clear_database_confirmation) // .setMessage(R.string.clear_database_confirmation)
// SY --> // SY -->
.setMultiChoiceItems(item, selected) { _, which, checked -> .setMultiChoiceItems(item, selected) { _, which, checked ->
if (which == 0) { if (which == 0) {
@ -173,7 +173,7 @@ class ClearDatabaseController :
} }
@SuppressLint("NotifyDataSetChanged") @SuppressLint("NotifyDataSetChanged")
private fun clearDatabaseForSelectedSources(/* SY --> */ keepReadManga: Boolean/* SY <-- */ ) { private fun clearDatabaseForSelectedSources(/* SY --> */ keepReadManga: Boolean/* SY <-- */) {
val adapter = adapter ?: return val adapter = adapter ?: return
val selectedSourceIds = adapter.selectedPositions.mapNotNull { position -> val selectedSourceIds = adapter.selectedPositions.mapNotNull { position ->
adapter.getItem(position)?.source?.id adapter.getItem(position)?.source?.id

View File

@ -3,7 +3,7 @@ package exh.md.handlers
import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.network.asObservableSuccess import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.network.await import eu.kanade.tachiyomi.network.await
import eu.kanade.tachiyomi.network.interceptor.RateLimitInterceptor import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.network.parseAs import eu.kanade.tachiyomi.network.parseAs
import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
@ -32,7 +32,7 @@ class BilibiliHandler(currentClient: OkHttpClient) {
.build() .build()
val client: OkHttpClient = currentClient.newBuilder() val client: OkHttpClient = currentClient.newBuilder()
.addInterceptor(RateLimitInterceptor(1, 1, TimeUnit.SECONDS)) .rateLimit(1, 1, TimeUnit.SECONDS)
.build() .build()
suspend fun fetchPageList(externalUrl: String, chapterNumber: String): List<Page> { suspend fun fetchPageList(externalUrl: String, chapterNumber: String): List<Page> {

View File

@ -33,14 +33,14 @@ class MangaHandler(
} }
fun fetchMangaDetailsObservable(manga: SManga, sourceId: Long, forceLatestCovers: Boolean): Observable<SManga> { fun fetchMangaDetailsObservable(manga: SManga, sourceId: Long, forceLatestCovers: Boolean): Observable<SManga> {
return runAsObservable({ return runAsObservable {
getMangaDetails(manga.toMangaInfo(), sourceId, forceLatestCovers).toSManga() getMangaDetails(manga.toMangaInfo(), sourceId, forceLatestCovers).toSManga()
}) }
} }
fun fetchChapterListObservable(manga: SManga): Observable<List<SChapter>> = runAsObservable({ fun fetchChapterListObservable(manga: SManga): Observable<List<SChapter>> = runAsObservable {
getChapterList(manga.toMangaInfo()).map { it.toSChapter() } getChapterList(manga.toMangaInfo()).map { it.toSChapter() }
}) }
suspend fun getChapterList(manga: MangaInfo): List<ChapterInfo> { suspend fun getChapterList(manga: MangaInfo): List<ChapterInfo> {
return withIOContext { return withIOContext {

View File

@ -18,9 +18,9 @@ private val galleryAdder by lazy {
fun UrlImportableSource.urlImportFetchSearchManga(context: Context, query: String, fail: () -> Observable<MangasPage>): Observable<MangasPage> = fun UrlImportableSource.urlImportFetchSearchManga(context: Context, query: String, fail: () -> Observable<MangasPage>): Observable<MangasPage> =
when { when {
query.startsWith("http://") || query.startsWith("https://") -> { query.startsWith("http://") || query.startsWith("https://") -> {
runAsObservable({ runAsObservable {
galleryAdder.addGallery(context, query, false, this@urlImportFetchSearchManga) galleryAdder.addGallery(context, query, false, this@urlImportFetchSearchManga)
}) }
.map { res -> .map { res ->
MangasPage( MangasPage(
if (res is GalleryAddEvent.Success) { if (res is GalleryAddEvent.Success) {

View File

@ -9,7 +9,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<eu.kanade.tachiyomi.widget.ElevationAppBarLayout <com.google.android.material.appbar.TachiyomiAppBarLayout
android:id="@+id/appbar" android:id="@+id/appbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -21,7 +21,7 @@
android:layout_height="?attr/actionBarSize" android:layout_height="?attr/actionBarSize"
android:theme="?attr/actionBarTheme"/> android:theme="?attr/actionBarTheme"/>
</eu.kanade.tachiyomi.widget.ElevationAppBarLayout> </com.google.android.material.appbar.TachiyomiAppBarLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"