Minor cleanup
This commit is contained in:
parent
7f89587889
commit
c36d2794bb
@ -45,11 +45,9 @@ import eu.kanade.presentation.browse.components.ExtensionIcon
|
||||
import eu.kanade.presentation.manga.components.DotSeparatorNoSpaceText
|
||||
import eu.kanade.tachiyomi.extension.model.Extension
|
||||
import eu.kanade.tachiyomi.extension.model.InstallStep
|
||||
import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||
import eu.kanade.tachiyomi.ui.browse.extension.ExtensionUiModel
|
||||
import eu.kanade.tachiyomi.ui.browse.extension.ExtensionsScreenModel
|
||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
||||
import exh.source.anyIs
|
||||
import tachiyomi.i18n.MR
|
||||
import tachiyomi.i18n.sy.SYMR
|
||||
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
||||
|
@ -210,7 +210,7 @@ object SettingsDataScreen : SearchableSettings {
|
||||
|
||||
// SY -->
|
||||
val pagePreviewCache = remember { Injekt.get<PagePreviewCache>() }
|
||||
var pagePreviewReadableSizeSema by remember { mutableStateOf(0) }
|
||||
var pagePreviewReadableSizeSema by remember { mutableIntStateOf(0) }
|
||||
val pagePreviewReadableSize = remember(pagePreviewReadableSizeSema) { pagePreviewCache.readableSize }
|
||||
// SY <--
|
||||
|
||||
|
@ -248,10 +248,14 @@ object SettingsLibraryScreen : SearchableSettings {
|
||||
pref = libraryPreferences.swipeToStartAction(),
|
||||
title = stringResource(MR.strings.pref_chapter_swipe_start),
|
||||
entries = mapOf(
|
||||
LibraryPreferences.ChapterSwipeAction.Disabled to stringResource(MR.strings.disabled),
|
||||
LibraryPreferences.ChapterSwipeAction.ToggleBookmark to stringResource(MR.strings.action_bookmark),
|
||||
LibraryPreferences.ChapterSwipeAction.ToggleRead to stringResource(MR.strings.action_mark_as_read),
|
||||
LibraryPreferences.ChapterSwipeAction.Download to stringResource(MR.strings.action_download),
|
||||
LibraryPreferences.ChapterSwipeAction.Disabled to
|
||||
stringResource(MR.strings.disabled),
|
||||
LibraryPreferences.ChapterSwipeAction.ToggleBookmark to
|
||||
stringResource(MR.strings.action_bookmark),
|
||||
LibraryPreferences.ChapterSwipeAction.ToggleRead to
|
||||
stringResource(MR.strings.action_mark_as_read),
|
||||
LibraryPreferences.ChapterSwipeAction.Download to
|
||||
stringResource(MR.strings.action_download),
|
||||
),
|
||||
),
|
||||
Preference.PreferenceItem.ListPreference(
|
||||
@ -259,8 +263,10 @@ object SettingsLibraryScreen : SearchableSettings {
|
||||
title = stringResource(MR.strings.pref_chapter_swipe_end),
|
||||
entries = mapOf(
|
||||
LibraryPreferences.ChapterSwipeAction.Disabled to stringResource(MR.strings.disabled),
|
||||
LibraryPreferences.ChapterSwipeAction.ToggleBookmark to stringResource(MR.strings.action_bookmark),
|
||||
LibraryPreferences.ChapterSwipeAction.ToggleRead to stringResource(MR.strings.action_mark_as_read),
|
||||
LibraryPreferences.ChapterSwipeAction.ToggleBookmark to
|
||||
stringResource(MR.strings.action_bookmark),
|
||||
LibraryPreferences.ChapterSwipeAction.ToggleRead to
|
||||
stringResource(MR.strings.action_mark_as_read),
|
||||
LibraryPreferences.ChapterSwipeAction.Download to stringResource(MR.strings.action_download),
|
||||
),
|
||||
),
|
||||
|
@ -208,8 +208,10 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
title = stringResource(MR.strings.pref_read_with_tapping_inverted),
|
||||
entries = mapOf(
|
||||
ReaderPreferences.TappingInvertMode.NONE to stringResource(MR.strings.none),
|
||||
ReaderPreferences.TappingInvertMode.HORIZONTAL to stringResource(MR.strings.tapping_inverted_horizontal),
|
||||
ReaderPreferences.TappingInvertMode.VERTICAL to stringResource(MR.strings.tapping_inverted_vertical),
|
||||
ReaderPreferences.TappingInvertMode.HORIZONTAL to
|
||||
stringResource(MR.strings.tapping_inverted_horizontal),
|
||||
ReaderPreferences.TappingInvertMode.VERTICAL to
|
||||
stringResource(MR.strings.tapping_inverted_vertical),
|
||||
ReaderPreferences.TappingInvertMode.BOTH to stringResource(MR.strings.tapping_inverted_both),
|
||||
),
|
||||
enabled = navMode != 5,
|
||||
@ -308,8 +310,10 @@ object SettingsReaderScreen : SearchableSettings {
|
||||
title = stringResource(MR.strings.pref_read_with_tapping_inverted),
|
||||
entries = mapOf(
|
||||
ReaderPreferences.TappingInvertMode.NONE to stringResource(MR.strings.none),
|
||||
ReaderPreferences.TappingInvertMode.HORIZONTAL to stringResource(MR.strings.tapping_inverted_horizontal),
|
||||
ReaderPreferences.TappingInvertMode.VERTICAL to stringResource(MR.strings.tapping_inverted_vertical),
|
||||
ReaderPreferences.TappingInvertMode.HORIZONTAL to
|
||||
stringResource(MR.strings.tapping_inverted_horizontal),
|
||||
ReaderPreferences.TappingInvertMode.VERTICAL to
|
||||
stringResource(MR.strings.tapping_inverted_vertical),
|
||||
ReaderPreferences.TappingInvertMode.BOTH to stringResource(MR.strings.tapping_inverted_both),
|
||||
),
|
||||
enabled = navMode != 5,
|
||||
|
@ -88,7 +88,9 @@ class SettingsSearchScreen : Screen() {
|
||||
focusRequester.requestFocus()
|
||||
}
|
||||
|
||||
var textFieldValue by rememberSaveable(stateSaver = TextFieldValue.Saver) { mutableStateOf(TextFieldValue()) }
|
||||
var textFieldValue by rememberSaveable(stateSaver = TextFieldValue.Saver) {
|
||||
mutableStateOf(TextFieldValue())
|
||||
}
|
||||
Scaffold(
|
||||
topBar = {
|
||||
Column {
|
||||
@ -202,7 +204,11 @@ private fun SearchResult(
|
||||
SearchResultItem(
|
||||
route = settingsData.route,
|
||||
title = p.title,
|
||||
breadcrumbs = getLocalizedBreadcrumb(path = settingsData.title, node = categoryTitle, isLtr = isLtr),
|
||||
breadcrumbs = getLocalizedBreadcrumb(
|
||||
path = settingsData.title,
|
||||
node = categoryTitle,
|
||||
isLtr = isLtr,
|
||||
),
|
||||
highlightKey = p.title,
|
||||
)
|
||||
}
|
||||
|
@ -112,7 +112,9 @@ fun BottomReaderBar(
|
||||
if (cropBorders.isIn(enabledButtons)) {
|
||||
IconButton(onClick = onClickCropBorder) {
|
||||
Icon(
|
||||
painter = painterResource(if (cropEnabled) R.drawable.ic_crop_24dp else R.drawable.ic_crop_off_24dp),
|
||||
painter = painterResource(
|
||||
if (cropEnabled) R.drawable.ic_crop_24dp else R.drawable.ic_crop_off_24dp,
|
||||
),
|
||||
contentDescription = stringResource(MR.strings.pref_crop_borders),
|
||||
)
|
||||
}
|
||||
|
@ -39,18 +39,32 @@ data class BackupChapter(
|
||||
}
|
||||
}
|
||||
|
||||
val backupChapterMapper = { _: Long, _: Long, url: String, name: String, scanlator: String?, read: Boolean, bookmark: Boolean, lastPageRead: Long, chapterNumber: Double, source_order: Long, dateFetch: Long, dateUpload: Long, lastModifiedAt: Long ->
|
||||
BackupChapter(
|
||||
url = url,
|
||||
name = name,
|
||||
chapterNumber = chapterNumber.toFloat(),
|
||||
scanlator = scanlator,
|
||||
read = read,
|
||||
bookmark = bookmark,
|
||||
lastPageRead = lastPageRead,
|
||||
dateFetch = dateFetch,
|
||||
dateUpload = dateUpload,
|
||||
sourceOrder = source_order,
|
||||
lastModifiedAt = lastModifiedAt,
|
||||
)
|
||||
}
|
||||
val backupChapterMapper =
|
||||
{ _: Long,
|
||||
_: Long,
|
||||
url: String,
|
||||
name: String,
|
||||
scanlator: String?,
|
||||
read: Boolean,
|
||||
bookmark: Boolean,
|
||||
lastPageRead: Long,
|
||||
chapterNumber: Double,
|
||||
source_order: Long,
|
||||
dateFetch: Long,
|
||||
dateUpload: Long,
|
||||
lastModifiedAt: Long,
|
||||
->
|
||||
BackupChapter(
|
||||
url = url,
|
||||
name = name,
|
||||
chapterNumber = chapterNumber.toFloat(),
|
||||
scanlator = scanlator,
|
||||
read = read,
|
||||
bookmark = bookmark,
|
||||
lastPageRead = lastPageRead,
|
||||
dateFetch = dateFetch,
|
||||
dateUpload = dateUpload,
|
||||
sourceOrder = source_order,
|
||||
lastModifiedAt = lastModifiedAt,
|
||||
)
|
||||
}
|
||||
|
@ -36,7 +36,18 @@ data class BackupMergedMangaReference(
|
||||
}
|
||||
|
||||
val backupMergedMangaReferenceMapper =
|
||||
{ _: Long, isInfoManga: Boolean, getChapterUpdates: Boolean, chapterSortMode: Long, chapterPriority: Long, downloadChapters: Boolean, _: Long, mergeUrl: String, _: Long?, mangaUrl: String, mangaSourceId: Long ->
|
||||
{ _: Long,
|
||||
isInfoManga: Boolean,
|
||||
getChapterUpdates: Boolean,
|
||||
chapterSortMode: Long,
|
||||
chapterPriority: Long,
|
||||
downloadChapters: Boolean,
|
||||
_: Long,
|
||||
mergeUrl: String,
|
||||
_: Long?,
|
||||
mangaUrl: String,
|
||||
mangaSourceId: Long,
|
||||
->
|
||||
BackupMergedMangaReference(
|
||||
isInfoManga = isInfoManga,
|
||||
getChapterUpdates = getChapterUpdates,
|
||||
|
@ -32,7 +32,7 @@ class BackupRestorer(
|
||||
private val preferenceRestorer: PreferenceRestorer = PreferenceRestorer(context),
|
||||
private val mangaRestorer: MangaRestorer = MangaRestorer(),
|
||||
// SY -->
|
||||
private val savedSearchRestorer: SavedSearchRestorer = SavedSearchRestorer()
|
||||
private val savedSearchRestorer: SavedSearchRestorer = SavedSearchRestorer(),
|
||||
// SY <--
|
||||
) {
|
||||
|
||||
@ -208,7 +208,7 @@ data class RestoreOptions(
|
||||
val sourceSettings: Boolean = true,
|
||||
val library: Boolean = true,
|
||||
// SY -->
|
||||
val savedSearches: Boolean = true
|
||||
val savedSearches: Boolean = true,
|
||||
// SY <--
|
||||
) {
|
||||
fun toBooleanArray() = booleanArrayOf(
|
||||
|
@ -92,7 +92,7 @@ class MangaRestorer(
|
||||
// SY -->
|
||||
mergedMangaReferences = backupManga.mergedMangaReferences,
|
||||
flatMetadata = backupManga.flatMetadata,
|
||||
customManga = backupManga.getCustomMangaInfo()
|
||||
customManga = backupManga.getCustomMangaInfo(),
|
||||
// SY <--
|
||||
)
|
||||
}
|
||||
|
@ -120,7 +120,9 @@ class PagePreviewFetcher(
|
||||
}
|
||||
|
||||
private suspend fun executeNetworkRequest(): Response {
|
||||
val response = sourceLazy.value?.fetchPreviewImage(page.getPagePreviewInfo(), getCacheControl()) ?: callFactoryLazy.value.newCall(newRequest()).await()
|
||||
val response = sourceLazy.value?.fetchPreviewImage(
|
||||
page.getPagePreviewInfo(), getCacheControl(),
|
||||
) ?: callFactoryLazy.value.newCall(newRequest()).await()
|
||||
if (!response.isSuccessful && response.code != HTTP_NOT_MODIFIED) {
|
||||
response.close()
|
||||
throw HttpException(response)
|
||||
|
@ -178,7 +178,9 @@ class DownloadCache(
|
||||
|
||||
val sourceDir = rootDownloadsDir.sourceDirs[manga.source]
|
||||
if (sourceDir != null) {
|
||||
val mangaDir = sourceDir.mangaDirs[provider.getMangaDirName(/* SY --> */ manga.ogTitle /* SY <-- */)]
|
||||
val mangaDir = sourceDir.mangaDirs[
|
||||
provider.getMangaDirName(/* SY --> */ manga.ogTitle /* SY <-- */),
|
||||
]
|
||||
if (mangaDir != null) {
|
||||
return mangaDir.chapterDirs.size
|
||||
}
|
||||
@ -228,7 +230,11 @@ class DownloadCache(
|
||||
suspend fun removeChapter(chapter: Chapter, manga: Manga) {
|
||||
rootDownloadsDirLock.withLock {
|
||||
val sourceDir = rootDownloadsDir.sourceDirs[manga.source] ?: return
|
||||
val mangaDir = sourceDir.mangaDirs[provider.getMangaDirName(/* SY --> */ manga.ogTitle /* SY <-- */)] ?: return
|
||||
val mangaDir = sourceDir.mangaDirs[
|
||||
provider.getMangaDirName(
|
||||
/* SY --> */ manga.ogTitle, /* SY <-- */
|
||||
),
|
||||
] ?: return
|
||||
provider.getValidChapterDirNames(chapter.name, chapter.scanlator).forEach {
|
||||
if (it in mangaDir.chapterDirs) {
|
||||
mangaDir.chapterDirs -= it
|
||||
@ -263,7 +269,11 @@ class DownloadCache(
|
||||
suspend fun removeChapters(chapters: List<Chapter>, manga: Manga) {
|
||||
rootDownloadsDirLock.withLock {
|
||||
val sourceDir = rootDownloadsDir.sourceDirs[manga.source] ?: return
|
||||
val mangaDir = sourceDir.mangaDirs[provider.getMangaDirName(/* SY --> */ manga.ogTitle /* SY <-- */)] ?: return
|
||||
val mangaDir = sourceDir.mangaDirs[
|
||||
provider.getMangaDirName(
|
||||
/* SY --> */ manga.ogTitle, /* SY <-- */
|
||||
),
|
||||
] ?: return
|
||||
chapters.forEach { chapter ->
|
||||
provider.getValidChapterDirNames(chapter.name, chapter.scanlator).forEach {
|
||||
if (it in mangaDir.chapterDirs) {
|
||||
|
@ -278,7 +278,10 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
|
||||
.filter {
|
||||
when {
|
||||
it.manga.updateStrategy != UpdateStrategy.ALWAYS_UPDATE -> {
|
||||
skippedUpdates.add(it.manga to context.stringResource(MR.strings.skipped_reason_not_always_update))
|
||||
skippedUpdates.add(
|
||||
it.manga to
|
||||
context.stringResource(MR.strings.skipped_reason_not_always_update),
|
||||
)
|
||||
false
|
||||
}
|
||||
|
||||
@ -298,7 +301,10 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
|
||||
}
|
||||
|
||||
MANGA_OUTSIDE_RELEASE_PERIOD in restrictions && it.manga.nextUpdate > fetchWindow.second -> {
|
||||
skippedUpdates.add(it.manga to context.stringResource(MR.strings.skipped_reason_not_in_release_period))
|
||||
skippedUpdates.add(
|
||||
it.manga to
|
||||
context.stringResource(MR.strings.skipped_reason_not_in_release_period),
|
||||
)
|
||||
false
|
||||
}
|
||||
else -> true
|
||||
@ -320,7 +326,9 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
|
||||
logcat {
|
||||
skippedUpdates
|
||||
.groupBy { it.second }
|
||||
.map { (reason, entries) -> "$reason: [${entries.map { it.first.title }.sorted().joinToString()}]" }
|
||||
.map { (reason, entries) ->
|
||||
"$reason: [${entries.map { it.first.title }.sorted().joinToString()}]"
|
||||
}
|
||||
.joinToString()
|
||||
}
|
||||
notifier.showUpdateSkippedNotification(skippedUpdates.size)
|
||||
@ -357,7 +365,10 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
|
||||
.map { mangaInSource ->
|
||||
async {
|
||||
semaphore.withPermit {
|
||||
if (mdlistLogged && mangaInSource.firstOrNull()?.let { it.manga.source in mangaDexSourceIds } == true) {
|
||||
if (
|
||||
mdlistLogged && mangaInSource.firstOrNull()
|
||||
?.let { it.manga.source in mangaDexSourceIds } == true
|
||||
) {
|
||||
launch {
|
||||
mangaInSource.forEach { (manga) ->
|
||||
try {
|
||||
@ -405,8 +416,10 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
|
||||
}
|
||||
} catch (e: Throwable) {
|
||||
val errorMessage = when (e) {
|
||||
is NoChaptersException -> context.stringResource(MR.strings.no_chapters_error)
|
||||
// failedUpdates will already have the source, don't need to copy it into the message
|
||||
is NoChaptersException ->
|
||||
context.stringResource(MR.strings.no_chapters_error)
|
||||
// failedUpdates will already have the source,
|
||||
// don't need to copy it into the message
|
||||
is SourceNotInstalledException -> context.stringResource(
|
||||
MR.strings.loader_not_implemented_error,
|
||||
)
|
||||
@ -513,7 +526,11 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
|
||||
val source = sourceManager.get(manga.source) ?: return@withUpdateNotification
|
||||
try {
|
||||
val networkManga = source.getMangaDetails(manga.toSManga())
|
||||
val updatedManga = manga.prepUpdateCover(coverCache, networkManga, true)
|
||||
val updatedManga = manga.prepUpdateCover(
|
||||
coverCache,
|
||||
networkManga,
|
||||
true,
|
||||
)
|
||||
.copyFrom(networkManga)
|
||||
try {
|
||||
updateManga.await(updatedManga.toMangaUpdate())
|
||||
@ -542,7 +559,8 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
|
||||
private suspend fun syncFollows() = coroutineScope {
|
||||
val preferences = Injekt.get<UnsortedPreferences>()
|
||||
var count = 0
|
||||
val mangaDex = MdUtil.getEnabledMangaDex(preferences, sourceManager = sourceManager) ?: return@coroutineScope
|
||||
val mangaDex = MdUtil.getEnabledMangaDex(preferences, sourceManager = sourceManager)
|
||||
?: return@coroutineScope
|
||||
val syncFollowStatusInts = preferences.mangadexSyncToLibraryIndexes().get().map { it.toInt() }
|
||||
|
||||
val size: Int
|
||||
@ -555,7 +573,9 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
|
||||
ensureActive()
|
||||
|
||||
count++
|
||||
notifier.showProgressNotification(listOf(Manga.create().copy(ogTitle = networkManga.title)), count, size)
|
||||
notifier.showProgressNotification(
|
||||
listOf(Manga.create().copy(ogTitle = networkManga.title)), count, size,
|
||||
)
|
||||
|
||||
var dbManga = getManga.await(networkManga.url, mangaDex.id)
|
||||
|
||||
|
@ -107,7 +107,9 @@ class LibraryUpdateNotifier(private val context: Context) {
|
||||
Notifications.CHANNEL_LIBRARY_PROGRESS,
|
||||
) {
|
||||
setContentTitle(context.stringResource(MR.strings.label_warning))
|
||||
setStyle(NotificationCompat.BigTextStyle().bigText(context.stringResource(MR.strings.notification_size_warning)))
|
||||
setStyle(
|
||||
NotificationCompat.BigTextStyle().bigText(context.stringResource(MR.strings.notification_size_warning)),
|
||||
)
|
||||
setSmallIcon(R.drawable.ic_warning_white_24dp)
|
||||
setTimeoutAfter(Downloader.WARNING_NOTIF_TIMEOUT_MS)
|
||||
setContentIntent(NotificationHandler.openUrl(context, HELP_WARNING_URL))
|
||||
@ -338,7 +340,9 @@ class LibraryUpdateNotifier(private val context: Context) {
|
||||
if (shouldTruncate) {
|
||||
// "Chapters 1, 2.5, 3, 4, 5 and 10 more"
|
||||
val remaining = displayableChapterNumbers.size - NOTIF_MAX_CHAPTERS
|
||||
val joinedChapterNumbers = displayableChapterNumbers.take(NOTIF_MAX_CHAPTERS).joinToString(", ")
|
||||
val joinedChapterNumbers = displayableChapterNumbers
|
||||
.take(NOTIF_MAX_CHAPTERS)
|
||||
.joinToString(", ")
|
||||
context.pluralStringResource(
|
||||
MR.plurals.notification_chapters_multiple_and_more,
|
||||
remaining,
|
||||
|
@ -138,7 +138,7 @@ class AppModule(val app: Application) : InjektModule {
|
||||
addSingletonFactory { ChapterCache(app) }
|
||||
addSingletonFactory { CoverCache(app) }
|
||||
|
||||
addSingletonFactory { NetworkHelper(app, get()) }
|
||||
addSingletonFactory { NetworkHelper(app, get(), BuildConfig.DEBUG) }
|
||||
addSingletonFactory { JavaScriptEngine(app) }
|
||||
|
||||
addSingletonFactory<SourceManager> { AndroidSourceManager(app, get(), get()) }
|
||||
|
@ -17,7 +17,7 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.MutableState
|
||||
import androidx.compose.runtime.RememberObserver
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.mutableDoubleStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.rememberCoroutineScope
|
||||
import androidx.compose.ui.Alignment
|
||||
@ -132,7 +132,7 @@ private fun Boolean.asEnabledString() = if (this) "enabled" else "disabled"
|
||||
private class FpsState(private val interval: Int) :
|
||||
Choreographer.FrameCallback,
|
||||
RememberObserver,
|
||||
MutableState<Double> by mutableStateOf(0.0) {
|
||||
MutableState<Double> by mutableDoubleStateOf(0.0) {
|
||||
private val choreographer = Choreographer.getInstance()
|
||||
private var startFrameTimeMillis: Long = 0
|
||||
private var numFramesRendered = 0
|
||||
|
@ -237,6 +237,7 @@ class EnhancedFilePrinter internal constructor(
|
||||
*/
|
||||
var lastFileName: String? = null
|
||||
private set
|
||||
|
||||
/**
|
||||
* Get the current log file.
|
||||
*
|
||||
|
@ -1,7 +1,6 @@
|
||||
package eu.kanade.tachiyomi.network
|
||||
|
||||
import android.content.Context
|
||||
import eu.kanade.tachiyomi.core.BuildConfig
|
||||
import eu.kanade.tachiyomi.network.interceptor.CloudflareInterceptor
|
||||
import eu.kanade.tachiyomi.network.interceptor.UncaughtExceptionInterceptor
|
||||
import eu.kanade.tachiyomi.network.interceptor.UserAgentInterceptor
|
||||
@ -16,6 +15,9 @@ import java.util.concurrent.TimeUnit
|
||||
open /* SY <-- */ class NetworkHelper(
|
||||
private val context: Context,
|
||||
private val preferences: NetworkPreferences,
|
||||
// SY -->
|
||||
val isDebugBuild: Boolean,
|
||||
// SY <--
|
||||
) {
|
||||
|
||||
/* SY --> */
|
||||
@ -38,7 +40,7 @@ open /* SY <-- */ class NetworkHelper(
|
||||
.addInterceptor(UncaughtExceptionInterceptor())
|
||||
.addInterceptor(UserAgentInterceptor(::defaultUserAgentProvider))
|
||||
|
||||
if (BuildConfig.DEBUG) {
|
||||
if (isDebugBuild) {
|
||||
val httpLoggingInterceptor = HttpLoggingInterceptor().apply {
|
||||
level = HttpLoggingInterceptor.Level.HEADERS
|
||||
}
|
||||
|
@ -131,13 +131,24 @@ class ChapterRepositoryImpl(
|
||||
|
||||
override suspend fun getMergedChapterByMangaId(mangaId: Long, applyScanlatorFilter: Boolean): List<Chapter> {
|
||||
return handler.awaitList {
|
||||
chaptersQueries.getMergedChaptersByMangaId(mangaId, applyScanlatorFilter.toLong(), ChapterMapper::mapChapter)
|
||||
chaptersQueries.getMergedChaptersByMangaId(
|
||||
mangaId,
|
||||
applyScanlatorFilter.toLong(),
|
||||
ChapterMapper::mapChapter,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun getMergedChapterByMangaIdAsFlow(mangaId: Long, applyScanlatorFilter: Boolean): Flow<List<Chapter>> {
|
||||
override suspend fun getMergedChapterByMangaIdAsFlow(
|
||||
mangaId: Long,
|
||||
applyScanlatorFilter: Boolean,
|
||||
): Flow<List<Chapter>> {
|
||||
return handler.subscribeToList {
|
||||
chaptersQueries.getMergedChaptersByMangaId(mangaId, applyScanlatorFilter.toLong(), ChapterMapper::mapChapter)
|
||||
chaptersQueries.getMergedChaptersByMangaId(
|
||||
mangaId,
|
||||
applyScanlatorFilter.toLong(),
|
||||
ChapterMapper::mapChapter,
|
||||
)
|
||||
}
|
||||
}
|
||||
// SY <--
|
||||
|
@ -21,7 +21,11 @@ class GetMergedChaptersByMangaId(
|
||||
dedupe: Boolean = true,
|
||||
applyScanlatorFilter: Boolean = false,
|
||||
): List<Chapter> {
|
||||
return transformMergedChapters(getMergedReferencesById.await(mangaId), getFromDatabase(mangaId, applyScanlatorFilter), dedupe)
|
||||
return transformMergedChapters(
|
||||
getMergedReferencesById.await(mangaId),
|
||||
getFromDatabase(mangaId, applyScanlatorFilter),
|
||||
dedupe,
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun subscribe(
|
||||
|
@ -33,6 +33,9 @@ interface ChapterRepository {
|
||||
|
||||
suspend fun getMergedChapterByMangaId(mangaId: Long, applyScanlatorFilter: Boolean = false): List<Chapter>
|
||||
|
||||
suspend fun getMergedChapterByMangaIdAsFlow(mangaId: Long, applyScanlatorFilter: Boolean = false): Flow<List<Chapter>>
|
||||
suspend fun getMergedChapterByMangaIdAsFlow(
|
||||
mangaId: Long,
|
||||
applyScanlatorFilter: Boolean = false,
|
||||
): Flow<List<Chapter>>
|
||||
// SY <--
|
||||
}
|
||||
|
@ -73,6 +73,7 @@ class StorageManager(
|
||||
private const val AUTOMATIC_BACKUPS_PATH = "autobackup"
|
||||
private const val DOWNLOADS_PATH = "downloads"
|
||||
private const val LOCAL_SOURCE_PATH = "local"
|
||||
|
||||
// SY -->
|
||||
private const val LOGS_PATH = "logs"
|
||||
// SY <--
|
||||
|
@ -40,7 +40,7 @@ abstract class HttpSource : CatalogueSource {
|
||||
// SY -->
|
||||
protected val network: NetworkHelper by lazy {
|
||||
val network = Injekt.get<NetworkHelper>()
|
||||
object : NetworkHelper(Injekt.get<Application>(), Injekt.get()) {
|
||||
object : NetworkHelper(Injekt.get<Application>(), Injekt.get(), network.isDebugBuild) {
|
||||
override val client: OkHttpClient
|
||||
get() = delegate?.networkHttpClient ?: network.client
|
||||
.newBuilder()
|
||||
|
@ -106,7 +106,9 @@ class EHentaiSearchMetadata : RaisedSearchMetadata() {
|
||||
getItem(visible) { stringResource(SYMR.strings.visible) },
|
||||
getItem(language) { stringResource(SYMR.strings.language) },
|
||||
getItem(translated) { stringResource(SYMR.strings.translated) },
|
||||
getItem(size, { MetadataUtil.humanReadableByteCount(it, true) }) { stringResource(SYMR.strings.gallery_size) },
|
||||
getItem(size, { MetadataUtil.humanReadableByteCount(it, true) }) {
|
||||
stringResource(SYMR.strings.gallery_size)
|
||||
},
|
||||
getItem(length) { stringResource(SYMR.strings.page_count) },
|
||||
getItem(favorites) { stringResource(SYMR.strings.total_favorites) },
|
||||
getItem(ratingCount) { stringResource(SYMR.strings.total_ratings) },
|
||||
|
@ -44,7 +44,9 @@ class EightMusesSearchMetadata : RaisedSearchMetadata() {
|
||||
return with(context) {
|
||||
listOfNotNull(
|
||||
getItem(title) { stringResource(MR.strings.title) },
|
||||
getItem(path.nullIfEmpty(), { it.joinToString("/", prefix = "/") }) { stringResource(SYMR.strings.path) },
|
||||
getItem(path.nullIfEmpty(), { it.joinToString("/", prefix = "/") }) {
|
||||
stringResource(SYMR.strings.path)
|
||||
},
|
||||
getItem(thumbnailUrl) { stringResource(SYMR.strings.thumbnail_url) },
|
||||
)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user