mirror of
https://github.com/aniyomiorg/aniyomi.git
synced 2024-11-22 12:48:15 +03:00
parent
c0324ecfaa
commit
4f5ea9965c
119 changed files with 358 additions and 1090 deletions
|
@ -1,15 +1,5 @@
|
|||
package eu.kanade.domain
|
||||
|
||||
import eu.kanade.data.source.anime.AnimeSourceRepositoryImpl
|
||||
import eu.kanade.data.source.manga.MangaSourceRepositoryImpl
|
||||
import eu.kanade.domain.category.anime.interactor.CreateAnimeCategoryWithName
|
||||
import eu.kanade.domain.category.anime.interactor.ResetAnimeCategoryFlags
|
||||
import eu.kanade.domain.category.anime.interactor.SetDisplayModeForAnimeCategory
|
||||
import eu.kanade.domain.category.anime.interactor.SetSortModeForAnimeCategory
|
||||
import eu.kanade.domain.category.manga.interactor.CreateMangaCategoryWithName
|
||||
import eu.kanade.domain.category.manga.interactor.ResetMangaCategoryFlags
|
||||
import eu.kanade.domain.category.manga.interactor.SetDisplayModeForMangaCategory
|
||||
import eu.kanade.domain.category.manga.interactor.SetSortModeForMangaCategory
|
||||
import eu.kanade.domain.download.anime.interactor.DeleteAnimeDownload
|
||||
import eu.kanade.domain.download.manga.interactor.DeleteChapterDownload
|
||||
import eu.kanade.domain.entries.anime.interactor.SetAnimeViewerFlags
|
||||
|
@ -22,31 +12,22 @@ import eu.kanade.domain.extension.anime.interactor.GetAnimeExtensionsByType
|
|||
import eu.kanade.domain.extension.manga.interactor.GetExtensionSources
|
||||
import eu.kanade.domain.extension.manga.interactor.GetMangaExtensionLanguages
|
||||
import eu.kanade.domain.extension.manga.interactor.GetMangaExtensionsByType
|
||||
import eu.kanade.domain.history.anime.interactor.GetNextEpisodes
|
||||
import eu.kanade.domain.history.manga.interactor.GetNextChapters
|
||||
import eu.kanade.domain.items.chapter.interactor.SetReadStatus
|
||||
import eu.kanade.domain.items.chapter.interactor.SyncChaptersWithSource
|
||||
import eu.kanade.domain.items.chapter.interactor.SyncChaptersWithTrackServiceTwoWay
|
||||
import eu.kanade.domain.items.episode.interactor.SetAnimeDefaultEpisodeFlags
|
||||
import eu.kanade.domain.items.episode.interactor.SetSeenStatus
|
||||
import eu.kanade.domain.items.episode.interactor.SyncEpisodesWithSource
|
||||
import eu.kanade.domain.items.episode.interactor.SyncEpisodesWithTrackServiceTwoWay
|
||||
import eu.kanade.domain.source.anime.interactor.GetAnimeSourcesWithFavoriteCount
|
||||
import eu.kanade.domain.source.anime.interactor.GetAnimeSourcesWithNonLibraryAnime
|
||||
import eu.kanade.domain.source.anime.interactor.GetEnabledAnimeSources
|
||||
import eu.kanade.domain.source.anime.interactor.GetLanguagesWithAnimeSources
|
||||
import eu.kanade.domain.source.anime.interactor.GetRemoteAnime
|
||||
import eu.kanade.domain.source.anime.interactor.ToggleAnimeSource
|
||||
import eu.kanade.domain.source.anime.interactor.ToggleAnimeSourcePin
|
||||
import eu.kanade.domain.source.anime.repository.AnimeSourceRepository
|
||||
import eu.kanade.domain.source.manga.interactor.GetEnabledMangaSources
|
||||
import eu.kanade.domain.source.manga.interactor.GetLanguagesWithMangaSources
|
||||
import eu.kanade.domain.source.manga.interactor.GetMangaSourcesWithFavoriteCount
|
||||
import eu.kanade.domain.source.manga.interactor.GetMangaSourcesWithNonLibraryManga
|
||||
import eu.kanade.domain.source.manga.interactor.GetRemoteManga
|
||||
import eu.kanade.domain.source.manga.interactor.ToggleMangaSource
|
||||
import eu.kanade.domain.source.manga.interactor.ToggleMangaSourcePin
|
||||
import eu.kanade.domain.source.manga.repository.MangaSourceRepository
|
||||
import eu.kanade.domain.source.service.SetMigrateSorting
|
||||
import eu.kanade.domain.source.service.ToggleLanguage
|
||||
import tachiyomi.data.category.anime.AnimeCategoryRepositoryImpl
|
||||
|
@ -58,23 +39,33 @@ import tachiyomi.data.history.manga.MangaHistoryRepositoryImpl
|
|||
import tachiyomi.data.items.chapter.ChapterRepositoryImpl
|
||||
import tachiyomi.data.items.episode.EpisodeRepositoryImpl
|
||||
import tachiyomi.data.source.anime.AnimeSourceDataRepositoryImpl
|
||||
import tachiyomi.data.source.anime.AnimeSourceRepositoryImpl
|
||||
import tachiyomi.data.source.manga.MangaSourceDataRepositoryImpl
|
||||
import tachiyomi.data.source.manga.MangaSourceRepositoryImpl
|
||||
import tachiyomi.data.track.anime.AnimeTrackRepositoryImpl
|
||||
import tachiyomi.data.track.manga.MangaTrackRepositoryImpl
|
||||
import tachiyomi.data.updates.anime.AnimeUpdatesRepositoryImpl
|
||||
import tachiyomi.data.updates.manga.MangaUpdatesRepositoryImpl
|
||||
import tachiyomi.domain.category.anime.interactor.CreateAnimeCategoryWithName
|
||||
import tachiyomi.domain.category.anime.interactor.DeleteAnimeCategory
|
||||
import tachiyomi.domain.category.anime.interactor.GetAnimeCategories
|
||||
import tachiyomi.domain.category.anime.interactor.RenameAnimeCategory
|
||||
import tachiyomi.domain.category.anime.interactor.ReorderAnimeCategory
|
||||
import tachiyomi.domain.category.anime.interactor.ResetAnimeCategoryFlags
|
||||
import tachiyomi.domain.category.anime.interactor.SetAnimeCategories
|
||||
import tachiyomi.domain.category.anime.interactor.SetDisplayModeForAnimeCategory
|
||||
import tachiyomi.domain.category.anime.interactor.SetSortModeForAnimeCategory
|
||||
import tachiyomi.domain.category.anime.interactor.UpdateAnimeCategory
|
||||
import tachiyomi.domain.category.anime.repository.AnimeCategoryRepository
|
||||
import tachiyomi.domain.category.manga.interactor.CreateMangaCategoryWithName
|
||||
import tachiyomi.domain.category.manga.interactor.DeleteMangaCategory
|
||||
import tachiyomi.domain.category.manga.interactor.GetMangaCategories
|
||||
import tachiyomi.domain.category.manga.interactor.RenameMangaCategory
|
||||
import tachiyomi.domain.category.manga.interactor.ReorderMangaCategory
|
||||
import tachiyomi.domain.category.manga.interactor.ResetMangaCategoryFlags
|
||||
import tachiyomi.domain.category.manga.interactor.SetDisplayModeForMangaCategory
|
||||
import tachiyomi.domain.category.manga.interactor.SetMangaCategories
|
||||
import tachiyomi.domain.category.manga.interactor.SetSortModeForMangaCategory
|
||||
import tachiyomi.domain.category.manga.interactor.UpdateMangaCategory
|
||||
import tachiyomi.domain.category.manga.repository.MangaCategoryRepository
|
||||
import tachiyomi.domain.entries.anime.interactor.GetAnime
|
||||
|
@ -96,26 +87,36 @@ import tachiyomi.domain.entries.manga.interactor.ResetMangaViewerFlags
|
|||
import tachiyomi.domain.entries.manga.interactor.SetMangaChapterFlags
|
||||
import tachiyomi.domain.entries.manga.repository.MangaRepository
|
||||
import tachiyomi.domain.history.anime.interactor.GetAnimeHistory
|
||||
import tachiyomi.domain.history.anime.interactor.GetNextEpisodes
|
||||
import tachiyomi.domain.history.anime.interactor.RemoveAnimeHistory
|
||||
import tachiyomi.domain.history.anime.interactor.UpsertAnimeHistory
|
||||
import tachiyomi.domain.history.anime.repository.AnimeHistoryRepository
|
||||
import tachiyomi.domain.history.manga.interactor.GetMangaHistory
|
||||
import tachiyomi.domain.history.manga.interactor.GetNextChapters
|
||||
import tachiyomi.domain.history.manga.interactor.GetTotalReadDuration
|
||||
import tachiyomi.domain.history.manga.interactor.RemoveMangaHistory
|
||||
import tachiyomi.domain.history.manga.interactor.UpsertMangaHistory
|
||||
import tachiyomi.domain.history.manga.repository.MangaHistoryRepository
|
||||
import tachiyomi.domain.items.chapter.interactor.GetChapter
|
||||
import tachiyomi.domain.items.chapter.interactor.GetChapterByMangaId
|
||||
import tachiyomi.domain.items.chapter.interactor.SetMangaDefaultChapterFlags
|
||||
import tachiyomi.domain.items.chapter.interactor.ShouldUpdateDbChapter
|
||||
import tachiyomi.domain.items.chapter.interactor.UpdateChapter
|
||||
import tachiyomi.domain.items.chapter.repository.ChapterRepository
|
||||
import tachiyomi.domain.items.episode.interactor.GetEpisode
|
||||
import tachiyomi.domain.items.episode.interactor.GetEpisodeByAnimeId
|
||||
import tachiyomi.domain.items.episode.interactor.SetAnimeDefaultEpisodeFlags
|
||||
import tachiyomi.domain.items.episode.interactor.ShouldUpdateDbEpisode
|
||||
import tachiyomi.domain.items.episode.interactor.UpdateEpisode
|
||||
import tachiyomi.domain.items.episode.repository.EpisodeRepository
|
||||
import tachiyomi.domain.source.anime.interactor.GetAnimeSourcesWithNonLibraryAnime
|
||||
import tachiyomi.domain.source.anime.interactor.GetRemoteAnime
|
||||
import tachiyomi.domain.source.anime.repository.AnimeSourceDataRepository
|
||||
import tachiyomi.domain.source.anime.repository.AnimeSourceRepository
|
||||
import tachiyomi.domain.source.manga.interactor.GetMangaSourcesWithNonLibraryManga
|
||||
import tachiyomi.domain.source.manga.interactor.GetRemoteManga
|
||||
import tachiyomi.domain.source.manga.repository.MangaSourceDataRepository
|
||||
import tachiyomi.domain.source.manga.repository.MangaSourceRepository
|
||||
import tachiyomi.domain.track.anime.interactor.DeleteAnimeTrack
|
||||
import tachiyomi.domain.track.anime.interactor.GetAnimeTracks
|
||||
import tachiyomi.domain.track.anime.interactor.GetTracksPerAnime
|
||||
|
@ -186,7 +187,7 @@ class DomainModule : InjektModule {
|
|||
addFactory { ResetMangaViewerFlags(get()) }
|
||||
addFactory { SetMangaChapterFlags(get()) }
|
||||
addFactory {
|
||||
eu.kanade.domain.items.chapter.interactor.SetMangaDefaultChapterFlags(
|
||||
SetMangaDefaultChapterFlags(
|
||||
get(),
|
||||
get(),
|
||||
get(),
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package eu.kanade.domain.source.anime.interactor
|
||||
|
||||
import eu.kanade.domain.source.anime.repository.AnimeSourceRepository
|
||||
import eu.kanade.domain.source.service.SetMigrateSorting
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import tachiyomi.domain.source.anime.model.AnimeSource
|
||||
import tachiyomi.domain.source.anime.repository.AnimeSourceRepository
|
||||
import tachiyomi.source.local.entries.anime.LocalAnimeSource
|
||||
import java.text.Collator
|
||||
import java.util.Collections
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package eu.kanade.domain.source.anime.interactor
|
||||
|
||||
import eu.kanade.domain.source.anime.repository.AnimeSourceRepository
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.combine
|
||||
|
@ -8,6 +7,7 @@ import kotlinx.coroutines.flow.distinctUntilChanged
|
|||
import tachiyomi.domain.source.anime.model.AnimeSource
|
||||
import tachiyomi.domain.source.anime.model.Pin
|
||||
import tachiyomi.domain.source.anime.model.Pins
|
||||
import tachiyomi.domain.source.anime.repository.AnimeSourceRepository
|
||||
import tachiyomi.source.local.entries.anime.LocalAnimeSource
|
||||
|
||||
class GetEnabledAnimeSources(
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package eu.kanade.domain.source.anime.interactor
|
||||
|
||||
import eu.kanade.domain.source.anime.repository.AnimeSourceRepository
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import tachiyomi.domain.source.anime.model.AnimeSource
|
||||
import tachiyomi.domain.source.anime.repository.AnimeSourceRepository
|
||||
|
||||
class GetLanguagesWithAnimeSources(
|
||||
private val repository: AnimeSourceRepository,
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package eu.kanade.domain.source.manga.interactor
|
||||
|
||||
import eu.kanade.domain.source.manga.repository.MangaSourceRepository
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.combine
|
||||
|
@ -8,6 +7,7 @@ import kotlinx.coroutines.flow.distinctUntilChanged
|
|||
import tachiyomi.domain.source.manga.model.Pin
|
||||
import tachiyomi.domain.source.manga.model.Pins
|
||||
import tachiyomi.domain.source.manga.model.Source
|
||||
import tachiyomi.domain.source.manga.repository.MangaSourceRepository
|
||||
import tachiyomi.source.local.entries.manga.LocalMangaSource
|
||||
|
||||
class GetEnabledMangaSources(
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package eu.kanade.domain.source.manga.interactor
|
||||
|
||||
import eu.kanade.domain.source.manga.repository.MangaSourceRepository
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import tachiyomi.domain.source.manga.model.Source
|
||||
import tachiyomi.domain.source.manga.repository.MangaSourceRepository
|
||||
|
||||
class GetLanguagesWithMangaSources(
|
||||
private val repository: MangaSourceRepository,
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package eu.kanade.domain.source.manga.interactor
|
||||
|
||||
import eu.kanade.domain.source.manga.repository.MangaSourceRepository
|
||||
import eu.kanade.domain.source.service.SetMigrateSorting
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import tachiyomi.domain.source.manga.model.Source
|
||||
import tachiyomi.domain.source.manga.repository.MangaSourceRepository
|
||||
import tachiyomi.source.local.entries.manga.LocalMangaSource
|
||||
import java.text.Collator
|
||||
import java.util.Collections
|
||||
|
|
|
@ -59,7 +59,7 @@ fun GlobalAnimeSearchScreen(
|
|||
}
|
||||
|
||||
@Composable
|
||||
fun GlobalAnimeSearchContent(
|
||||
private fun GlobalAnimeSearchContent(
|
||||
items: Map<AnimeCatalogueSource, AnimeSearchItemResult>,
|
||||
contentPadding: PaddingValues,
|
||||
getAnime: @Composable (AnimeCatalogueSource, Anime) -> State<Anime>,
|
||||
|
|
|
@ -58,7 +58,7 @@ fun BrowseAnimeSourceComfortableGrid(
|
|||
}
|
||||
|
||||
@Composable
|
||||
fun BrowseAnimeSourceComfortableGridItem(
|
||||
private fun BrowseAnimeSourceComfortableGridItem(
|
||||
anime: Anime,
|
||||
onClick: () -> Unit = {},
|
||||
onLongClick: () -> Unit = onClick,
|
||||
|
|
|
@ -53,7 +53,7 @@ fun BrowseAnimeSourceList(
|
|||
}
|
||||
|
||||
@Composable
|
||||
fun BrowseAnimeSourceListItem(
|
||||
private fun BrowseAnimeSourceListItem(
|
||||
anime: Anime,
|
||||
onClick: () -> Unit = {},
|
||||
onLongClick: () -> Unit = onClick,
|
||||
|
|
|
@ -59,7 +59,7 @@ fun GlobalMangaSearchScreen(
|
|||
}
|
||||
|
||||
@Composable
|
||||
fun GlobalSearchContent(
|
||||
private fun GlobalSearchContent(
|
||||
items: Map<CatalogueSource, MangaSearchItemResult>,
|
||||
contentPadding: PaddingValues,
|
||||
getManga: @Composable (CatalogueSource, Manga) -> State<Manga>,
|
||||
|
|
|
@ -57,7 +57,7 @@ fun BrowseMangaSourceComfortableGrid(
|
|||
}
|
||||
|
||||
@Composable
|
||||
fun BrowseMangaSourceComfortableGridItem(
|
||||
private fun BrowseMangaSourceComfortableGridItem(
|
||||
manga: Manga,
|
||||
onClick: () -> Unit = {},
|
||||
onLongClick: () -> Unit = onClick,
|
||||
|
|
|
@ -52,7 +52,7 @@ fun BrowseMangaSourceList(
|
|||
}
|
||||
|
||||
@Composable
|
||||
fun BrowseMangaSourceListItem(
|
||||
private fun BrowseMangaSourceListItem(
|
||||
manga: Manga,
|
||||
onClick: () -> Unit = {},
|
||||
onLongClick: () -> Unit = onClick,
|
||||
|
|
|
@ -10,7 +10,7 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.unit.dp
|
||||
|
||||
@Composable
|
||||
fun BrowseSourceLoadingItem() {
|
||||
internal fun BrowseSourceLoadingItem() {
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
package eu.kanade.presentation.entries.anime.components
|
||||
|
||||
import androidx.compose.foundation.combinedClickable
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.sizeIn
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Bookmark
|
||||
import androidx.compose.material.icons.filled.Circle
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.LocalContentColor
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.ProvideTextStyle
|
||||
import androidx.compose.material3.Text
|
||||
|
@ -63,9 +65,25 @@ fun AnimeEpisodeListItem(
|
|||
)
|
||||
.padding(start = 16.dp, top = 12.dp, end = 8.dp, bottom = 12.dp),
|
||||
) {
|
||||
Column(modifier = Modifier.weight(1f)) {
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
Column(
|
||||
modifier = Modifier.weight(1f),
|
||||
verticalArrangement = Arrangement.spacedBy(6.dp),
|
||||
) {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.spacedBy(2.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
var textHeight by remember { mutableStateOf(0) }
|
||||
if (!seen) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Circle,
|
||||
contentDescription = stringResource(R.string.unread),
|
||||
modifier = Modifier
|
||||
.height(8.dp)
|
||||
.padding(end = 4.dp),
|
||||
tint = MaterialTheme.colorScheme.primary,
|
||||
)
|
||||
}
|
||||
if (bookmark) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Bookmark,
|
||||
|
@ -74,11 +92,11 @@ fun AnimeEpisodeListItem(
|
|||
.sizeIn(maxHeight = with(LocalDensity.current) { textHeight.toDp() - 2.dp }),
|
||||
tint = MaterialTheme.colorScheme.primary,
|
||||
)
|
||||
Spacer(modifier = Modifier.width(2.dp))
|
||||
}
|
||||
Text(
|
||||
text = title,
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
color = LocalContentColor.current.copy(alpha = textAlpha),
|
||||
maxLines = 1,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
onTextLayout = { textHeight = it.size.height },
|
||||
|
@ -86,11 +104,12 @@ fun AnimeEpisodeListItem(
|
|||
)
|
||||
}
|
||||
|
||||
Spacer(modifier = Modifier.height(6.dp))
|
||||
|
||||
Row(modifier = Modifier.alpha(textSubtitleAlpha)) {
|
||||
Row {
|
||||
ProvideTextStyle(
|
||||
value = MaterialTheme.typography.bodyMedium.copy(fontSize = 12.sp),
|
||||
value = MaterialTheme.typography.bodyMedium.copy(
|
||||
fontSize = 12.sp,
|
||||
color = LocalContentColor.current.copy(alpha = textSubtitleAlpha),
|
||||
),
|
||||
) {
|
||||
if (date != null) {
|
||||
Text(
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
package eu.kanade.presentation.entries.manga.components
|
||||
|
||||
import androidx.compose.foundation.combinedClickable
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.sizeIn
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Bookmark
|
||||
import androidx.compose.material.icons.filled.Circle
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.LocalContentColor
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.ProvideTextStyle
|
||||
import androidx.compose.material3.Text
|
||||
|
@ -63,9 +64,25 @@ fun MangaChapterListItem(
|
|||
)
|
||||
.padding(start = 16.dp, top = 12.dp, end = 8.dp, bottom = 12.dp),
|
||||
) {
|
||||
Column(modifier = Modifier.weight(1f)) {
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
Column(
|
||||
modifier = Modifier.weight(1f),
|
||||
verticalArrangement = Arrangement.spacedBy(6.dp),
|
||||
) {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.spacedBy(2.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
var textHeight by remember { mutableStateOf(0) }
|
||||
if (!read) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Circle,
|
||||
contentDescription = stringResource(R.string.unread),
|
||||
modifier = Modifier
|
||||
.height(8.dp)
|
||||
.padding(end = 4.dp),
|
||||
tint = MaterialTheme.colorScheme.primary,
|
||||
)
|
||||
}
|
||||
if (bookmark) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Bookmark,
|
||||
|
@ -74,11 +91,11 @@ fun MangaChapterListItem(
|
|||
.sizeIn(maxHeight = with(LocalDensity.current) { textHeight.toDp() - 2.dp }),
|
||||
tint = MaterialTheme.colorScheme.primary,
|
||||
)
|
||||
Spacer(modifier = Modifier.width(2.dp))
|
||||
}
|
||||
Text(
|
||||
text = title,
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
color = LocalContentColor.current.copy(alpha = textAlpha),
|
||||
maxLines = 1,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
onTextLayout = { textHeight = it.size.height },
|
||||
|
@ -86,11 +103,12 @@ fun MangaChapterListItem(
|
|||
)
|
||||
}
|
||||
|
||||
Spacer(modifier = Modifier.height(6.dp))
|
||||
|
||||
Row(modifier = Modifier.alpha(textSubtitleAlpha)) {
|
||||
Row {
|
||||
ProvideTextStyle(
|
||||
value = MaterialTheme.typography.bodyMedium.copy(fontSize = 12.sp),
|
||||
value = MaterialTheme.typography.bodyMedium.copy(
|
||||
fontSize = 12.sp,
|
||||
color = LocalContentColor.current.copy(alpha = textSubtitleAlpha),
|
||||
),
|
||||
) {
|
||||
if (date != null) {
|
||||
Text(
|
||||
|
|
|
@ -9,7 +9,6 @@ import androidx.compose.runtime.Composable
|
|||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.components.TabbedDialog
|
||||
import eu.kanade.presentation.components.TabbedDialogPaddings
|
||||
import eu.kanade.presentation.components.TriStateItem
|
||||
|
@ -22,6 +21,7 @@ import tachiyomi.domain.library.anime.model.AnimeLibrarySort
|
|||
import tachiyomi.domain.library.anime.model.sort
|
||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||
import tachiyomi.domain.library.model.display
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.presentation.core.components.CheckboxItem
|
||||
import tachiyomi.presentation.core.components.HeadingItem
|
||||
import tachiyomi.presentation.core.components.RadioItem
|
||||
|
|
|
@ -9,7 +9,6 @@ import androidx.compose.runtime.Composable
|
|||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.components.TabbedDialog
|
||||
import eu.kanade.presentation.components.TabbedDialogPaddings
|
||||
import eu.kanade.presentation.components.TriStateItem
|
||||
|
@ -22,6 +21,7 @@ import tachiyomi.domain.library.manga.model.MangaLibrarySort
|
|||
import tachiyomi.domain.library.manga.model.sort
|
||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||
import tachiyomi.domain.library.model.display
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.presentation.core.components.CheckboxItem
|
||||
import tachiyomi.presentation.core.components.HeadingItem
|
||||
import tachiyomi.presentation.core.components.RadioItem
|
||||
|
|
|
@ -26,13 +26,13 @@ import androidx.compose.ui.platform.LocalUriHandler
|
|||
import androidx.compose.ui.res.pluralStringResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.res.vectorResource
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.components.WarningBanner
|
||||
import eu.kanade.presentation.more.settings.widget.SwitchPreferenceWidget
|
||||
import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.core.Constants
|
||||
import eu.kanade.tachiyomi.ui.more.DownloadQueueState
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
||||
import tachiyomi.presentation.core.components.material.Divider
|
||||
import tachiyomi.presentation.core.components.material.Scaffold
|
||||
|
|
|
@ -32,7 +32,6 @@ import cafe.adriel.voyager.core.model.coroutineScope
|
|||
import cafe.adriel.voyager.core.model.rememberScreenModel
|
||||
import cafe.adriel.voyager.navigator.LocalNavigator
|
||||
import cafe.adriel.voyager.navigator.currentOrThrow
|
||||
import eu.kanade.domain.source.anime.interactor.GetAnimeSourcesWithNonLibraryAnime
|
||||
import eu.kanade.presentation.browse.anime.components.AnimeSourceIcon
|
||||
import eu.kanade.presentation.components.AppBar
|
||||
import eu.kanade.presentation.components.AppBarActions
|
||||
|
@ -44,6 +43,7 @@ import kotlinx.coroutines.flow.update
|
|||
import tachiyomi.core.util.lang.launchIO
|
||||
import tachiyomi.core.util.lang.launchUI
|
||||
import tachiyomi.core.util.lang.withNonCancellableContext
|
||||
import tachiyomi.domain.source.anime.interactor.GetAnimeSourcesWithNonLibraryAnime
|
||||
import tachiyomi.domain.source.anime.model.AnimeSource
|
||||
import tachiyomi.domain.source.anime.model.AnimeSourceWithCount
|
||||
import tachiyomi.mi.data.AnimeDatabase
|
||||
|
|
|
@ -32,7 +32,6 @@ import cafe.adriel.voyager.core.model.coroutineScope
|
|||
import cafe.adriel.voyager.core.model.rememberScreenModel
|
||||
import cafe.adriel.voyager.navigator.LocalNavigator
|
||||
import cafe.adriel.voyager.navigator.currentOrThrow
|
||||
import eu.kanade.domain.source.manga.interactor.GetMangaSourcesWithNonLibraryManga
|
||||
import eu.kanade.presentation.browse.manga.components.MangaSourceIcon
|
||||
import eu.kanade.presentation.components.AppBar
|
||||
import eu.kanade.presentation.components.AppBarActions
|
||||
|
@ -45,6 +44,7 @@ import tachiyomi.core.util.lang.launchIO
|
|||
import tachiyomi.core.util.lang.launchUI
|
||||
import tachiyomi.core.util.lang.withNonCancellableContext
|
||||
import tachiyomi.data.Database
|
||||
import tachiyomi.domain.source.manga.interactor.GetMangaSourcesWithNonLibraryManga
|
||||
import tachiyomi.domain.source.manga.model.MangaSourceWithCount
|
||||
import tachiyomi.domain.source.manga.model.Source
|
||||
import tachiyomi.presentation.core.components.FastScrollLazyColumn
|
||||
|
|
|
@ -25,7 +25,6 @@ import androidx.core.net.toUri
|
|||
import cafe.adriel.voyager.navigator.LocalNavigator
|
||||
import cafe.adriel.voyager.navigator.currentOrThrow
|
||||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.more.settings.Preference
|
||||
import eu.kanade.presentation.util.collectAsState
|
||||
import eu.kanade.tachiyomi.R
|
||||
|
@ -62,6 +61,7 @@ import tachiyomi.core.util.lang.launchNonCancellable
|
|||
import tachiyomi.core.util.lang.withUIContext
|
||||
import tachiyomi.core.util.system.logcat
|
||||
import tachiyomi.domain.entries.manga.repository.MangaRepository
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.io.File
|
||||
|
|
|
@ -19,7 +19,6 @@ import androidx.compose.ui.res.stringResource
|
|||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.more.settings.Preference
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.ui.home.HomeScreen
|
||||
|
@ -27,6 +26,7 @@ import eu.kanade.tachiyomi.util.system.LocaleHelper
|
|||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.flow.drop
|
||||
import org.xmlpull.v1.XmlPullParser
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
||||
|
|
|
@ -31,28 +31,28 @@ import androidx.core.content.ContextCompat
|
|||
import cafe.adriel.voyager.navigator.LocalNavigator
|
||||
import cafe.adriel.voyager.navigator.Navigator
|
||||
import cafe.adriel.voyager.navigator.currentOrThrow
|
||||
import eu.kanade.domain.category.manga.interactor.ResetMangaCategoryFlags
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.category.visualName
|
||||
import eu.kanade.presentation.more.settings.Preference
|
||||
import eu.kanade.presentation.more.settings.widget.TriStateListDialog
|
||||
import eu.kanade.presentation.util.collectAsState
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.library.manga.MangaLibraryUpdateJob
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_BATTERY_NOT_LOW
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_CHARGING
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_NETWORK_NOT_METERED
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_ONLY_ON_WIFI
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_HAS_UNREAD
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_COMPLETED
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_READ
|
||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||
import eu.kanade.tachiyomi.ui.category.CategoriesTab
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import tachiyomi.domain.category.anime.interactor.GetAnimeCategories
|
||||
import tachiyomi.domain.category.manga.interactor.GetMangaCategories
|
||||
import tachiyomi.domain.category.manga.interactor.ResetMangaCategoryFlags
|
||||
import tachiyomi.domain.category.model.Category
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_BATTERY_NOT_LOW
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_CHARGING
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_NETWORK_NOT_METERED
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_ONLY_ON_WIFI
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_HAS_UNREAD
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_COMPLETED
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_READ
|
||||
import tachiyomi.presentation.core.components.WheelPicker
|
||||
import tachiyomi.presentation.core.components.WheelPickerDefaults
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
|
@ -16,7 +16,9 @@ import androidx.compose.foundation.lazy.LazyListScope
|
|||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Bookmark
|
||||
import androidx.compose.material.icons.filled.Circle
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.LocalContentColor
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
|
@ -196,12 +198,22 @@ fun AnimeUpdatesUiItem(
|
|||
text = update.animeTitle,
|
||||
maxLines = 1,
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
color = LocalContentColor.current.copy(alpha = textAlpha),
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
modifier = Modifier.alpha(textAlpha),
|
||||
)
|
||||
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
var textHeight by remember { mutableStateOf(0) }
|
||||
if (!update.seen) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Circle,
|
||||
contentDescription = stringResource(R.string.unread),
|
||||
modifier = Modifier
|
||||
.height(8.dp)
|
||||
.padding(end = 4.dp),
|
||||
tint = MaterialTheme.colorScheme.primary,
|
||||
)
|
||||
}
|
||||
if (update.bookmark) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Bookmark,
|
||||
|
@ -216,19 +228,19 @@ fun AnimeUpdatesUiItem(
|
|||
text = update.episodeName,
|
||||
maxLines = 1,
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
color = LocalContentColor.current.copy(alpha = textAlpha),
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
onTextLayout = { textHeight = it.size.height },
|
||||
modifier = Modifier
|
||||
.weight(weight = 1f, fill = false)
|
||||
.alpha(textAlpha),
|
||||
.weight(weight = 1f, fill = false),
|
||||
)
|
||||
if (watchProgress != null) {
|
||||
DotSeparatorText()
|
||||
Text(
|
||||
text = watchProgress,
|
||||
maxLines = 1,
|
||||
color = LocalContentColor.current.copy(alpha = ReadItemAlpha),
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
modifier = Modifier.alpha(ReadItemAlpha),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,9 @@ import androidx.compose.foundation.lazy.LazyListScope
|
|||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Bookmark
|
||||
import androidx.compose.material.icons.filled.Circle
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.LocalContentColor
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
|
@ -194,11 +196,21 @@ fun MangaUpdatesUiItem(
|
|||
text = update.mangaTitle,
|
||||
maxLines = 1,
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
color = LocalContentColor.current.copy(alpha = textAlpha),
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
modifier = Modifier.alpha(textAlpha),
|
||||
)
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
var textHeight by remember { mutableStateOf(0) }
|
||||
if (!update.read) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Circle,
|
||||
contentDescription = stringResource(R.string.unread),
|
||||
modifier = Modifier
|
||||
.height(8.dp)
|
||||
.padding(end = 4.dp),
|
||||
tint = MaterialTheme.colorScheme.primary,
|
||||
)
|
||||
}
|
||||
if (update.bookmark) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.Bookmark,
|
||||
|
@ -213,19 +225,19 @@ fun MangaUpdatesUiItem(
|
|||
text = update.chapterName,
|
||||
maxLines = 1,
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
color = LocalContentColor.current.copy(alpha = textAlpha),
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
onTextLayout = { textHeight = it.size.height },
|
||||
modifier = Modifier
|
||||
.weight(weight = 1f, fill = false)
|
||||
.alpha(textAlpha),
|
||||
.weight(weight = 1f, fill = false),
|
||||
)
|
||||
if (readProgress != null) {
|
||||
DotSeparatorText()
|
||||
Text(
|
||||
text = readProgress,
|
||||
maxLines = 1,
|
||||
color = LocalContentColor.current.copy(alpha = ReadItemAlpha),
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
modifier = Modifier.alpha(ReadItemAlpha),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ import data.Mangas
|
|||
import dataanime.Animehistory
|
||||
import dataanime.Animes
|
||||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import eu.kanade.domain.track.anime.store.DelayedAnimeTrackingStore
|
||||
import eu.kanade.domain.track.manga.store.DelayedMangaTrackingStore
|
||||
|
@ -61,6 +60,7 @@ import tachiyomi.data.listOfStringsAdapter
|
|||
import tachiyomi.data.updateStrategyAdapter
|
||||
import tachiyomi.domain.backup.service.BackupPreferences
|
||||
import tachiyomi.domain.download.service.DownloadPreferences
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.source.anime.service.AnimeSourceManager
|
||||
import tachiyomi.domain.source.manga.service.MangaSourceManager
|
||||
import tachiyomi.mi.data.AnimeDatabase
|
||||
|
|
|
@ -5,14 +5,12 @@ import androidx.core.content.edit
|
|||
import androidx.preference.PreferenceManager
|
||||
import androidx.work.WorkManager
|
||||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import eu.kanade.domain.ui.UiPreferences
|
||||
import eu.kanade.tachiyomi.core.security.SecurityPreferences
|
||||
import eu.kanade.tachiyomi.data.backup.BackupCreatorJob
|
||||
import eu.kanade.tachiyomi.data.library.anime.AnimeLibraryUpdateJob
|
||||
import eu.kanade.tachiyomi.data.library.manga.MangaLibraryUpdateJob
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_COMPLETED
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceValues
|
||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||
import eu.kanade.tachiyomi.network.NetworkPreferences
|
||||
|
@ -28,6 +26,8 @@ import tachiyomi.core.preference.PreferenceStore
|
|||
import tachiyomi.core.preference.getEnum
|
||||
import tachiyomi.domain.backup.service.BackupPreferences
|
||||
import tachiyomi.domain.entries.TriStateFilter
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_COMPLETED
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.io.File
|
||||
|
|
|
@ -11,7 +11,6 @@ import data.Manga_sync
|
|||
import data.Mangas
|
||||
import dataanime.Anime_sync
|
||||
import dataanime.Animes
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.backup.BackupConst.BACKUP_CATEGORY
|
||||
import eu.kanade.tachiyomi.data.backup.BackupConst.BACKUP_CATEGORY_MASK
|
||||
|
@ -81,6 +80,7 @@ import tachiyomi.domain.entries.anime.interactor.GetAnimeFavorites
|
|||
import tachiyomi.domain.entries.manga.interactor.GetMangaFavorites
|
||||
import tachiyomi.domain.history.anime.model.AnimeHistoryUpdate
|
||||
import tachiyomi.domain.history.manga.model.MangaHistoryUpdate
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.source.anime.service.AnimeSourceManager
|
||||
import tachiyomi.domain.source.manga.service.MangaSourceManager
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
|
@ -20,7 +20,6 @@ import eu.kanade.domain.entries.anime.model.copyFrom
|
|||
import eu.kanade.domain.entries.anime.model.toSAnime
|
||||
import eu.kanade.domain.items.episode.interactor.SyncEpisodesWithSource
|
||||
import eu.kanade.domain.items.episode.interactor.SyncEpisodesWithTrackServiceTwoWay
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.track.anime.model.toDbTrack
|
||||
import eu.kanade.domain.track.anime.model.toDomainTrack
|
||||
import eu.kanade.tachiyomi.R
|
||||
|
@ -28,13 +27,6 @@ import eu.kanade.tachiyomi.animesource.model.SAnime
|
|||
import eu.kanade.tachiyomi.data.cache.AnimeCoverCache
|
||||
import eu.kanade.tachiyomi.data.download.anime.AnimeDownloadManager
|
||||
import eu.kanade.tachiyomi.data.notification.Notifications
|
||||
import eu.kanade.tachiyomi.data.preference.ANIME_HAS_UNSEEN
|
||||
import eu.kanade.tachiyomi.data.preference.ANIME_NON_COMPLETED
|
||||
import eu.kanade.tachiyomi.data.preference.ANIME_NON_SEEN
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_BATTERY_NOT_LOW
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_CHARGING
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_NETWORK_NOT_METERED
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_ONLY_ON_WIFI
|
||||
import eu.kanade.tachiyomi.data.track.EnhancedAnimeTrackService
|
||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||
import eu.kanade.tachiyomi.data.track.TrackService
|
||||
|
@ -71,6 +63,14 @@ import tachiyomi.domain.items.episode.interactor.GetEpisodeByAnimeId
|
|||
import tachiyomi.domain.items.episode.model.Episode
|
||||
import tachiyomi.domain.items.episode.model.NoEpisodesException
|
||||
import tachiyomi.domain.library.anime.LibraryAnime
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.ANIME_HAS_UNSEEN
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.ANIME_NON_COMPLETED
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.ANIME_NON_SEEN
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_BATTERY_NOT_LOW
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_CHARGING
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_NETWORK_NOT_METERED
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_ONLY_ON_WIFI
|
||||
import tachiyomi.domain.source.anime.model.AnimeSourceNotInstalledException
|
||||
import tachiyomi.domain.source.anime.service.AnimeSourceManager
|
||||
import tachiyomi.domain.track.anime.interactor.GetAnimeTracks
|
||||
|
|
|
@ -20,20 +20,12 @@ import eu.kanade.domain.entries.manga.model.copyFrom
|
|||
import eu.kanade.domain.entries.manga.model.toSManga
|
||||
import eu.kanade.domain.items.chapter.interactor.SyncChaptersWithSource
|
||||
import eu.kanade.domain.items.chapter.interactor.SyncChaptersWithTrackServiceTwoWay
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.track.manga.model.toDbTrack
|
||||
import eu.kanade.domain.track.manga.model.toDomainTrack
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.cache.MangaCoverCache
|
||||
import eu.kanade.tachiyomi.data.download.manga.MangaDownloadManager
|
||||
import eu.kanade.tachiyomi.data.notification.Notifications
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_BATTERY_NOT_LOW
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_CHARGING
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_NETWORK_NOT_METERED
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_ONLY_ON_WIFI
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_HAS_UNREAD
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_COMPLETED
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_READ
|
||||
import eu.kanade.tachiyomi.data.track.EnhancedMangaTrackService
|
||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||
import eu.kanade.tachiyomi.data.track.TrackService
|
||||
|
@ -71,6 +63,14 @@ import tachiyomi.domain.items.chapter.interactor.GetChapterByMangaId
|
|||
import tachiyomi.domain.items.chapter.model.Chapter
|
||||
import tachiyomi.domain.items.chapter.model.NoChaptersException
|
||||
import tachiyomi.domain.library.manga.LibraryManga
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_BATTERY_NOT_LOW
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_CHARGING
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_NETWORK_NOT_METERED
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.DEVICE_ONLY_ON_WIFI
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_HAS_UNREAD
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_COMPLETED
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_READ
|
||||
import tachiyomi.domain.source.manga.model.SourceNotInstalledException
|
||||
import tachiyomi.domain.source.manga.service.MangaSourceManager
|
||||
import tachiyomi.domain.track.manga.interactor.GetMangaTracks
|
||||
|
|
|
@ -2,19 +2,6 @@ package eu.kanade.tachiyomi.data.preference
|
|||
|
||||
import eu.kanade.tachiyomi.R
|
||||
|
||||
const val DEVICE_ONLY_ON_WIFI = "wifi"
|
||||
const val DEVICE_NETWORK_NOT_METERED = "network_not_metered"
|
||||
const val DEVICE_CHARGING = "ac"
|
||||
const val DEVICE_BATTERY_NOT_LOW = "battery_not_low"
|
||||
|
||||
const val MANGA_NON_COMPLETED = "manga_ongoing"
|
||||
const val MANGA_HAS_UNREAD = "manga_fully_read"
|
||||
const val MANGA_NON_READ = "manga_started"
|
||||
|
||||
const val ANIME_NON_COMPLETED = "anime_ongoing"
|
||||
const val ANIME_HAS_UNSEEN = "anime_fully_seen"
|
||||
const val ANIME_NON_SEEN = "anime_started"
|
||||
|
||||
const val FLAG_CATEGORIES = "1"
|
||||
const val FLAG_CHAPTERS = "2"
|
||||
const val FLAG_HISTORY = "4"
|
||||
|
|
|
@ -18,10 +18,7 @@ import eu.kanade.domain.entries.anime.interactor.UpdateAnime
|
|||
import eu.kanade.domain.entries.anime.model.copyFrom
|
||||
import eu.kanade.domain.entries.anime.model.toDomainAnime
|
||||
import eu.kanade.domain.entries.anime.model.toSAnime
|
||||
import eu.kanade.domain.items.episode.interactor.SetAnimeDefaultEpisodeFlags
|
||||
import eu.kanade.domain.items.episode.interactor.SyncEpisodesWithTrackServiceTwoWay
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.source.anime.interactor.GetRemoteAnime
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import eu.kanade.domain.track.anime.model.toDomainTrack
|
||||
import eu.kanade.tachiyomi.animesource.AnimeCatalogueSource
|
||||
|
@ -57,6 +54,9 @@ import tachiyomi.domain.entries.anime.interactor.NetworkToLocalAnime
|
|||
import tachiyomi.domain.entries.anime.model.Anime
|
||||
import tachiyomi.domain.entries.anime.model.toAnimeUpdate
|
||||
import tachiyomi.domain.items.episode.interactor.GetEpisodeByAnimeId
|
||||
import tachiyomi.domain.items.episode.interactor.SetAnimeDefaultEpisodeFlags
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.source.anime.interactor.GetRemoteAnime
|
||||
import tachiyomi.domain.source.anime.service.AnimeSourceManager
|
||||
import tachiyomi.domain.track.anime.interactor.InsertAnimeTrack
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
|
@ -18,10 +18,7 @@ import eu.kanade.domain.entries.manga.interactor.UpdateManga
|
|||
import eu.kanade.domain.entries.manga.model.copyFrom
|
||||
import eu.kanade.domain.entries.manga.model.toDomainManga
|
||||
import eu.kanade.domain.entries.manga.model.toSManga
|
||||
import eu.kanade.domain.items.chapter.interactor.SetMangaDefaultChapterFlags
|
||||
import eu.kanade.domain.items.chapter.interactor.SyncChaptersWithTrackServiceTwoWay
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.source.manga.interactor.GetRemoteManga
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import eu.kanade.domain.track.manga.model.toDomainTrack
|
||||
import eu.kanade.tachiyomi.data.cache.MangaCoverCache
|
||||
|
@ -57,6 +54,9 @@ import tachiyomi.domain.entries.manga.interactor.NetworkToLocalManga
|
|||
import tachiyomi.domain.entries.manga.model.Manga
|
||||
import tachiyomi.domain.entries.manga.model.toMangaUpdate
|
||||
import tachiyomi.domain.items.chapter.interactor.GetChapterByMangaId
|
||||
import tachiyomi.domain.items.chapter.interactor.SetMangaDefaultChapterFlags
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.source.manga.interactor.GetRemoteManga
|
||||
import tachiyomi.domain.source.manga.service.MangaSourceManager
|
||||
import tachiyomi.domain.track.manga.interactor.InsertMangaTrack
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
|
@ -4,13 +4,13 @@ import androidx.annotation.StringRes
|
|||
import androidx.compose.runtime.Immutable
|
||||
import cafe.adriel.voyager.core.model.StateScreenModel
|
||||
import cafe.adriel.voyager.core.model.coroutineScope
|
||||
import eu.kanade.domain.category.anime.interactor.CreateAnimeCategoryWithName
|
||||
import eu.kanade.tachiyomi.R
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.flow.receiveAsFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import tachiyomi.domain.category.anime.interactor.CreateAnimeCategoryWithName
|
||||
import tachiyomi.domain.category.anime.interactor.DeleteAnimeCategory
|
||||
import tachiyomi.domain.category.anime.interactor.GetAnimeCategories
|
||||
import tachiyomi.domain.category.anime.interactor.RenameAnimeCategory
|
||||
|
|
|
@ -4,13 +4,13 @@ import androidx.annotation.StringRes
|
|||
import androidx.compose.runtime.Immutable
|
||||
import cafe.adriel.voyager.core.model.StateScreenModel
|
||||
import cafe.adriel.voyager.core.model.coroutineScope
|
||||
import eu.kanade.domain.category.manga.interactor.CreateMangaCategoryWithName
|
||||
import eu.kanade.tachiyomi.R
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.flow.receiveAsFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import tachiyomi.domain.category.manga.interactor.CreateMangaCategoryWithName
|
||||
import tachiyomi.domain.category.manga.interactor.DeleteMangaCategory
|
||||
import tachiyomi.domain.category.manga.interactor.GetMangaCategories
|
||||
import tachiyomi.domain.category.manga.interactor.RenameMangaCategory
|
||||
|
|
|
@ -14,10 +14,8 @@ import eu.kanade.domain.entries.anime.interactor.UpdateAnime
|
|||
import eu.kanade.domain.entries.anime.model.downloadedFilter
|
||||
import eu.kanade.domain.entries.anime.model.isLocal
|
||||
import eu.kanade.domain.entries.anime.model.toSAnime
|
||||
import eu.kanade.domain.items.episode.interactor.SetAnimeDefaultEpisodeFlags
|
||||
import eu.kanade.domain.items.episode.interactor.SetSeenStatus
|
||||
import eu.kanade.domain.items.episode.interactor.SyncEpisodesWithSource
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.track.anime.model.toDbTrack
|
||||
import eu.kanade.domain.track.service.TrackPreferences
|
||||
import eu.kanade.domain.ui.UiPreferences
|
||||
|
@ -68,11 +66,13 @@ import tachiyomi.domain.entries.anime.interactor.GetDuplicateLibraryAnime
|
|||
import tachiyomi.domain.entries.anime.interactor.SetAnimeEpisodeFlags
|
||||
import tachiyomi.domain.entries.anime.model.Anime
|
||||
import tachiyomi.domain.entries.applyFilter
|
||||
import tachiyomi.domain.items.episode.interactor.SetAnimeDefaultEpisodeFlags
|
||||
import tachiyomi.domain.items.episode.interactor.UpdateEpisode
|
||||
import tachiyomi.domain.items.episode.model.Episode
|
||||
import tachiyomi.domain.items.episode.model.EpisodeUpdate
|
||||
import tachiyomi.domain.items.episode.model.NoEpisodesException
|
||||
import tachiyomi.domain.items.episode.service.getEpisodeSort
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.source.anime.service.AnimeSourceManager
|
||||
import tachiyomi.domain.track.anime.interactor.GetAnimeTracks
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
|
@ -14,10 +14,8 @@ import eu.kanade.domain.entries.manga.interactor.UpdateManga
|
|||
import eu.kanade.domain.entries.manga.model.downloadedFilter
|
||||
import eu.kanade.domain.entries.manga.model.isLocal
|
||||
import eu.kanade.domain.entries.manga.model.toSManga
|
||||
import eu.kanade.domain.items.chapter.interactor.SetMangaDefaultChapterFlags
|
||||
import eu.kanade.domain.items.chapter.interactor.SetReadStatus
|
||||
import eu.kanade.domain.items.chapter.interactor.SyncChaptersWithSource
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.track.manga.model.toDbTrack
|
||||
import eu.kanade.domain.track.service.TrackPreferences
|
||||
import eu.kanade.domain.ui.UiPreferences
|
||||
|
@ -66,11 +64,13 @@ import tachiyomi.domain.entries.manga.interactor.GetDuplicateLibraryManga
|
|||
import tachiyomi.domain.entries.manga.interactor.GetMangaWithChapters
|
||||
import tachiyomi.domain.entries.manga.interactor.SetMangaChapterFlags
|
||||
import tachiyomi.domain.entries.manga.model.Manga
|
||||
import tachiyomi.domain.items.chapter.interactor.SetMangaDefaultChapterFlags
|
||||
import tachiyomi.domain.items.chapter.interactor.UpdateChapter
|
||||
import tachiyomi.domain.items.chapter.model.Chapter
|
||||
import tachiyomi.domain.items.chapter.model.ChapterUpdate
|
||||
import tachiyomi.domain.items.chapter.model.NoChaptersException
|
||||
import tachiyomi.domain.items.chapter.service.getChapterSort
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.source.manga.service.MangaSourceManager
|
||||
import tachiyomi.domain.track.manga.interactor.GetMangaTracks
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
|
@ -4,7 +4,6 @@ import androidx.compose.runtime.Immutable
|
|||
import cafe.adriel.voyager.core.model.StateScreenModel
|
||||
import cafe.adriel.voyager.core.model.coroutineScope
|
||||
import eu.kanade.core.util.insertSeparators
|
||||
import eu.kanade.domain.history.anime.interactor.GetNextEpisodes
|
||||
import eu.kanade.presentation.history.anime.AnimeHistoryUiModel
|
||||
import eu.kanade.tachiyomi.util.lang.toDateKey
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
@ -26,6 +25,7 @@ import tachiyomi.core.util.lang.launchIO
|
|||
import tachiyomi.core.util.lang.withIOContext
|
||||
import tachiyomi.core.util.system.logcat
|
||||
import tachiyomi.domain.history.anime.interactor.GetAnimeHistory
|
||||
import tachiyomi.domain.history.anime.interactor.GetNextEpisodes
|
||||
import tachiyomi.domain.history.anime.interactor.RemoveAnimeHistory
|
||||
import tachiyomi.domain.history.anime.model.AnimeHistoryWithRelations
|
||||
import tachiyomi.domain.items.episode.model.Episode
|
||||
|
|
|
@ -4,7 +4,6 @@ import androidx.compose.runtime.Immutable
|
|||
import cafe.adriel.voyager.core.model.StateScreenModel
|
||||
import cafe.adriel.voyager.core.model.coroutineScope
|
||||
import eu.kanade.core.util.insertSeparators
|
||||
import eu.kanade.domain.history.manga.interactor.GetNextChapters
|
||||
import eu.kanade.presentation.history.manga.MangaHistoryUiModel
|
||||
import eu.kanade.tachiyomi.util.lang.toDateKey
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
@ -26,6 +25,7 @@ import tachiyomi.core.util.lang.launchIO
|
|||
import tachiyomi.core.util.lang.withIOContext
|
||||
import tachiyomi.core.util.system.logcat
|
||||
import tachiyomi.domain.history.manga.interactor.GetMangaHistory
|
||||
import tachiyomi.domain.history.manga.interactor.GetNextChapters
|
||||
import tachiyomi.domain.history.manga.interactor.RemoveMangaHistory
|
||||
import tachiyomi.domain.history.manga.model.MangaHistoryWithRelations
|
||||
import tachiyomi.domain.items.chapter.model.Chapter
|
||||
|
|
|
@ -33,7 +33,6 @@ import cafe.adriel.voyager.navigator.LocalNavigator
|
|||
import cafe.adriel.voyager.navigator.currentOrThrow
|
||||
import cafe.adriel.voyager.navigator.tab.LocalTabNavigator
|
||||
import cafe.adriel.voyager.navigator.tab.TabNavigator
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import eu.kanade.presentation.util.Screen
|
||||
import eu.kanade.presentation.util.isTabletUi
|
||||
|
@ -53,6 +52,7 @@ import kotlinx.coroutines.flow.receiveAsFlow
|
|||
import kotlinx.coroutines.launch
|
||||
import soup.compose.material.motion.animation.materialFadeThroughIn
|
||||
import soup.compose.material.motion.animation.materialFadeThroughOut
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.presentation.core.components.material.NavigationBar
|
||||
import tachiyomi.presentation.core.components.material.NavigationRail
|
||||
import tachiyomi.presentation.core.components.material.Scaffold
|
||||
|
|
|
@ -17,9 +17,7 @@ import eu.kanade.core.util.fastPartition
|
|||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.domain.entries.anime.interactor.UpdateAnime
|
||||
import eu.kanade.domain.entries.anime.model.isLocal
|
||||
import eu.kanade.domain.history.anime.interactor.GetNextEpisodes
|
||||
import eu.kanade.domain.items.episode.interactor.SetSeenStatus
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.components.SEARCH_DEBOUNCE_MILLIS
|
||||
import eu.kanade.presentation.entries.DownloadAction
|
||||
import eu.kanade.presentation.library.LibraryToolbarTitle
|
||||
|
@ -55,11 +53,13 @@ import tachiyomi.domain.entries.anime.interactor.GetLibraryAnime
|
|||
import tachiyomi.domain.entries.anime.model.Anime
|
||||
import tachiyomi.domain.entries.anime.model.AnimeUpdate
|
||||
import tachiyomi.domain.entries.applyFilter
|
||||
import tachiyomi.domain.history.anime.interactor.GetNextEpisodes
|
||||
import tachiyomi.domain.items.episode.interactor.GetEpisodeByAnimeId
|
||||
import tachiyomi.domain.items.episode.model.Episode
|
||||
import tachiyomi.domain.library.anime.LibraryAnime
|
||||
import tachiyomi.domain.library.anime.model.AnimeLibrarySort
|
||||
import tachiyomi.domain.library.anime.model.sort
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.source.anime.service.AnimeSourceManager
|
||||
import tachiyomi.domain.track.anime.interactor.GetTracksPerAnime
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
|
@ -3,19 +3,19 @@ package eu.kanade.tachiyomi.ui.library.anime
|
|||
import cafe.adriel.voyager.core.model.ScreenModel
|
||||
import cafe.adriel.voyager.core.model.coroutineScope
|
||||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.domain.category.anime.interactor.SetDisplayModeForAnimeCategory
|
||||
import eu.kanade.domain.category.anime.interactor.SetSortModeForAnimeCategory
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||
import eu.kanade.tachiyomi.util.preference.toggle
|
||||
import tachiyomi.core.preference.Preference
|
||||
import tachiyomi.core.preference.getAndSet
|
||||
import tachiyomi.core.util.lang.launchIO
|
||||
import tachiyomi.domain.category.anime.interactor.GetAnimeCategories
|
||||
import tachiyomi.domain.category.anime.interactor.SetDisplayModeForAnimeCategory
|
||||
import tachiyomi.domain.category.anime.interactor.SetSortModeForAnimeCategory
|
||||
import tachiyomi.domain.category.model.Category
|
||||
import tachiyomi.domain.entries.TriStateFilter
|
||||
import tachiyomi.domain.library.anime.model.AnimeLibrarySort
|
||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
||||
|
|
|
@ -32,7 +32,6 @@ import cafe.adriel.voyager.navigator.currentOrThrow
|
|||
import cafe.adriel.voyager.navigator.tab.LocalTabNavigator
|
||||
import cafe.adriel.voyager.navigator.tab.TabOptions
|
||||
import eu.kanade.domain.entries.anime.model.isLocal
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.category.ChangeCategoryDialog
|
||||
import eu.kanade.presentation.entries.LibraryBottomActionMenu
|
||||
import eu.kanade.presentation.library.DeleteLibraryEntryDialog
|
||||
|
@ -60,6 +59,7 @@ import tachiyomi.domain.entries.anime.model.Anime
|
|||
import tachiyomi.domain.items.episode.model.Episode
|
||||
import tachiyomi.domain.library.anime.LibraryAnime
|
||||
import tachiyomi.domain.library.model.display
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.presentation.core.components.material.Scaffold
|
||||
import tachiyomi.presentation.core.screens.EmptyScreen
|
||||
import tachiyomi.presentation.core.screens.EmptyScreenAction
|
||||
|
|
|
@ -17,9 +17,7 @@ import eu.kanade.core.util.fastPartition
|
|||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.domain.entries.manga.interactor.UpdateManga
|
||||
import eu.kanade.domain.entries.manga.model.isLocal
|
||||
import eu.kanade.domain.history.manga.interactor.GetNextChapters
|
||||
import eu.kanade.domain.items.chapter.interactor.SetReadStatus
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.components.SEARCH_DEBOUNCE_MILLIS
|
||||
import eu.kanade.presentation.entries.DownloadAction
|
||||
import eu.kanade.presentation.library.LibraryToolbarTitle
|
||||
|
@ -55,11 +53,13 @@ import tachiyomi.domain.entries.applyFilter
|
|||
import tachiyomi.domain.entries.manga.interactor.GetLibraryManga
|
||||
import tachiyomi.domain.entries.manga.model.Manga
|
||||
import tachiyomi.domain.entries.manga.model.MangaUpdate
|
||||
import tachiyomi.domain.history.manga.interactor.GetNextChapters
|
||||
import tachiyomi.domain.items.chapter.interactor.GetChapterByMangaId
|
||||
import tachiyomi.domain.items.chapter.model.Chapter
|
||||
import tachiyomi.domain.library.manga.LibraryManga
|
||||
import tachiyomi.domain.library.manga.model.MangaLibrarySort
|
||||
import tachiyomi.domain.library.manga.model.sort
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.source.manga.service.MangaSourceManager
|
||||
import tachiyomi.domain.track.manga.interactor.GetTracksPerManga
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
|
@ -3,19 +3,19 @@ package eu.kanade.tachiyomi.ui.library.manga
|
|||
import cafe.adriel.voyager.core.model.ScreenModel
|
||||
import cafe.adriel.voyager.core.model.coroutineScope
|
||||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.domain.category.manga.interactor.SetDisplayModeForMangaCategory
|
||||
import eu.kanade.domain.category.manga.interactor.SetSortModeForMangaCategory
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||
import eu.kanade.tachiyomi.util.preference.toggle
|
||||
import tachiyomi.core.preference.Preference
|
||||
import tachiyomi.core.preference.getAndSet
|
||||
import tachiyomi.core.util.lang.launchIO
|
||||
import tachiyomi.domain.category.manga.interactor.GetMangaCategories
|
||||
import tachiyomi.domain.category.manga.interactor.SetDisplayModeForMangaCategory
|
||||
import tachiyomi.domain.category.manga.interactor.SetSortModeForMangaCategory
|
||||
import tachiyomi.domain.category.model.Category
|
||||
import tachiyomi.domain.entries.TriStateFilter
|
||||
import tachiyomi.domain.library.manga.model.MangaLibrarySort
|
||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
||||
|
|
|
@ -31,7 +31,6 @@ import cafe.adriel.voyager.navigator.currentOrThrow
|
|||
import cafe.adriel.voyager.navigator.tab.LocalTabNavigator
|
||||
import cafe.adriel.voyager.navigator.tab.TabOptions
|
||||
import eu.kanade.domain.entries.manga.model.isLocal
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.category.ChangeCategoryDialog
|
||||
import eu.kanade.presentation.entries.LibraryBottomActionMenu
|
||||
import eu.kanade.presentation.library.DeleteLibraryEntryDialog
|
||||
|
@ -56,6 +55,7 @@ import tachiyomi.domain.category.model.Category
|
|||
import tachiyomi.domain.entries.manga.model.Manga
|
||||
import tachiyomi.domain.library.manga.LibraryManga
|
||||
import tachiyomi.domain.library.model.display
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.presentation.core.components.material.Scaffold
|
||||
import tachiyomi.presentation.core.screens.EmptyScreen
|
||||
import tachiyomi.presentation.core.screens.EmptyScreenAction
|
||||
|
|
|
@ -53,7 +53,6 @@ import cafe.adriel.voyager.navigator.NavigatorDisposeBehavior
|
|||
import cafe.adriel.voyager.navigator.currentOrThrow
|
||||
import com.google.accompanist.systemuicontroller.rememberSystemUiController
|
||||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import eu.kanade.domain.ui.UiPreferences
|
||||
import eu.kanade.presentation.components.AppStateBanners
|
||||
|
@ -93,7 +92,6 @@ import eu.kanade.tachiyomi.util.system.openInBrowser
|
|||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import eu.kanade.tachiyomi.util.view.setComposeContent
|
||||
import kotlinx.coroutines.DelicateCoroutinesApi
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.channels.awaitClose
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.callbackFlow
|
||||
|
@ -106,6 +104,7 @@ import kotlinx.coroutines.launch
|
|||
import logcat.LogPriority
|
||||
import tachiyomi.core.util.lang.launchIO
|
||||
import tachiyomi.core.util.system.logcat
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.presentation.core.components.material.Scaffold
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
|
|
@ -19,7 +19,6 @@ import cafe.adriel.voyager.navigator.tab.LocalTabNavigator
|
|||
import cafe.adriel.voyager.navigator.tab.TabOptions
|
||||
import eu.kanade.core.preference.asState
|
||||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.more.MoreScreen
|
||||
import eu.kanade.presentation.util.Tab
|
||||
import eu.kanade.tachiyomi.R
|
||||
|
@ -39,6 +38,7 @@ import kotlinx.coroutines.flow.asStateFlow
|
|||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import tachiyomi.core.util.lang.launchIO
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
|
|
@ -9,7 +9,6 @@ import eu.kanade.core.util.asFlow
|
|||
import eu.kanade.domain.base.BasePreferences
|
||||
import eu.kanade.domain.entries.anime.interactor.SetAnimeViewerFlags
|
||||
import eu.kanade.domain.entries.anime.model.isLocal
|
||||
import eu.kanade.domain.history.anime.interactor.GetNextEpisodes
|
||||
import eu.kanade.domain.items.episode.model.toDbEpisode
|
||||
import eu.kanade.domain.track.anime.model.toDbTrack
|
||||
import eu.kanade.domain.track.anime.service.DelayedAnimeTrackingUpdateJob
|
||||
|
@ -64,6 +63,7 @@ import tachiyomi.core.util.system.logcat
|
|||
import tachiyomi.domain.download.service.DownloadPreferences
|
||||
import tachiyomi.domain.entries.anime.interactor.GetAnime
|
||||
import tachiyomi.domain.entries.anime.model.Anime
|
||||
import tachiyomi.domain.history.anime.interactor.GetNextEpisodes
|
||||
import tachiyomi.domain.history.anime.interactor.UpsertAnimeHistory
|
||||
import tachiyomi.domain.history.anime.model.AnimeHistoryUpdate
|
||||
import tachiyomi.domain.items.episode.interactor.GetEpisodeByAnimeId
|
||||
|
|
|
@ -11,7 +11,6 @@ import eu.kanade.domain.entries.manga.interactor.SetMangaViewerFlags
|
|||
import eu.kanade.domain.entries.manga.model.isLocal
|
||||
import eu.kanade.domain.entries.manga.model.orientationType
|
||||
import eu.kanade.domain.entries.manga.model.readingModeType
|
||||
import eu.kanade.domain.history.manga.interactor.GetNextChapters
|
||||
import eu.kanade.domain.items.chapter.model.toDbChapter
|
||||
import eu.kanade.domain.track.manga.model.toDbTrack
|
||||
import eu.kanade.domain.track.manga.service.DelayedMangaTrackingUpdateJob
|
||||
|
@ -69,6 +68,7 @@ import tachiyomi.core.util.system.logcat
|
|||
import tachiyomi.domain.download.service.DownloadPreferences
|
||||
import tachiyomi.domain.entries.manga.interactor.GetManga
|
||||
import tachiyomi.domain.entries.manga.model.Manga
|
||||
import tachiyomi.domain.history.manga.interactor.GetNextChapters
|
||||
import tachiyomi.domain.history.manga.interactor.UpsertMangaHistory
|
||||
import tachiyomi.domain.history.manga.model.MangaHistoryUpdate
|
||||
import tachiyomi.domain.items.chapter.interactor.GetChapterByMangaId
|
||||
|
|
|
@ -8,14 +8,10 @@ import eu.kanade.core.util.fastFilter
|
|||
import eu.kanade.core.util.fastFilterNot
|
||||
import eu.kanade.core.util.fastMapNotNull
|
||||
import eu.kanade.domain.entries.anime.model.isLocal
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.more.stats.StatsScreenState
|
||||
import eu.kanade.presentation.more.stats.data.StatsData
|
||||
import eu.kanade.tachiyomi.animesource.model.SAnime
|
||||
import eu.kanade.tachiyomi.data.download.anime.AnimeDownloadManager
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_HAS_UNREAD
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_COMPLETED
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_READ
|
||||
import eu.kanade.tachiyomi.data.track.AnimeTrackService
|
||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||
import kotlinx.coroutines.flow.update
|
||||
|
@ -23,6 +19,10 @@ import tachiyomi.core.util.lang.launchIO
|
|||
import tachiyomi.domain.entries.anime.interactor.GetLibraryAnime
|
||||
import tachiyomi.domain.items.episode.interactor.GetEpisodeByAnimeId
|
||||
import tachiyomi.domain.library.anime.LibraryAnime
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_HAS_UNREAD
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_COMPLETED
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_READ
|
||||
import tachiyomi.domain.track.anime.interactor.GetAnimeTracks
|
||||
import tachiyomi.domain.track.anime.model.AnimeTrack
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
|
@ -8,13 +8,9 @@ import eu.kanade.core.util.fastFilter
|
|||
import eu.kanade.core.util.fastFilterNot
|
||||
import eu.kanade.core.util.fastMapNotNull
|
||||
import eu.kanade.domain.entries.manga.model.isLocal
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.presentation.more.stats.StatsScreenState
|
||||
import eu.kanade.presentation.more.stats.data.StatsData
|
||||
import eu.kanade.tachiyomi.data.download.manga.MangaDownloadManager
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_HAS_UNREAD
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_COMPLETED
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_READ
|
||||
import eu.kanade.tachiyomi.data.track.MangaTrackService
|
||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
|
@ -23,6 +19,10 @@ import tachiyomi.core.util.lang.launchIO
|
|||
import tachiyomi.domain.entries.manga.interactor.GetLibraryManga
|
||||
import tachiyomi.domain.history.manga.interactor.GetTotalReadDuration
|
||||
import tachiyomi.domain.library.manga.LibraryManga
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_HAS_UNREAD
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_COMPLETED
|
||||
import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_READ
|
||||
import tachiyomi.domain.track.manga.interactor.GetMangaTracks
|
||||
import tachiyomi.domain.track.manga.model.MangaTrack
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
|
@ -12,7 +12,6 @@ import eu.kanade.core.preference.asState
|
|||
import eu.kanade.core.util.addOrRemove
|
||||
import eu.kanade.core.util.insertSeparators
|
||||
import eu.kanade.domain.items.episode.interactor.SetSeenStatus
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.ui.UiPreferences
|
||||
import eu.kanade.presentation.entries.anime.components.EpisodeDownloadAction
|
||||
import eu.kanade.presentation.updates.anime.AnimeUpdatesUiModel
|
||||
|
@ -41,6 +40,7 @@ import tachiyomi.domain.entries.anime.interactor.GetAnime
|
|||
import tachiyomi.domain.items.episode.interactor.GetEpisode
|
||||
import tachiyomi.domain.items.episode.interactor.UpdateEpisode
|
||||
import tachiyomi.domain.items.episode.model.EpisodeUpdate
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.source.anime.service.AnimeSourceManager
|
||||
import tachiyomi.domain.updates.anime.interactor.GetAnimeUpdates
|
||||
import tachiyomi.domain.updates.anime.model.AnimeUpdatesWithRelations
|
||||
|
|
|
@ -12,7 +12,6 @@ import eu.kanade.core.preference.asState
|
|||
import eu.kanade.core.util.addOrRemove
|
||||
import eu.kanade.core.util.insertSeparators
|
||||
import eu.kanade.domain.items.chapter.interactor.SetReadStatus
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import eu.kanade.domain.ui.UiPreferences
|
||||
import eu.kanade.presentation.entries.manga.components.ChapterDownloadAction
|
||||
import eu.kanade.presentation.updates.manga.MangaUpdatesUiModel
|
||||
|
@ -40,6 +39,7 @@ import tachiyomi.domain.entries.manga.interactor.GetManga
|
|||
import tachiyomi.domain.items.chapter.interactor.GetChapter
|
||||
import tachiyomi.domain.items.chapter.interactor.UpdateChapter
|
||||
import tachiyomi.domain.items.chapter.model.ChapterUpdate
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.source.manga.service.MangaSourceManager
|
||||
import tachiyomi.domain.updates.manga.interactor.GetMangaUpdates
|
||||
import tachiyomi.domain.updates.manga.model.MangaUpdatesWithRelations
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package tachiyomi.data.source.anime
|
||||
|
||||
import androidx.paging.PagingSource
|
||||
import androidx.paging.PagingState
|
||||
import eu.kanade.tachiyomi.animesource.AnimeCatalogueSource
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
|
||||
|
@ -9,8 +8,25 @@ import eu.kanade.tachiyomi.animesource.model.SAnime
|
|||
import tachiyomi.core.util.lang.awaitSingle
|
||||
import tachiyomi.core.util.lang.withIOContext
|
||||
import tachiyomi.domain.items.episode.model.NoEpisodesException
|
||||
import tachiyomi.domain.source.anime.repository.AnimeSourcePagingSourceType
|
||||
|
||||
typealias AnimeSourcePagingSourceType = PagingSource<Long, SAnime>
|
||||
class AnimeSourceSearchPagingSource(source: AnimeCatalogueSource, val query: String, val filters: AnimeFilterList) : AnimeSourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): AnimesPage {
|
||||
return source.fetchSearchAnime(currentPage, query, filters).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
||||
class AnimeSourcePopularPagingSource(source: AnimeCatalogueSource) : AnimeSourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): AnimesPage {
|
||||
return source.fetchPopularAnime(currentPage).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
||||
class AnimeSourceLatestPagingSource(source: AnimeCatalogueSource) : AnimeSourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): AnimesPage {
|
||||
return source.fetchLatestUpdates(currentPage).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
||||
abstract class AnimeSourcePagingSource(
|
||||
protected val source: AnimeCatalogueSource,
|
||||
|
@ -45,21 +61,3 @@ abstract class AnimeSourcePagingSource(
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
class AnimeSourceSearchPagingSource(source: AnimeCatalogueSource, val query: String, val filters: AnimeFilterList) : AnimeSourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): AnimesPage {
|
||||
return source.fetchSearchAnime(currentPage, query, filters).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
||||
class AnimeSourcePopularPagingSource(source: AnimeCatalogueSource) : AnimeSourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): AnimesPage {
|
||||
return source.fetchPopularAnime(currentPage).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
||||
class AnimeSourceLatestPagingSource(source: AnimeCatalogueSource) : AnimeSourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): AnimesPage {
|
||||
return source.fetchLatestUpdates(currentPage).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,22 +1,17 @@
|
|||
package eu.kanade.data.source.anime
|
||||
package tachiyomi.data.source.anime
|
||||
|
||||
import eu.kanade.domain.source.anime.repository.AnimeSourceRepository
|
||||
import eu.kanade.tachiyomi.animesource.AnimeCatalogueSource
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
|
||||
import eu.kanade.tachiyomi.animesource.online.AnimeHttpSource
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
import tachiyomi.data.handlers.anime.AnimeDatabaseHandler
|
||||
import tachiyomi.data.source.anime.AnimeSourceLatestPagingSource
|
||||
import tachiyomi.data.source.anime.AnimeSourcePagingSourceType
|
||||
import tachiyomi.data.source.anime.AnimeSourcePopularPagingSource
|
||||
import tachiyomi.data.source.anime.AnimeSourceSearchPagingSource
|
||||
import tachiyomi.data.source.anime.animeSourceMapper
|
||||
import tachiyomi.domain.source.anime.model.AnimeSource
|
||||
import tachiyomi.domain.source.anime.model.AnimeSourceWithCount
|
||||
import tachiyomi.domain.source.anime.model.StubAnimeSource
|
||||
import tachiyomi.domain.source.anime.repository.AnimeSourcePagingSourceType
|
||||
import tachiyomi.domain.source.anime.repository.AnimeSourceRepository
|
||||
import tachiyomi.domain.source.anime.service.AnimeSourceManager
|
||||
import tachiyomi.source.local.entries.anime.LocalAnimeSource
|
||||
|
||||
class AnimeSourceRepositoryImpl(
|
||||
private val sourceManager: AnimeSourceManager,
|
||||
|
@ -45,7 +40,6 @@ class AnimeSourceRepositoryImpl(
|
|||
val sourceIdWithFavoriteCount = handler.subscribeToList { animesQueries.getAnimeSourceIdWithFavoriteCount() }
|
||||
return sourceIdWithFavoriteCount.map { sourceIdsWithCount ->
|
||||
sourceIdsWithCount
|
||||
.filterNot { it.source == LocalAnimeSource.ID }
|
||||
.map { (sourceId, count) ->
|
||||
val source = sourceManager.getOrStub(sourceId)
|
||||
val domainSource = animeSourceMapper(source).copy(
|
|
@ -1,6 +1,5 @@
|
|||
package tachiyomi.data.source.manga
|
||||
|
||||
import androidx.paging.PagingSource
|
||||
import androidx.paging.PagingState
|
||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
|
@ -9,8 +8,25 @@ import eu.kanade.tachiyomi.source.model.SManga
|
|||
import tachiyomi.core.util.lang.awaitSingle
|
||||
import tachiyomi.core.util.lang.withIOContext
|
||||
import tachiyomi.domain.items.chapter.model.NoChaptersException
|
||||
import tachiyomi.domain.source.manga.repository.SourcePagingSourceType
|
||||
|
||||
typealias SourcePagingSourceType = PagingSource<Long, SManga>
|
||||
class SourceSearchPagingSource(source: CatalogueSource, val query: String, val filters: FilterList) : SourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): MangasPage {
|
||||
return source.fetchSearchManga(currentPage, query, filters).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
||||
class SourcePopularPagingSource(source: CatalogueSource) : SourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): MangasPage {
|
||||
return source.fetchPopularManga(currentPage).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
||||
class SourceLatestPagingSource(source: CatalogueSource) : SourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): MangasPage {
|
||||
return source.fetchLatestUpdates(currentPage).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
||||
abstract class SourcePagingSource(
|
||||
protected val source: CatalogueSource,
|
||||
|
@ -45,21 +61,3 @@ abstract class SourcePagingSource(
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
class SourceSearchPagingSource(source: CatalogueSource, val query: String, val filters: FilterList) : SourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): MangasPage {
|
||||
return source.fetchSearchManga(currentPage, query, filters).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
||||
class SourcePopularPagingSource(source: CatalogueSource) : SourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): MangasPage {
|
||||
return source.fetchPopularManga(currentPage).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
||||
class SourceLatestPagingSource(source: CatalogueSource) : SourcePagingSource(source) {
|
||||
override suspend fun requestNextPage(currentPage: Int): MangasPage {
|
||||
return source.fetchLatestUpdates(currentPage).awaitSingle()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,22 +1,17 @@
|
|||
package eu.kanade.data.source.manga
|
||||
package tachiyomi.data.source.manga
|
||||
|
||||
import eu.kanade.domain.source.manga.repository.MangaSourceRepository
|
||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
import tachiyomi.data.handlers.manga.MangaDatabaseHandler
|
||||
import tachiyomi.data.source.manga.SourceLatestPagingSource
|
||||
import tachiyomi.data.source.manga.SourcePagingSourceType
|
||||
import tachiyomi.data.source.manga.SourcePopularPagingSource
|
||||
import tachiyomi.data.source.manga.SourceSearchPagingSource
|
||||
import tachiyomi.data.source.manga.mangaSourceMapper
|
||||
import tachiyomi.domain.source.manga.model.MangaSourceWithCount
|
||||
import tachiyomi.domain.source.manga.model.Source
|
||||
import tachiyomi.domain.source.manga.model.StubMangaSource
|
||||
import tachiyomi.domain.source.manga.repository.MangaSourceRepository
|
||||
import tachiyomi.domain.source.manga.repository.SourcePagingSourceType
|
||||
import tachiyomi.domain.source.manga.service.MangaSourceManager
|
||||
import tachiyomi.source.local.entries.manga.LocalMangaSource
|
||||
|
||||
class MangaSourceRepositoryImpl(
|
||||
private val sourceManager: MangaSourceManager,
|
||||
|
@ -45,7 +40,6 @@ class MangaSourceRepositoryImpl(
|
|||
val sourceIdWithFavoriteCount = handler.subscribeToList { mangasQueries.getSourceIdWithFavoriteCount() }
|
||||
return sourceIdWithFavoriteCount.map { sourceIdsWithCount ->
|
||||
sourceIdsWithCount
|
||||
.filterNot { it.source == LocalMangaSource.ID }
|
||||
.map { (sourceId, count) ->
|
||||
val source = sourceManager.getOrStub(sourceId)
|
||||
val domainSource = mangaSourceMapper(source).copy(
|
|
@ -20,5 +20,7 @@ dependencies {
|
|||
implementation(platform(kotlinx.coroutines.bom))
|
||||
implementation(kotlinx.bundles.coroutines)
|
||||
|
||||
api(libs.sqldelight.android.paging)
|
||||
|
||||
testImplementation(libs.junit)
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package eu.kanade.domain.category.anime.interactor
|
||||
package tachiyomi.domain.category.anime.interactor
|
||||
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import logcat.LogPriority
|
||||
import tachiyomi.core.util.lang.withNonCancellableContext
|
||||
import tachiyomi.core.util.system.logcat
|
||||
import tachiyomi.domain.category.anime.repository.AnimeCategoryRepository
|
||||
import tachiyomi.domain.category.model.Category
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
|
||||
class CreateAnimeCategoryWithName(
|
||||
private val categoryRepository: AnimeCategoryRepository,
|
|
@ -1,8 +1,8 @@
|
|||
package eu.kanade.domain.category.anime.interactor
|
||||
package tachiyomi.domain.category.anime.interactor
|
||||
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.category.anime.repository.AnimeCategoryRepository
|
||||
import tachiyomi.domain.library.model.plus
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
|
||||
class ResetAnimeCategoryFlags(
|
||||
private val preferences: LibraryPreferences,
|
|
@ -1,11 +1,11 @@
|
|||
package eu.kanade.domain.category.anime.interactor
|
||||
package tachiyomi.domain.category.anime.interactor
|
||||
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.category.anime.repository.AnimeCategoryRepository
|
||||
import tachiyomi.domain.category.model.Category
|
||||
import tachiyomi.domain.category.model.CategoryUpdate
|
||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||
import tachiyomi.domain.library.model.plus
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
|
||||
class SetDisplayModeForAnimeCategory(
|
||||
private val preferences: LibraryPreferences,
|
|
@ -1,11 +1,11 @@
|
|||
package eu.kanade.domain.category.anime.interactor
|
||||
package tachiyomi.domain.category.anime.interactor
|
||||
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.category.anime.repository.AnimeCategoryRepository
|
||||
import tachiyomi.domain.category.model.Category
|
||||
import tachiyomi.domain.category.model.CategoryUpdate
|
||||
import tachiyomi.domain.library.anime.model.AnimeLibrarySort
|
||||
import tachiyomi.domain.library.model.plus
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
|
||||
class SetSortModeForAnimeCategory(
|
||||
private val preferences: LibraryPreferences,
|
|
@ -1,11 +1,11 @@
|
|||
package eu.kanade.domain.category.manga.interactor
|
||||
package tachiyomi.domain.category.manga.interactor
|
||||
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import logcat.LogPriority
|
||||
import tachiyomi.core.util.lang.withNonCancellableContext
|
||||
import tachiyomi.core.util.system.logcat
|
||||
import tachiyomi.domain.category.manga.repository.MangaCategoryRepository
|
||||
import tachiyomi.domain.category.model.Category
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
|
||||
class CreateMangaCategoryWithName(
|
||||
private val categoryRepository: MangaCategoryRepository,
|
|
@ -1,8 +1,8 @@
|
|||
package eu.kanade.domain.category.manga.interactor
|
||||
package tachiyomi.domain.category.manga.interactor
|
||||
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.category.manga.repository.MangaCategoryRepository
|
||||
import tachiyomi.domain.library.model.plus
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
|
||||
class ResetMangaCategoryFlags(
|
||||
private val preferences: LibraryPreferences,
|
|
@ -1,11 +1,11 @@
|
|||
package eu.kanade.domain.category.manga.interactor
|
||||
package tachiyomi.domain.category.manga.interactor
|
||||
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.category.manga.repository.MangaCategoryRepository
|
||||
import tachiyomi.domain.category.model.Category
|
||||
import tachiyomi.domain.category.model.CategoryUpdate
|
||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||
import tachiyomi.domain.library.model.plus
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
|
||||
class SetDisplayModeForMangaCategory(
|
||||
private val preferences: LibraryPreferences,
|
|
@ -1,11 +1,11 @@
|
|||
package eu.kanade.domain.category.manga.interactor
|
||||
package tachiyomi.domain.category.manga.interactor
|
||||
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.domain.category.manga.repository.MangaCategoryRepository
|
||||
import tachiyomi.domain.category.model.Category
|
||||
import tachiyomi.domain.category.model.CategoryUpdate
|
||||
import tachiyomi.domain.library.manga.model.MangaLibrarySort
|
||||
import tachiyomi.domain.library.model.plus
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
|
||||
class SetSortModeForMangaCategory(
|
||||
private val preferences: LibraryPreferences,
|
|
@ -1,4 +1,4 @@
|
|||
package eu.kanade.domain.history.anime.interactor
|
||||
package tachiyomi.domain.history.anime.interactor
|
||||
|
||||
import tachiyomi.domain.entries.anime.interactor.GetAnime
|
||||
import tachiyomi.domain.history.anime.repository.AnimeHistoryRepository
|
|
@ -1,4 +1,4 @@
|
|||
package eu.kanade.domain.history.manga.interactor
|
||||
package tachiyomi.domain.history.manga.interactor
|
||||
|
||||
import tachiyomi.domain.entries.manga.interactor.GetManga
|
||||
import tachiyomi.domain.history.manga.repository.MangaHistoryRepository
|
|
@ -1,10 +1,10 @@
|
|||
package eu.kanade.domain.items.chapter.interactor
|
||||
package tachiyomi.domain.items.chapter.interactor
|
||||
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.core.util.lang.withNonCancellableContext
|
||||
import tachiyomi.domain.entries.manga.interactor.GetMangaFavorites
|
||||
import tachiyomi.domain.entries.manga.interactor.SetMangaChapterFlags
|
||||
import tachiyomi.domain.entries.manga.model.Manga
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
|
||||
class SetMangaDefaultChapterFlags(
|
||||
private val libraryPreferences: LibraryPreferences,
|
|
@ -1,10 +1,10 @@
|
|||
package eu.kanade.domain.items.episode.interactor
|
||||
package tachiyomi.domain.items.episode.interactor
|
||||
|
||||
import eu.kanade.domain.library.service.LibraryPreferences
|
||||
import tachiyomi.core.util.lang.withNonCancellableContext
|
||||
import tachiyomi.domain.entries.anime.interactor.GetAnimeFavorites
|
||||
import tachiyomi.domain.entries.anime.interactor.SetAnimeEpisodeFlags
|
||||
import tachiyomi.domain.entries.anime.model.Anime
|
||||
import tachiyomi.domain.library.service.LibraryPreferences
|
||||
|
||||
class SetAnimeDefaultEpisodeFlags(
|
||||
private val libraryPreferences: LibraryPreferences,
|
|
@ -1,9 +1,5 @@
|
|||
package eu.kanade.domain.library.service
|
||||
package tachiyomi.domain.library.service
|
||||
|
||||
import eu.kanade.tachiyomi.data.preference.DEVICE_ONLY_ON_WIFI
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_HAS_UNREAD
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_COMPLETED
|
||||
import eu.kanade.tachiyomi.data.preference.MANGA_NON_READ
|
||||
import tachiyomi.core.preference.PreferenceStore
|
||||
import tachiyomi.core.preference.getEnum
|
||||
import tachiyomi.domain.entries.TriStateFilter
|
||||
|
@ -33,9 +29,20 @@ class LibraryPreferences(
|
|||
|
||||
fun libraryUpdateLastTimestamp() = preferenceStore.getLong("library_update_last_timestamp", 0L)
|
||||
|
||||
fun libraryUpdateDeviceRestriction() = preferenceStore.getStringSet("library_update_restriction", setOf(DEVICE_ONLY_ON_WIFI))
|
||||
|
||||
fun libraryUpdateItemRestriction() = preferenceStore.getStringSet("library_update_manga_restriction", setOf(MANGA_HAS_UNREAD, MANGA_NON_COMPLETED, MANGA_NON_READ))
|
||||
fun libraryUpdateDeviceRestriction() = preferenceStore.getStringSet(
|
||||
"library_update_restriction",
|
||||
setOf(
|
||||
DEVICE_ONLY_ON_WIFI,
|
||||
),
|
||||
)
|
||||
fun libraryUpdateItemRestriction() = preferenceStore.getStringSet(
|
||||
"library_update_manga_restriction",
|
||||
setOf(
|
||||
MANGA_HAS_UNREAD,
|
||||
MANGA_NON_COMPLETED,
|
||||
MANGA_NON_READ,
|
||||
),
|
||||
)
|
||||
|
||||
fun autoUpdateMetadata() = preferenceStore.getBoolean("auto_update_metadata", false)
|
||||
|
||||
|
@ -150,4 +157,19 @@ class LibraryPreferences(
|
|||
displayChapterByNameOrNumber().set(manga.displayMode)
|
||||
sortChapterByAscendingOrDescending().set(if (manga.sortDescending()) Manga.CHAPTER_SORT_DESC else Manga.CHAPTER_SORT_ASC)
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val DEVICE_ONLY_ON_WIFI = "wifi"
|
||||
const val DEVICE_NETWORK_NOT_METERED = "network_not_metered"
|
||||
const val DEVICE_CHARGING = "ac"
|
||||
const val DEVICE_BATTERY_NOT_LOW = "battery_not_low"
|
||||
|
||||
const val MANGA_NON_COMPLETED = "manga_ongoing"
|
||||
const val MANGA_HAS_UNREAD = "manga_fully_read"
|
||||
const val MANGA_NON_READ = "manga_started"
|
||||
|
||||
const val ANIME_NON_COMPLETED = "anime_ongoing"
|
||||
const val ANIME_HAS_UNSEEN = "anime_fully_seen"
|
||||
const val ANIME_NON_SEEN = "anime_started"
|
||||
}
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
package eu.kanade.domain.source.anime.interactor
|
||||
package tachiyomi.domain.source.anime.interactor
|
||||
|
||||
import eu.kanade.domain.source.anime.repository.AnimeSourceRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import tachiyomi.domain.source.anime.model.AnimeSourceWithCount
|
||||
import tachiyomi.domain.source.anime.repository.AnimeSourceRepository
|
||||
|
||||
class GetAnimeSourcesWithNonLibraryAnime(
|
||||
private val repository: AnimeSourceRepository,
|
|
@ -1,8 +1,8 @@
|
|||
package eu.kanade.domain.source.anime.interactor
|
||||
package tachiyomi.domain.source.anime.interactor
|
||||
|
||||
import eu.kanade.domain.source.anime.repository.AnimeSourceRepository
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
|
||||
import tachiyomi.data.source.anime.AnimeSourcePagingSourceType
|
||||
import tachiyomi.domain.source.anime.repository.AnimeSourcePagingSourceType
|
||||
import tachiyomi.domain.source.anime.repository.AnimeSourceRepository
|
||||
|
||||
class GetRemoteAnime(
|
||||
private val repository: AnimeSourceRepository,
|
|
@ -1,11 +1,14 @@
|
|||
package eu.kanade.domain.source.anime.repository
|
||||
package tachiyomi.domain.source.anime.repository
|
||||
|
||||
import androidx.paging.PagingSource
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
|
||||
import eu.kanade.tachiyomi.animesource.model.SAnime
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import tachiyomi.data.source.anime.AnimeSourcePagingSourceType
|
||||
import tachiyomi.domain.source.anime.model.AnimeSource
|
||||
import tachiyomi.domain.source.anime.model.AnimeSourceWithCount
|
||||
|
||||
typealias AnimeSourcePagingSourceType = PagingSource<Long, SAnime>
|
||||
|
||||
interface AnimeSourceRepository {
|
||||
|
||||
fun getAnimeSources(): Flow<List<AnimeSource>>
|
|
@ -1,8 +1,8 @@
|
|||
package eu.kanade.domain.source.manga.interactor
|
||||
package tachiyomi.domain.source.manga.interactor
|
||||
|
||||
import eu.kanade.domain.source.manga.repository.MangaSourceRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import tachiyomi.domain.source.manga.model.MangaSourceWithCount
|
||||
import tachiyomi.domain.source.manga.repository.MangaSourceRepository
|
||||
|
||||
class GetMangaSourcesWithNonLibraryManga(
|
||||
private val repository: MangaSourceRepository,
|
|
@ -1,8 +1,8 @@
|
|||
package eu.kanade.domain.source.manga.interactor
|
||||
package tachiyomi.domain.source.manga.interactor
|
||||
|
||||
import eu.kanade.domain.source.manga.repository.MangaSourceRepository
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
import tachiyomi.data.source.manga.SourcePagingSourceType
|
||||
import tachiyomi.domain.source.manga.repository.MangaSourceRepository
|
||||
import tachiyomi.domain.source.manga.repository.SourcePagingSourceType
|
||||
|
||||
class GetRemoteManga(
|
||||
private val repository: MangaSourceRepository,
|
|
@ -1,11 +1,14 @@
|
|||
package eu.kanade.domain.source.manga.repository
|
||||
package tachiyomi.domain.source.manga.repository
|
||||
|
||||
import androidx.paging.PagingSource
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import tachiyomi.data.source.manga.SourcePagingSourceType
|
||||
import tachiyomi.domain.source.manga.model.MangaSourceWithCount
|
||||
import tachiyomi.domain.source.manga.model.Source
|
||||
|
||||
typealias SourcePagingSourceType = PagingSource<Long, SManga>
|
||||
|
||||
interface MangaSourceRepository {
|
||||
|
||||
fun getMangaSources(): Flow<List<Source>>
|
|
@ -786,4 +786,5 @@
|
|||
<item quantity="other">%d فصل تالي</item>
|
||||
</plurals>
|
||||
<string name="pref_hide_in_library_items">إخفاء الإدخالات الموجودة بالفعل في المكتبة</string>
|
||||
<string name="action_update_category">تحديث الفئة</string>
|
||||
</resources>
|
|
@ -761,4 +761,5 @@
|
|||
<string name="seconds_short">%ds</string>
|
||||
<string name="pref_hide_in_library_items">Amaga els elements que ja són a la biblioteca</string>
|
||||
<string name="action_copy_to_clipboard">Copia al porta-retalls</string>
|
||||
<string name="action_update_category">Actualitza la categoria</string>
|
||||
</resources>
|
|
@ -751,4 +751,5 @@
|
|||
<item quantity="other">Dalších %d kapitol</item>
|
||||
</plurals>
|
||||
<string name="action_copy_to_clipboard">Zkopírovat do schránky</string>
|
||||
<string name="action_update_category">Aktualizovat kategorii</string>
|
||||
</resources>
|
|
@ -146,7 +146,7 @@
|
|||
<string name="label_extension_info">Хушма ҫинчен</string>
|
||||
<string name="label_extensions">Хушмасем</string>
|
||||
<string name="label_sources">Ҫӑл куҫсем</string>
|
||||
<string name="label_recent_updates">Ҫӗнетӳсем</string>
|
||||
<string name="label_recent_updates">Ҫӗнӗлӗх</string>
|
||||
<string name="label_library">Вулавӑш</string>
|
||||
<string name="label_settings">Ӗнерлев</string>
|
||||
<string name="label_more">Тата</string>
|
||||
|
|
|
@ -736,4 +736,5 @@
|
|||
<item quantity="other">Nächste %d Kapitel</item>
|
||||
</plurals>
|
||||
<string name="action_copy_to_clipboard">In die Zwischenablage kopieren</string>
|
||||
<string name="action_update_category">Kategorie aktualisieren</string>
|
||||
</resources>
|
|
@ -736,4 +736,5 @@
|
|||
</plurals>
|
||||
<string name="pref_hide_in_library_items">Απόκρυψη καταχωρήσεων που βρίσκονται ήδη στη βιβλιοθήκη</string>
|
||||
<string name="action_copy_to_clipboard">Αντιγραφή στο πρόχειρο</string>
|
||||
<string name="action_update_category">Ενημέρωση κατηγορίας</string>
|
||||
</resources>
|
|
@ -329,7 +329,7 @@
|
|||
<string name="theme_system">Según ajustes del sistema</string>
|
||||
<string name="pref_manage_notifications">Gestionar notificaciones</string>
|
||||
<string name="pref_category_security">Seguridad y privacidad</string>
|
||||
<string name="lock_with_biometrics">Requiere el uso de desbloqueo por biometría</string>
|
||||
<string name="lock_with_biometrics">Requiere desbloqueo</string>
|
||||
<string name="lock_when_idle">Bloquear por inactividad</string>
|
||||
<string name="lock_always">Siempre</string>
|
||||
<string name="lock_never">Nunca</string>
|
||||
|
@ -498,9 +498,9 @@
|
|||
<string name="ext_nsfw_short">18+</string>
|
||||
<string name="parental_controls_info">Esto no evita que las extensiones extraoficiales o que estén mal clasificadas muestren contenido para mayores de 18 años en la aplicación.</string>
|
||||
<plurals name="missing_chapters_warning">
|
||||
<item quantity="one">Se ha omitido un capítulo, esto podría deberse a que la fuente no lo tenga o a que tus ajustes lo estén filtrando</item>
|
||||
<item quantity="many">Se han omitido %d capítulos, esto podría deberse a que la fuente no los tenga o a que tus ajustes los estén filtrando</item>
|
||||
<item quantity="other">Se han omitido %d capítulos, esto podría deberse a que la fuente no los tenga o a que tus ajustes los estén filtrando</item>
|
||||
<item quantity="one">Se salta el capítulo %d, o bien falta en la fuente o se ha filtrado</item>
|
||||
<item quantity="many">Saltándose %d capítulos, o las fuentes que faltan o se han filtrado</item>
|
||||
<item quantity="other">Saltándose %d capítulos, o las fuentes que faltan o se han filtrado</item>
|
||||
</plurals>
|
||||
<string name="no_chapters_error">No hay capítulos</string>
|
||||
<string name="chapter_settings_updated">Se han actualizado los ajustes predeterminados de capítulo</string>
|
||||
|
@ -779,4 +779,5 @@
|
|||
</plurals>
|
||||
<string name="pref_hide_in_library_items">Saltar elementos que ya estén en la biblioteca</string>
|
||||
<string name="action_copy_to_clipboard">Copiar al portapapeles</string>
|
||||
<string name="action_update_category">Actualizar categoría</string>
|
||||
</resources>
|
|
@ -742,4 +742,5 @@
|
|||
<item quantity="one">Susunod na kabanata</item>
|
||||
<item quantity="other">Susunod na %d (mga) kabanata</item>
|
||||
</plurals>
|
||||
<string name="action_update_category">I-update ang kategorya</string>
|
||||
</resources>
|
|
@ -777,4 +777,6 @@
|
|||
<item quantity="many">%d chapitres suivants</item>
|
||||
<item quantity="other">%d chapitres suivants</item>
|
||||
</plurals>
|
||||
<string name="action_copy_to_clipboard">Copier dans le presse-papier</string>
|
||||
<string name="action_update_category">Mettre à jour la catégorie</string>
|
||||
</resources>
|
|
@ -699,4 +699,5 @@
|
|||
<item quantity="few">Sljedeća %d poglavlja</item>
|
||||
<item quantity="other">Sljedećih %d poglavlja</item>
|
||||
</plurals>
|
||||
<string name="action_update_category">Aktualiziraj katogoriju</string>
|
||||
</resources>
|
|
@ -716,4 +716,5 @@
|
|||
<item quantity="other">berikutnya %d chapter</item>
|
||||
</plurals>
|
||||
<string name="action_copy_to_clipboard">Salin ke papan klip</string>
|
||||
<string name="action_update_category">Perbarui kategori</string>
|
||||
</resources>
|
|
@ -328,7 +328,7 @@
|
|||
<string name="pref_theme_mode">Tema scuro</string>
|
||||
<string name="theme_light">Disattivo</string>
|
||||
<string name="theme_dark">Attivo</string>
|
||||
<string name="theme_system">Segui l\'impostazione di sistema</string>
|
||||
<string name="theme_system">Usa il tema di sistema</string>
|
||||
<string name="pref_manage_notifications">Gestisci le notifiche</string>
|
||||
<string name="pref_category_security">Sicurezza e privacy</string>
|
||||
<string name="lock_with_biometrics">Richiede sblocco</string>
|
||||
|
@ -537,7 +537,7 @@
|
|||
<string name="action_desc">Decrescente</string>
|
||||
<string name="action_asc">Crescente</string>
|
||||
<string name="action_order_by_chapter_number">Per numero di capitolo</string>
|
||||
<string name="action_order_by_upload_date">Per data di aggiunta</string>
|
||||
<string name="action_order_by_upload_date">Per data di caricamento</string>
|
||||
<string name="action_filter_tracked">Tracciati</string>
|
||||
<string name="action_display_show_number_of_items">Mostra numero elementi</string>
|
||||
<string name="right_and_left_nav">Destra e Sinistra</string>
|
||||
|
@ -782,4 +782,5 @@
|
|||
</plurals>
|
||||
<string name="pref_hide_in_library_items">Nascondi le voci già in libreria</string>
|
||||
<string name="action_copy_to_clipboard">Copia negli appunti</string>
|
||||
<string name="action_update_category">Aggiorna categoria</string>
|
||||
</resources>
|
|
@ -722,4 +722,5 @@
|
|||
<plurals name="download_amount">
|
||||
<item quantity="other">次の%d章</item>
|
||||
</plurals>
|
||||
<string name="action_update_category">カテゴリを更新</string>
|
||||
</resources>
|
|
@ -214,7 +214,7 @@
|
|||
<string name="download_notifier_unknown_error">다운로드 중에 예기치 않은 오류가 발생하였습니다</string>
|
||||
<string name="action_display_download_badge">다운로드한 챕터</string>
|
||||
<string name="pref_update_only_non_completed">연재가 끝남</string>
|
||||
<string name="default_category">기본 범주</string>
|
||||
<string name="default_category">기본 카테고리</string>
|
||||
<string name="pref_create_backup_summ">현재 서재를 나중에 복구하는 데 사용 가능</string>
|
||||
<string name="pref_reader_navigation">네비게이션</string>
|
||||
<string name="pref_page_transitions">페이지 전환 효과 표시</string>
|
||||
|
@ -723,4 +723,5 @@
|
|||
<plurals name="download_amount">
|
||||
<item quantity="other">다음 %d화</item>
|
||||
</plurals>
|
||||
<string name="action_update_category">카테고리 업데이트</string>
|
||||
</resources>
|
|
@ -1,70 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="manga_categories">വിഭാഗങ്ങൾ</string>
|
||||
<string name="unlock_app">ടാച്ചിയോമി അൺലോക്ക് ചെയ്യുക</string>
|
||||
<string name="pref_remember_brightness">ഓർക്കുക, അവസാനം ഉപയോഗിച്ച തെളിച്ചത്തിലേക്ക് മാറുക</string>
|
||||
<string name="player_title">%1$s - %2$s</string>
|
||||
<string name="episode_download_progress">%1$d%%</string>
|
||||
<string name="pref_remove_after_marked_as_read">വായിച്ചത്/കണ്ടത് എന്ന് സ്വമേധയാ അടയാളപ്പെടുത്തിയ ശേഷം</string>
|
||||
<string name="pref_remove_after_read">വായിച്ചതിന് ശേഷം/കണ്ടതിന് ശേഷം സ്വയമേവ ഇല്ലാതാക്കുക</string>
|
||||
<string name="player_aniskip_ed">അവസാന ഭാഗം ഒഴിവാക്കുക</string>
|
||||
<string name="pref_waiting_time_aniskip_5">5 സെക്കൻഡ്</string>
|
||||
<string name="pref_enable_netflix_style_aniskip">നെറ്റ്ഫ്ലിക്സ് ശൈലിയിൽ പ്രവർത്തനക്ഷമമാക്കുക</string>
|
||||
<string name="pref_waiting_time_aniskip_10">10 സെക്കൻഡ്</string>
|
||||
<string name="pref_waiting_time_aniskip_9">9 സെക്കൻഡ്</string>
|
||||
<string name="action_sort_last_seen">അവസാനം കണ്ടത്</string>
|
||||
<string name="action_display_show_continue_reading_button">കാണുന്നത് തുടരുക/വായിക്കുക ബട്ടൺ കാണിക്കുക</string>
|
||||
<string name="unofficial_extension_message_aniyomi">ഈ വിപുലീകരണം ഔദ്യോഗിക ആനിയോമി വിപുലീകരണ പട്ടികയിൽ നിന്നുള്ളതല്ല.</string>
|
||||
<string name="pref_category_player">കളിക്കാരൻ</string>
|
||||
<string name="pref_category_progress">പുരോഗതി</string>
|
||||
<string name="playback_options_quality">വീഡിയോ നിലവാരം</string>
|
||||
<string name="pref_waiting_time_aniskip_8">8 സെക്കൻഡ്</string>
|
||||
<string name="pref_waiting_time_aniskip_7">7 സെക്കൻഡ്</string>
|
||||
<string name="settings">ക്രമീകരണങ്ങൾ</string>
|
||||
<string name="player_aniskip_skip">%s ഒഴിവാക്കി</string>
|
||||
<string name="action_mark_as_unseen">കണ്ടിട്ടില്ലെന്ന് അടയാളപ്പെടുത്തുക</string>
|
||||
<string name="pref_waiting_time_aniskip_6">6 സെക്കൻഡ്</string>
|
||||
<string name="pref_enable_auto_skip_ani_skip">സ്വയമേവ ഒഴിവാക്കൽ പ്രവർത്തനക്ഷമമാക്കുക</string>
|
||||
<string name="player_aniskip_dontskip_toast">%d സെക്കൻഡിനുള്ളിൽ ഒഴിവാക്കുക</string>
|
||||
<string name="action_mark_previous_as_seen">മുമ്പത്തേത് കണ്ടതായി അടയാളപ്പെടുത്തുക</string>
|
||||
<string name="action_sort_last_checked">അവസാനം പരിശോധിച്ചത്</string>
|
||||
<string name="action_sort_unseen_count">കാണാത്ത കണക്ക്</string>
|
||||
<string name="player_aniskip_dontskip">ഒഴിവാക്കരുത്</string>
|
||||
<string name="action_play">കളിക്കുക</string>
|
||||
<string name="anime_categories">ആനിമെ വിഭാഗങ്ങൾ</string>
|
||||
<string name="action_filter_unseen">കാണാത്തത്</string>
|
||||
<string name="action_mark_as_seen">കണ്ടതായി അടയാളപ്പെടുത്തുക</string>
|
||||
<string name="general_categories">വിഭാഗങ്ങൾ</string>
|
||||
<string name="pref_incognito_mode_summary">നിങ്ങളുടെ ചരിത്രം താൽക്കാലികമായി നിർത്തുന്നു</string>
|
||||
<string name="label_manga_library">മാങ്ക</string>
|
||||
<string name="label_anime">ആനിമേ</string>
|
||||
<string name="label_anime_library">ആനിമേ</string>
|
||||
<plurals name="next_unseen_episodes">
|
||||
<item quantity="one"/>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="notification_episodes_multiple_and_more">
|
||||
<item quantity="one"/>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="notification_new_episodes_summary">
|
||||
<item quantity="one"/>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="notification_episodes_generic">
|
||||
<item quantity="one"/>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="seconds">
|
||||
<item quantity="one"/>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="anime_num_episodes">
|
||||
<item quantity="one"/>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="download_amount_anime">
|
||||
<item quantity="one"/>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
</resources>
|
|
@ -1,32 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="information_no_downloads">ഡൗൺലോഡുകളൊന്നുമില്ല</string>
|
||||
<string name="information_no_recent">സമീപകാല അപ്ഡേറ്റുകളൊന്നുമില്ല</string>
|
||||
<string name="track">ട്രാക്കിംഗ്</string>
|
||||
<string name="history">ചരിത്രം</string>
|
||||
<string name="label_settings">ക്രമീകരണങ്ങൾ</string>
|
||||
<string name="label_recent_updates">അപ്ഡേറ്റുകൾ</string>
|
||||
<string name="information_empty_library">നിങ്ങളുടെ ലൈബ്രറി ശൂന്യമാണ്</string>
|
||||
<string name="information_empty_category">നിങ്ങൾക്ക് വിഭാഗങ്ങളൊന്നുമില്ല. നിങ്ങളുടെ ലൈബ്രറി ഓർഗനൈസുചെയ്യുന്നതിന് ഒന്ന് സൃഷ്ടിക്കാൻ പ്ലസ് ബട്ടൺ ടാപ്പുചെയ്യുക.</string>
|
||||
<string name="label_default">സ്ഥിരസ്ഥിതി</string>
|
||||
<string name="action_filter">ഫിൽട്ടർ ചെയ്യുക</string>
|
||||
<string name="label_warning">മുന്നറിയിപ്പ്</string>
|
||||
<string name="name">പേര്</string>
|
||||
<string name="label_more">കൂടുതൽ</string>
|
||||
<string name="label_library">പുസ്തകശാല</string>
|
||||
<string name="label_recent_manga">ചരിത്രം</string>
|
||||
<string name="label_sources">ഉറവിടങ്ങൾ</string>
|
||||
<string name="label_backup">ബാക്കപ്പ് ചെയ്ത് പുനഃസ്ഥാപിക്കുക</string>
|
||||
<string name="label_migration">മൈഗ്രേറ്റ് ചെയ്യുക</string>
|
||||
<string name="label_extensions">വിപുലീകരണങ്ങൾ</string>
|
||||
<string name="label_extension_info">വിപുലീകരണ വിവരം</string>
|
||||
<string name="label_help">സഹായിക്കൂ</string>
|
||||
<string name="manga">മാംഗ</string>
|
||||
<string name="chapters">അധ്യായങ്ങൾ</string>
|
||||
<string name="confirm_lock_change">മാറ്റം സ്ഥിരീകരിക്കാൻ പ്രാമാണീകരിക്കുക</string>
|
||||
<string name="confirm_exit">പുറത്തുകടക്കാൻ വീണ്ടും അമർത്തുക</string>
|
||||
<string name="action_settings">ക്രമീകരണങ്ങൾ</string>
|
||||
<string name="action_menu">മെനു</string>
|
||||
<string name="information_no_recent_manga">അടുത്തിടെ ഒന്നും വായിച്ചില്ല</string>
|
||||
<string name="label_download_queue">ഡൗൺലോഡ് ക്യൂ</string>
|
||||
</resources>
|
|
@ -724,4 +724,5 @@
|
|||
</plurals>
|
||||
<string name="pref_hide_in_library_items">Sembunyikan entri yang sudah ada di dalam pustaka</string>
|
||||
<string name="action_copy_to_clipboard">Salin ke papan keratan</string>
|
||||
<string name="action_update_category">Kemas kini kategori</string>
|
||||
</resources>
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="manga_categories">အမျိုးအစားများ</string>
|
||||
<string name="unlock_app">Aniyomi ကိုဖွင့်ပါ</string>
|
||||
<string name="default_manga_category">ပုံသေအမျိုးအစား</string>
|
||||
</resources>
|
|
@ -1,122 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="action_restore">ပြန်ရယူသည်</string>
|
||||
<string name="action_open_log">Log ဖွင့်သည်</string>
|
||||
<string name="action_undo">အရင်အတိုင်း</string>
|
||||
<string name="action_reset">ပြန်စသည်</string>
|
||||
<string name="action_save">သိမ်းဆည်းသည်</string>
|
||||
<string name="action_share">မျှဝေသည်</string>
|
||||
<string name="action_install">Install</string>
|
||||
<string name="action_move_to_bottom">အောက်ခြေသို့ရွှေ့သည်</string>
|
||||
<string name="action_move_to_top">ထိပ်သို့ရွှေ့သည်</string>
|
||||
<string name="action_desc">ကြီးစဉ်ငယ်လိုက်</string>
|
||||
<string name="action_asc">ငယ်စဉ်ကြီးလိုက်</string>
|
||||
<string name="action_oldest">အဟောင်းဆုံး</string>
|
||||
<string name="action_newest">အသစ်ဆုံး</string>
|
||||
<string name="action_order_by_chapter_number">အခန်းနံပါတ်အလိုက်</string>
|
||||
<string name="action_order_by_upload_date">တင်သည့်နေ့စွဲအလိုက်</string>
|
||||
<string name="action_reorganize_by">ပြန်စဉ်သည်</string>
|
||||
<string name="action_sort">စဉ်သည်</string>
|
||||
<string name="action_cancel_all">အားလုံးပယ်ဖျက်သည်</string>
|
||||
<string name="action_cancel">ပယ်ဖျက်သည်</string>
|
||||
<string name="action_unpin">ပင်ဖြုတ်သည်</string>
|
||||
<string name="action_pin">ပင်ချိတ်သည်</string>
|
||||
<string name="action_disable">ဖြုတ်သည်</string>
|
||||
<string name="action_display_show_number_of_items">ပစ္စည်းအရေအတွက်ကိုပြသည်</string>
|
||||
<string name="action_display_show_tabs">အမျိုးအစားတန်းကိုပြသည်</string>
|
||||
<string name="action_display_download_badge">ဒေါင်းလုဒ်အမှတ်အသားများ</string>
|
||||
<string name="action_display_comfortable_grid">အနေတော်ဇယား</string>
|
||||
<string name="action_display_list">စာရင်းစဉ်</string>
|
||||
<string name="action_display_grid">ဇယားအကျဉ်း</string>
|
||||
<string name="action_display">ပြသပုံ</string>
|
||||
<string name="action_display_mode">ပြသသည့်ပုံစံ</string>
|
||||
<string name="action_migrate">ရွှေ့ပြောင်းသည်</string>
|
||||
<string name="action_open_in_web_view">WebView တွင်ဖွင့်သည်</string>
|
||||
<string name="action_open_in_browser">Browser တွင်ဖွင့်သည်</string>
|
||||
<string name="action_resume">ဆက်လုပ်သည်</string>
|
||||
<string name="action_start">စတင်သည်</string>
|
||||
<string name="action_remove">ဖယ်ရှားသည်</string>
|
||||
<string name="action_retry">ပြန်လုပ်မည်</string>
|
||||
<string name="action_next_chapter">နောက်အခန်း</string>
|
||||
<string name="action_previous_chapter">ရှေ့အခန်း</string>
|
||||
<string name="action_pause">ခေတ္တရပ်</string>
|
||||
<string name="action_stop">အပြီးရပ်</string>
|
||||
<string name="action_view_chapters">အခန်းများကိုကြည့်သည်</string>
|
||||
<string name="action_edit_cover">အဖုံးကိုပြင်ရန်</string>
|
||||
<string name="action_move_category">အမျိုးအစားသတ်မှတ်သည်</string>
|
||||
<string name="action_rename_category">အမျိုးအစားအမည်ပြင်သည်</string>
|
||||
<string name="action_edit_categories">အမျိုးအစားများပြင်ရန်</string>
|
||||
<string name="action_add_category">အမျိုးအစားထည့်ပါ</string>
|
||||
<string name="action_add">ထည့်သည်</string>
|
||||
<string name="action_edit">ပြင်ဆင်သည်</string>
|
||||
<string name="action_disable_all">အားလုံးပိတ်</string>
|
||||
<string name="action_enable_all">အားလုံးဖွင့်</string>
|
||||
<string name="action_update_library">စာအုပ်စင်ကိုအပ်ဒိပ်လုပ်သည်</string>
|
||||
<string name="action_delete">ဖျက်သည်</string>
|
||||
<string name="action_remove_bookmark">အခန်းကိုစာညှပ်ဖြုတ်သည်</string>
|
||||
<string name="action_bookmark">အခန်းကိုစာညှပ်မှတ်သည်</string>
|
||||
<string name="action_download">ဒေါင်းလုဒ်</string>
|
||||
<string name="action_mark_previous_as_read">နောက်ရှိအားလုံးကိုဖတ်ပြီးသတ်မှတ်သည်</string>
|
||||
<string name="action_mark_as_unread">မဖတ်ရသေးဟုသည်မှတ်သည်</string>
|
||||
<string name="action_mark_as_read">ဖတ်ပြီးဟုသတ်မှတ်သည်</string>
|
||||
<string name="action_select_inverse">ပြောင်းပြန်ရွေးချယ်ရန်</string>
|
||||
<string name="action_select_all">အားလုံးရွေးချယ်သည်</string>
|
||||
<string name="action_global_search">နေရာအနှံ့ရှာဖွေခြင်း</string>
|
||||
<string name="action_search_settings">ရှာဖွေမှုဆက်တင်များ</string>
|
||||
<string name="action_search">ရှာဖွေရန်</string>
|
||||
<string name="action_sort_date_added">ထည့်ခဲ့သောရက်စွဲအရ</string>
|
||||
<string name="action_sort_latest_chapter">နောက်ဆုံးထွက်အခန်းအရ</string>
|
||||
<string name="action_sort_last_read">နောက်ဆုံးဖတ်ခဲ့သော</string>
|
||||
<string name="action_sort_total">အခန်းစုစုပေါင်း</string>
|
||||
<string name="action_sort_alpha">အက္ခရာစဉ်အလိုက်</string>
|
||||
<string name="action_filter_empty">စစ်ထုတ်မှုဖယ်ရှားရန်</string>
|
||||
<string name="action_filter_unread">မဖတ်ရသေးသော</string>
|
||||
<string name="action_filter_tracked">ခြေရာခံထားသော</string>
|
||||
<string name="action_filter_bookmarked">စာညှပ်ထားသော</string>
|
||||
<string name="action_filter">စစ်ထုတ်သည်</string>
|
||||
<string name="action_menu">မီနူး</string>
|
||||
<string name="action_settings">ဆက်တင်များ</string>
|
||||
<string name="confirm_exit">ထွက်ရန်နောက်တစ်ကြိမ်ထပ်နှိပ်ပါ</string>
|
||||
<string name="history">မှတ်တမ်း</string>
|
||||
<string name="track">ခြေရာခံမှု</string>
|
||||
<string name="chapters">အပိုင်းများ</string>
|
||||
<string name="manga">Manga</string>
|
||||
<string name="information_empty_category">အမျိုးအစားများမရှိသေးပါ။သင့်စာအုပ်စင်ကို အမျိုးအစားခွဲခြားမှုပြုလုပ်ရန် အပေါင်းခလုပ်ကိုနှိပ်ပါ။</string>
|
||||
<string name="information_empty_library">စာအုပ်စင်မှာဘာမှမရှိပါ။ရှာဖွေခြင်းသို့သွားကာ စာစဉ်များထည့်လိုက်ပါ။</string>
|
||||
<string name="information_no_recent_manga">လတ်တလောဖတ်ထားသည်များမရှိပါ</string>
|
||||
<string name="information_no_recent">လတ်တလောအပ်ဒိတ်များမရှိသေးပါ</string>
|
||||
<string name="information_no_downloads">ဒေါင်းလုဒ်များမရှိပါ</string>
|
||||
<string name="label_help">အကူအညီ</string>
|
||||
<string name="label_extension_info">ထပ်တိုးအချက်အလက်</string>
|
||||
<string name="label_extensions">ထပ်တိုးများ</string>
|
||||
<string name="label_migration">ပြောင်းရွှေ့သည်</string>
|
||||
<string name="label_backup">အရံ</string>
|
||||
<string name="label_sources">ပင်မနေရာများ</string>
|
||||
<string name="label_recent_manga">မှတ်တမ်း</string>
|
||||
<string name="label_recent_updates">အပ်ဒိတ်များ</string>
|
||||
<string name="label_library">စာအုပ်စင်</string>
|
||||
<string name="label_settings">ဆက်တင်များ</string>
|
||||
<string name="label_more">နောက်ထပ်</string>
|
||||
<string name="name">အမည်</string>
|
||||
<string name="pref_category_reader">စာဖတ်ကိရိယာ</string>
|
||||
<string name="pref_category_about">အကြောင်း</string>
|
||||
<string name="pref_category_advanced">ပိုမိုဆက်လက်၍</string>
|
||||
<string name="pref_category_tracking">ခြေရာခံခြင်း</string>
|
||||
<string name="pref_category_downloads">Download များ</string>
|
||||
<string name="pref_category_library">စာကြည့်တိုက်</string>
|
||||
<string name="pref_category_general">အထွေထွေ</string>
|
||||
<string name="app_not_available">App မရနိုင်ပါ</string>
|
||||
<string name="loading">လုပ်ဆောင်နေသည်…</string>
|
||||
<string name="action_webview_refresh">ပြန်ရယူမည်</string>
|
||||
<string name="action_webview_forward">ရှေ့သို့</string>
|
||||
<string name="action_webview_back">နောက်သို့</string>
|
||||
<string name="updating_library">Library ကိုအပ်ဒိတ်လုပ်နေပါတယ်</string>
|
||||
<string name="no_chapters_error">မည်သည့်အပိုင်းမျှမရှိပါ</string>
|
||||
<string name="lock_when_idle">အသုံးမပြုချိန်တွင်သော့ခတ်မည်</string>
|
||||
<string name="completed">ထုတ်ဝေမှုပြီးစီး</string>
|
||||
<string name="licensed">လိုင်စင်လုပ်ပြီး</string>
|
||||
<string name="unknown">မသိရှိပါ</string>
|
||||
<string name="ongoing">Ongoing</string>
|
||||
<string name="title">နာမည်</string>
|
||||
<string name="label_download_queue">ဒေါင်းလုဒ်အစဉ်</string>
|
||||
</resources>
|
|
@ -237,7 +237,7 @@
|
|||
<string name="transition_pages_loading">Laster inn sider…</string>
|
||||
<string name="transition_pages_error">Klarte ikke å laste inn sider: %1$s</string>
|
||||
<string name="migration_dialog_what_to_include">Velg data å inkludere</string>
|
||||
<string name="migrate">Migrer</string>
|
||||
<string name="migrate">Flytt</string>
|
||||
<string name="copy">Kopier</string>
|
||||
<string name="notification_new_chapters">Nye kapitler funnet</string>
|
||||
<string name="notification_cover_update_failed">Klarte ikke å oppdatere omslag</string>
|
||||
|
@ -276,7 +276,7 @@
|
|||
<string name="filter_mode_lighten">Unngå / lysne</string>
|
||||
<string name="filter_mode_darken">Brenn / mørkere</string>
|
||||
<string name="no_results_found">Resultatløst</string>
|
||||
<string name="migration_selection_prompt">Velg en kilde å migrere fra</string>
|
||||
<string name="migration_selection_prompt">Velg en kilde å flytte fra</string>
|
||||
<string name="action_webview_back">Tilbake</string>
|
||||
<string name="action_webview_forward">Fram</string>
|
||||
<string name="action_webview_refresh">Gjenoppfrisk</string>
|
||||
|
@ -359,7 +359,7 @@
|
|||
</plurals>
|
||||
<string name="action_display_show_tabs">Vis kategorifaner</string>
|
||||
<string name="action_display_comfortable_grid">Komfortabelt rutenett</string>
|
||||
<string name="action_migrate">Migrer</string>
|
||||
<string name="action_migrate">Flytt</string>
|
||||
<string name="action_start">Start</string>
|
||||
<string name="tapping_inverted_both">Begge</string>
|
||||
<string name="tapping_inverted_vertical">loddrett</string>
|
||||
|
@ -473,7 +473,7 @@
|
|||
<string name="spen_previous_page">Forrige side</string>
|
||||
<string name="channel_crash_logs">Feillogg</string>
|
||||
<string name="file_picker_error">Ingen app for filvelging funnet</string>
|
||||
<string name="migration_help_guide">Veiledning for kildemigrering</string>
|
||||
<string name="migration_help_guide">Veiledning for kilde-flytting</string>
|
||||
<string name="clear_history_confirmation">Er du sikker\? All historikk vil gå tapt.</string>
|
||||
<string name="clear_history_completed">Historikken er slettet</string>
|
||||
<string name="pref_clear_history">Slett historikk</string>
|
||||
|
@ -635,7 +635,7 @@
|
|||
<string name="channel_skipped">Hoppet over</string>
|
||||
<string name="disabled_nav">Deaktivert</string>
|
||||
<string name="empty_backup_error">Ingen bibliotekoppføringer å sikkerhetskopiere</string>
|
||||
<string name="update_check_fdroid_migration_info">En ny versjon er tilgjengelig gjennom offisielle kanaler. Trykk for å lære hvordan du kan migrere fra den uoffisielle F-Droid varianten.</string>
|
||||
<string name="update_check_fdroid_migration_info">En ny versjon er tilgjengelig gjennom offisielle kanaler. Trykk for å lære hvordan du kan flytte over fra den uoffisielle F-Droid varianten.</string>
|
||||
<string name="error_saving_picture">Feil ved lagring av bilde</string>
|
||||
<string name="update_check_open">Åpne på GitHub</string>
|
||||
<string name="action_close">Lukk</string>
|
||||
|
@ -736,4 +736,5 @@
|
|||
</plurals>
|
||||
<string name="pref_hide_in_library_items">Skjul oppføringer som allerede er i biblioteket</string>
|
||||
<string name="action_copy_to_clipboard">Kopier til utklippstavle</string>
|
||||
<string name="action_update_category">Oppdater kategori</string>
|
||||
</resources>
|
|
@ -69,8 +69,8 @@
|
|||
<string name="action_remove_bookmark">अध्याय अनबुकमार्क गर्नुहोस्</string>
|
||||
<string name="action_bookmark">अध्याय बुकमार्क गर्नुहोस्</string>
|
||||
<string name="action_download">डाउनलोड</string>
|
||||
<string name="action_mark_previous_as_read">पढिसकेको भनेर अंकित गर्नुहोस्</string>
|
||||
<string name="action_mark_as_unread">नपढिएको चिन्ह लगाउनुहोस्</string>
|
||||
<string name="action_mark_previous_as_read">पढिएको भनी अघिल्लोलाई चिनो लगाउनुहोस्</string>
|
||||
<string name="action_mark_as_unread">नपढिएको चिनो लगाउनुहोस्</string>
|
||||
<string name="action_mark_as_read">पढिसकेको अंकित गर्नुहोस्</string>
|
||||
<string name="action_select_all">सबै चयन गर्नु</string>
|
||||
<string name="action_global_search">ग्लोबल खोजी</string>
|
||||
|
@ -80,7 +80,7 @@
|
|||
<string name="action_sort_total">कुल अध्यायहरू</string>
|
||||
<string name="action_sort_alpha">वर्णानुक्रम अनुसार</string>
|
||||
<string name="action_filter_empty">फिल्टर हटाउनुहोस्</string>
|
||||
<string name="action_filter_unread">अपठित</string>
|
||||
<string name="action_filter_unread">नपढिएको</string>
|
||||
<string name="action_filter_tracked">ट्र्याक गरिएको</string>
|
||||
<string name="action_filter_bookmarked">बुकमार्क गरिएको</string>
|
||||
<string name="action_filter_downloaded">डाउनलोड गरिएको</string>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<string name="pref_update_only_non_completed">\"समाप्त\" स्थिति भएको</string>
|
||||
<string name="restrictions">प्रतिबन्धहरु: %s</string>
|
||||
<string name="charging">चार्ज हुँदा</string>
|
||||
<string name="pref_library_update_restriction">स्वचालित अपडेटहरु उपकरण प्रतिबन्धहरू</string>
|
||||
<string name="pref_library_update_restriction">स्वचालित अपडेटहरु यन्त्र प्रतिबन्धहरू</string>
|
||||
<string name="update_weekly">साप्ताहिक</string>
|
||||
<string name="update_48hour">प्रत्येक २ दिन</string>
|
||||
<string name="update_24hour">दैनिक</string>
|
||||
|
@ -222,7 +222,7 @@
|
|||
<string name="pref_true_color_summary">ब्यान्डिङ घटाउँछ, तर प्रदर्शनलाई असर गर्छ</string>
|
||||
<string name="on">अन</string>
|
||||
<string name="pref_custom_brightness">कस्टम चमक</string>
|
||||
<string name="pref_skip_read_chapters">पढिसकेको चिन्ह लगाइएका अध्यायहरू छोड्नुहोस्</string>
|
||||
<string name="pref_skip_read_chapters">पढिएको चिनो लगाइएका अध्यायहरू छोड्नुहोस्</string>
|
||||
<string name="pref_reader_navigation">नेभिगेसन</string>
|
||||
<string name="pref_read_with_volume_keys">भोल्युम कुञ्जीहरू</string>
|
||||
<string name="tapping_inverted_vertical">ठाडो</string>
|
||||
|
@ -577,7 +577,7 @@
|
|||
</plurals>
|
||||
<string name="repeating">फेरी पढ्दै</string>
|
||||
<string name="transition_current">वर्तमान:</string>
|
||||
<string name="error_no_match">कुनै मेल भेटिएन</string>
|
||||
<string name="error_no_match">कुनै मेल फेला परेन</string>
|
||||
<string name="myanimelist_relogin">कृपया MAL मा फेरि लगइन गर्नुहोस्</string>
|
||||
<string name="source_unsupported">स्रोत समर्थित छैन</string>
|
||||
<string name="error_category_exists">सो नाम गरिएको वर्ग पहिले नै अवस्थित छ!</string>
|
||||
|
@ -635,7 +635,7 @@
|
|||
<string name="notification_update_skipped">%1$d अपडेट(हरू) छोडियो</string>
|
||||
<string name="disabled_nav">अक्षम</string>
|
||||
<string name="library_errors_help">पुस्तकालय अपडेट त्रुटिहरू कसरी समाधान गर्ने भन्ने बारे मद्दतको लागि, %1$s हेर्नुहोस्</string>
|
||||
<string name="action_sort_unread_count">अपठित संख्या</string>
|
||||
<string name="action_sort_unread_count">नपढिएको संख्या</string>
|
||||
<string name="action_close">बन्द</string>
|
||||
<string name="pref_library_summary">वर्गहरु, ग्लोबल अपडेट</string>
|
||||
<string name="delete_category_confirmation">के तपाई \"%s\" वर्ग हटाउन चाहनु हुन्छ\?</string>
|
||||
|
@ -654,7 +654,7 @@
|
|||
<string name="pref_long_strip_split">अग्लो छविहरू विभाजित गर्नुहोस् (BETA)</string>
|
||||
<string name="multi_lang">थुप्रै</string>
|
||||
<string name="pref_skip_dupe_chapters">डुप्लिकेट अध्यायहरू छोड्नुहोस्</string>
|
||||
<string name="action_display_show_continue_reading_button">\'पढाइ जारी राख्नुहोस्\' बटन देखाउनुहोस्</string>
|
||||
<string name="action_display_show_continue_reading_button">\'पढ्न जारी राख्नुहोस्\' बटन देखाउनुहोस्</string>
|
||||
<string name="label_stats">तथ्याङ्क</string>
|
||||
<string name="label_started">सुरु गरेको</string>
|
||||
<string name="label_local">लोकल</string>
|
||||
|
@ -765,4 +765,5 @@
|
|||
<string name="error_user_agent_string_invalid">अवैध युजर एजेन्ट स्ट्रिङ</string>
|
||||
<string name="day_short">%dदि</string>
|
||||
<string name="hour_short">%dघ</string>
|
||||
<string name="action_update_category">वर्ग अपडेट गर्नुहोस्</string>
|
||||
</resources>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue