diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a298599b7..4e826f287 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -140,6 +140,7 @@ dependencies { implementation(project(":core")) implementation(project(":source-api")) implementation(project(":data")) + implementation(project(":domain")) // Compose implementation(platform(compose.bom)) diff --git a/app/src/main/java/eu/kanade/domain/DomainModule.kt b/app/src/main/java/eu/kanade/domain/DomainModule.kt index 7b28cd8a2..b9837573d 100644 --- a/app/src/main/java/eu/kanade/domain/DomainModule.kt +++ b/app/src/main/java/eu/kanade/domain/DomainModule.kt @@ -1,6 +1,5 @@ package eu.kanade.domain -import eu.kanade.data.category.CategoryRepositoryImpl import eu.kanade.data.chapter.ChapterRepositoryImpl import eu.kanade.data.history.HistoryRepositoryImpl import eu.kanade.data.manga.MangaRepositoryImpl @@ -18,7 +17,6 @@ import eu.kanade.domain.category.interactor.SetDisplayModeForCategory import eu.kanade.domain.category.interactor.SetMangaCategories import eu.kanade.domain.category.interactor.SetSortModeForCategory import eu.kanade.domain.category.interactor.UpdateCategory -import eu.kanade.domain.category.repository.CategoryRepository import eu.kanade.domain.chapter.interactor.GetChapter import eu.kanade.domain.chapter.interactor.GetChapterByMangaId import eu.kanade.domain.chapter.interactor.SetMangaDefaultChapterFlags @@ -67,6 +65,8 @@ import eu.kanade.domain.track.interactor.InsertTrack import eu.kanade.domain.track.repository.TrackRepository import eu.kanade.domain.updates.interactor.GetUpdates import eu.kanade.domain.updates.repository.UpdatesRepository +import tachiyomi.data.category.CategoryRepositoryImpl +import tachiyomi.domain.category.repository.CategoryRepository import uy.kohesive.injekt.api.InjektModule import uy.kohesive.injekt.api.InjektRegistrar import uy.kohesive.injekt.api.addFactory diff --git a/app/src/main/java/eu/kanade/domain/category/interactor/CreateCategoryWithName.kt b/app/src/main/java/eu/kanade/domain/category/interactor/CreateCategoryWithName.kt index 723ec3b74..ff10f1461 100644 --- a/app/src/main/java/eu/kanade/domain/category/interactor/CreateCategoryWithName.kt +++ b/app/src/main/java/eu/kanade/domain/category/interactor/CreateCategoryWithName.kt @@ -1,11 +1,11 @@ package eu.kanade.domain.category.interactor -import eu.kanade.domain.category.model.Category -import eu.kanade.domain.category.repository.CategoryRepository import eu.kanade.domain.library.service.LibraryPreferences import eu.kanade.tachiyomi.util.lang.withNonCancellableContext import eu.kanade.tachiyomi.util.system.logcat import logcat.LogPriority +import tachiyomi.domain.category.model.Category +import tachiyomi.domain.category.repository.CategoryRepository class CreateCategoryWithName( private val categoryRepository: CategoryRepository, diff --git a/app/src/main/java/eu/kanade/domain/category/interactor/DeleteCategory.kt b/app/src/main/java/eu/kanade/domain/category/interactor/DeleteCategory.kt index 54f622e23..66af386b8 100644 --- a/app/src/main/java/eu/kanade/domain/category/interactor/DeleteCategory.kt +++ b/app/src/main/java/eu/kanade/domain/category/interactor/DeleteCategory.kt @@ -1,10 +1,10 @@ package eu.kanade.domain.category.interactor -import eu.kanade.domain.category.model.CategoryUpdate -import eu.kanade.domain.category.repository.CategoryRepository import eu.kanade.tachiyomi.util.lang.withNonCancellableContext import eu.kanade.tachiyomi.util.system.logcat import logcat.LogPriority +import tachiyomi.domain.category.model.CategoryUpdate +import tachiyomi.domain.category.repository.CategoryRepository class DeleteCategory( private val categoryRepository: CategoryRepository, diff --git a/app/src/main/java/eu/kanade/domain/category/interactor/GetCategories.kt b/app/src/main/java/eu/kanade/domain/category/interactor/GetCategories.kt index a13fb7e89..379d7d737 100644 --- a/app/src/main/java/eu/kanade/domain/category/interactor/GetCategories.kt +++ b/app/src/main/java/eu/kanade/domain/category/interactor/GetCategories.kt @@ -1,8 +1,8 @@ package eu.kanade.domain.category.interactor -import eu.kanade.domain.category.model.Category -import eu.kanade.domain.category.repository.CategoryRepository import kotlinx.coroutines.flow.Flow +import tachiyomi.domain.category.model.Category +import tachiyomi.domain.category.repository.CategoryRepository class GetCategories( private val categoryRepository: CategoryRepository, diff --git a/app/src/main/java/eu/kanade/domain/category/interactor/RenameCategory.kt b/app/src/main/java/eu/kanade/domain/category/interactor/RenameCategory.kt index b298ac020..1053cdd80 100644 --- a/app/src/main/java/eu/kanade/domain/category/interactor/RenameCategory.kt +++ b/app/src/main/java/eu/kanade/domain/category/interactor/RenameCategory.kt @@ -1,11 +1,11 @@ package eu.kanade.domain.category.interactor -import eu.kanade.domain.category.model.Category -import eu.kanade.domain.category.model.CategoryUpdate -import eu.kanade.domain.category.repository.CategoryRepository import eu.kanade.tachiyomi.util.lang.withNonCancellableContext import eu.kanade.tachiyomi.util.system.logcat import logcat.LogPriority +import tachiyomi.domain.category.model.Category +import tachiyomi.domain.category.model.CategoryUpdate +import tachiyomi.domain.category.repository.CategoryRepository class RenameCategory( private val categoryRepository: CategoryRepository, diff --git a/app/src/main/java/eu/kanade/domain/category/interactor/ReorderCategory.kt b/app/src/main/java/eu/kanade/domain/category/interactor/ReorderCategory.kt index 3687e4880..5df5940d9 100644 --- a/app/src/main/java/eu/kanade/domain/category/interactor/ReorderCategory.kt +++ b/app/src/main/java/eu/kanade/domain/category/interactor/ReorderCategory.kt @@ -1,13 +1,13 @@ package eu.kanade.domain.category.interactor -import eu.kanade.domain.category.model.Category -import eu.kanade.domain.category.model.CategoryUpdate -import eu.kanade.domain.category.repository.CategoryRepository import eu.kanade.tachiyomi.util.lang.withNonCancellableContext import eu.kanade.tachiyomi.util.system.logcat import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import logcat.LogPriority +import tachiyomi.domain.category.model.Category +import tachiyomi.domain.category.model.CategoryUpdate +import tachiyomi.domain.category.repository.CategoryRepository import java.util.Collections class ReorderCategory( diff --git a/app/src/main/java/eu/kanade/domain/category/interactor/ResetCategoryFlags.kt b/app/src/main/java/eu/kanade/domain/category/interactor/ResetCategoryFlags.kt index 773301967..2c75493bd 100644 --- a/app/src/main/java/eu/kanade/domain/category/interactor/ResetCategoryFlags.kt +++ b/app/src/main/java/eu/kanade/domain/category/interactor/ResetCategoryFlags.kt @@ -1,8 +1,8 @@ package eu.kanade.domain.category.interactor -import eu.kanade.domain.category.repository.CategoryRepository import eu.kanade.domain.library.model.plus import eu.kanade.domain.library.service.LibraryPreferences +import tachiyomi.domain.category.repository.CategoryRepository class ResetCategoryFlags( private val preferences: LibraryPreferences, diff --git a/app/src/main/java/eu/kanade/domain/category/interactor/SetDisplayModeForCategory.kt b/app/src/main/java/eu/kanade/domain/category/interactor/SetDisplayModeForCategory.kt index 2f1e67018..52e098e3a 100644 --- a/app/src/main/java/eu/kanade/domain/category/interactor/SetDisplayModeForCategory.kt +++ b/app/src/main/java/eu/kanade/domain/category/interactor/SetDisplayModeForCategory.kt @@ -1,12 +1,12 @@ package eu.kanade.domain.category.interactor -import eu.kanade.domain.category.model.Category -import eu.kanade.domain.category.model.CategoryUpdate -import eu.kanade.domain.category.repository.CategoryRepository import eu.kanade.domain.library.model.LibraryDisplayMode import eu.kanade.domain.library.model.LibraryGroup import eu.kanade.domain.library.model.plus import eu.kanade.domain.library.service.LibraryPreferences +import tachiyomi.domain.category.model.Category +import tachiyomi.domain.category.model.CategoryUpdate +import tachiyomi.domain.category.repository.CategoryRepository class SetDisplayModeForCategory( private val preferences: LibraryPreferences, diff --git a/app/src/main/java/eu/kanade/domain/category/interactor/SetSortModeForCategory.kt b/app/src/main/java/eu/kanade/domain/category/interactor/SetSortModeForCategory.kt index e657f2913..89d1943f4 100644 --- a/app/src/main/java/eu/kanade/domain/category/interactor/SetSortModeForCategory.kt +++ b/app/src/main/java/eu/kanade/domain/category/interactor/SetSortModeForCategory.kt @@ -1,12 +1,12 @@ package eu.kanade.domain.category.interactor -import eu.kanade.domain.category.model.Category -import eu.kanade.domain.category.model.CategoryUpdate -import eu.kanade.domain.category.repository.CategoryRepository import eu.kanade.domain.library.model.LibraryGroup import eu.kanade.domain.library.model.LibrarySort import eu.kanade.domain.library.model.plus import eu.kanade.domain.library.service.LibraryPreferences +import tachiyomi.domain.category.model.Category +import tachiyomi.domain.category.model.CategoryUpdate +import tachiyomi.domain.category.repository.CategoryRepository class SetSortModeForCategory( private val preferences: LibraryPreferences, diff --git a/app/src/main/java/eu/kanade/domain/category/interactor/UpdateCategory.kt b/app/src/main/java/eu/kanade/domain/category/interactor/UpdateCategory.kt index 0fccd6a18..265017ab2 100644 --- a/app/src/main/java/eu/kanade/domain/category/interactor/UpdateCategory.kt +++ b/app/src/main/java/eu/kanade/domain/category/interactor/UpdateCategory.kt @@ -1,8 +1,8 @@ package eu.kanade.domain.category.interactor -import eu.kanade.domain.category.model.CategoryUpdate -import eu.kanade.domain.category.repository.CategoryRepository import eu.kanade.tachiyomi.util.lang.withNonCancellableContext +import tachiyomi.domain.category.model.CategoryUpdate +import tachiyomi.domain.category.repository.CategoryRepository class UpdateCategory( private val categoryRepository: CategoryRepository, diff --git a/app/src/main/java/eu/kanade/domain/library/model/LibraryDisplayMode.kt b/app/src/main/java/eu/kanade/domain/library/model/LibraryDisplayMode.kt index d96e1ff81..37c53c64f 100644 --- a/app/src/main/java/eu/kanade/domain/library/model/LibraryDisplayMode.kt +++ b/app/src/main/java/eu/kanade/domain/library/model/LibraryDisplayMode.kt @@ -1,6 +1,6 @@ package eu.kanade.domain.library.model -import eu.kanade.domain.category.model.Category +import tachiyomi.domain.category.model.Category sealed class LibraryDisplayMode( override val flag: Long, diff --git a/app/src/main/java/eu/kanade/domain/library/model/LibrarySort.kt b/app/src/main/java/eu/kanade/domain/library/model/LibrarySort.kt index 94a755d67..5b2ec239c 100644 --- a/app/src/main/java/eu/kanade/domain/library/model/LibrarySort.kt +++ b/app/src/main/java/eu/kanade/domain/library/model/LibrarySort.kt @@ -1,6 +1,6 @@ package eu.kanade.domain.library.model -import eu.kanade.domain.category.model.Category +import tachiyomi.domain.category.model.Category data class LibrarySort( val type: Type, diff --git a/app/src/main/java/eu/kanade/presentation/category/CategoryExtensions.kt b/app/src/main/java/eu/kanade/presentation/category/CategoryExtensions.kt index 8d9bdb42c..0f2ade48e 100644 --- a/app/src/main/java/eu/kanade/presentation/category/CategoryExtensions.kt +++ b/app/src/main/java/eu/kanade/presentation/category/CategoryExtensions.kt @@ -3,8 +3,8 @@ package eu.kanade.presentation.category import android.content.Context import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource -import eu.kanade.domain.category.model.Category import eu.kanade.tachiyomi.R +import tachiyomi.domain.category.model.Category val Category.visualName: String @Composable diff --git a/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt b/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt index 53d53ab2d..5de8d923a 100644 --- a/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt @@ -7,7 +7,6 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import eu.kanade.domain.category.model.Category import eu.kanade.presentation.category.components.CategoryContent import eu.kanade.presentation.category.components.CategoryFloatingActionButton import eu.kanade.presentation.components.AppBar @@ -18,6 +17,7 @@ import eu.kanade.presentation.util.plus import eu.kanade.presentation.util.topSmallPaddingValues import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.category.CategoryScreenState +import tachiyomi.domain.category.model.Category @Composable fun CategoryScreen( diff --git a/app/src/main/java/eu/kanade/presentation/category/components/CategoryContent.kt b/app/src/main/java/eu/kanade/presentation/category/components/CategoryContent.kt index 13e6823cf..01e579663 100644 --- a/app/src/main/java/eu/kanade/presentation/category/components/CategoryContent.kt +++ b/app/src/main/java/eu/kanade/presentation/category/components/CategoryContent.kt @@ -7,9 +7,9 @@ import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import eu.kanade.domain.category.model.Category import eu.kanade.presentation.components.LazyColumn import eu.kanade.presentation.util.padding +import tachiyomi.domain.category.model.Category @Composable fun CategoryContent( diff --git a/app/src/main/java/eu/kanade/presentation/category/components/CategoryDialogs.kt b/app/src/main/java/eu/kanade/presentation/category/components/CategoryDialogs.kt index ad732a960..74f4b8aa9 100644 --- a/app/src/main/java/eu/kanade/presentation/category/components/CategoryDialogs.kt +++ b/app/src/main/java/eu/kanade/presentation/category/components/CategoryDialogs.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.res.stringResource import eu.kanade.tachiyomi.R import kotlinx.coroutines.delay +import tachiyomi.domain.category.model.Category import kotlin.time.Duration.Companion.seconds @Composable @@ -185,3 +186,7 @@ fun CategoryDeleteDialog( }, ) } + +internal fun List.anyWithName(name: String): Boolean { + return any { name == it.name } +} diff --git a/app/src/main/java/eu/kanade/presentation/category/components/CategoryListItem.kt b/app/src/main/java/eu/kanade/presentation/category/components/CategoryListItem.kt index 283692e95..27e2695b4 100644 --- a/app/src/main/java/eu/kanade/presentation/category/components/CategoryListItem.kt +++ b/app/src/main/java/eu/kanade/presentation/category/components/CategoryListItem.kt @@ -20,9 +20,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import eu.kanade.domain.category.model.Category import eu.kanade.presentation.util.padding import eu.kanade.tachiyomi.R +import tachiyomi.domain.category.model.Category @Composable fun CategoryListItem( diff --git a/app/src/main/java/eu/kanade/presentation/components/ChangeCategoryDialog.kt b/app/src/main/java/eu/kanade/presentation/components/ChangeCategoryDialog.kt index 4fb72fc43..b6689a068 100644 --- a/app/src/main/java/eu/kanade/presentation/components/ChangeCategoryDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/components/ChangeCategoryDialog.kt @@ -22,10 +22,10 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import eu.kanade.core.prefs.CheckboxState -import eu.kanade.domain.category.model.Category import eu.kanade.presentation.category.visualName import eu.kanade.presentation.util.padding import eu.kanade.tachiyomi.R +import tachiyomi.domain.category.model.Category @Composable fun ChangeCategoryDialog( diff --git a/app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt b/app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt index 49a58f147..93acfc95a 100644 --- a/app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt +++ b/app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt @@ -16,7 +16,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalLayoutDirection import eu.kanade.core.prefs.PreferenceMutableState -import eu.kanade.domain.category.model.Category import eu.kanade.domain.library.model.LibraryDisplayMode import eu.kanade.domain.library.model.LibraryManga import eu.kanade.presentation.components.PullRefresh @@ -24,6 +23,7 @@ import eu.kanade.presentation.components.rememberPagerState import eu.kanade.tachiyomi.ui.library.LibraryItem import kotlinx.coroutines.delay import kotlinx.coroutines.launch +import tachiyomi.domain.category.model.Category import kotlin.time.Duration.Companion.seconds @Composable diff --git a/app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt b/app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt index 706e236ff..18f6f3fae 100644 --- a/app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt +++ b/app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt @@ -6,11 +6,11 @@ import androidx.compose.material3.ScrollableTabRow import androidx.compose.material3.Tab import androidx.compose.runtime.Composable import androidx.compose.ui.unit.dp -import eu.kanade.domain.category.model.Category import eu.kanade.presentation.category.visualName import eu.kanade.presentation.components.Divider import eu.kanade.presentation.components.TabIndicator import eu.kanade.presentation.components.TabText +import tachiyomi.domain.category.model.Category @Composable fun LibraryTabs( diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/Commons.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/Commons.kt index b82df6918..641a48f35 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/Commons.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/Commons.kt @@ -4,9 +4,9 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource -import eu.kanade.domain.category.model.Category import eu.kanade.presentation.category.visualName import eu.kanade.tachiyomi.R +import tachiyomi.domain.category.model.Category /** * Returns a string of categories name for settings subtitle diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt index f42b83eef..0dc0be3ca 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt @@ -20,7 +20,6 @@ import androidx.compose.ui.util.fastMap import androidx.core.net.toUri import com.hippo.unifile.UniFile import eu.kanade.domain.category.interactor.GetCategories -import eu.kanade.domain.category.model.Category import eu.kanade.domain.download.service.DownloadPreferences import eu.kanade.presentation.category.visualName import eu.kanade.presentation.more.settings.Preference @@ -28,6 +27,7 @@ import eu.kanade.presentation.more.settings.widget.TriStateListDialog import eu.kanade.presentation.util.collectAsState import eu.kanade.tachiyomi.R import kotlinx.coroutines.runBlocking +import tachiyomi.domain.category.model.Category import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.io.File diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt index 80b8d694d..b7fcb145d 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt @@ -39,7 +39,6 @@ import com.commandiron.wheel_picker_compose.WheelPicker import eu.kanade.domain.UnsortedPreferences import eu.kanade.domain.category.interactor.GetCategories import eu.kanade.domain.category.interactor.ResetCategoryFlags -import eu.kanade.domain.category.model.Category import eu.kanade.domain.library.model.GroupLibraryMode import eu.kanade.domain.library.service.LibraryPreferences import eu.kanade.presentation.category.visualName @@ -60,6 +59,7 @@ import eu.kanade.tachiyomi.ui.category.CategoryScreen import eu.kanade.tachiyomi.ui.category.genre.SortTagScreen import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking +import tachiyomi.domain.category.model.Category import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt index 08454e881..cfbdd1168 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt @@ -8,7 +8,6 @@ import eu.kanade.data.exh.mergedMangaReferenceMapper import eu.kanade.data.manga.mangaMapper import eu.kanade.domain.backup.service.BackupPreferences import eu.kanade.domain.category.interactor.GetCategories -import eu.kanade.domain.category.model.Category import eu.kanade.domain.history.model.HistoryUpdate import eu.kanade.domain.library.service.LibraryPreferences import eu.kanade.domain.manga.interactor.GetFavorites @@ -65,6 +64,7 @@ import tachiyomi.data.Manga_sync import tachiyomi.data.Mangas import tachiyomi.data.listOfStringsAndAdapter import tachiyomi.data.updateStrategyAdapter +import tachiyomi.domain.category.model.Category import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.io.FileOutputStream diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupCategory.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupCategory.kt index ee569fb28..9c50f9307 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupCategory.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupCategory.kt @@ -1,8 +1,8 @@ package eu.kanade.tachiyomi.data.backup.models -import eu.kanade.domain.category.model.Category import kotlinx.serialization.Serializable import kotlinx.serialization.protobuf.ProtoNumber +import tachiyomi.domain.category.model.Category @Serializable class BackupCategory( diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt index d0ef64be9..f2e43eeed 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt @@ -9,7 +9,6 @@ import androidx.core.content.ContextCompat import eu.kanade.data.chapter.NoChaptersException import eu.kanade.domain.UnsortedPreferences import eu.kanade.domain.category.interactor.GetCategories -import eu.kanade.domain.category.model.Category import eu.kanade.domain.chapter.interactor.GetChapterByMangaId import eu.kanade.domain.chapter.interactor.SyncChaptersWithSource import eu.kanade.domain.chapter.interactor.SyncChaptersWithTrackServiceTwoWay @@ -83,6 +82,7 @@ import kotlinx.coroutines.supervisorScope import kotlinx.coroutines.sync.Semaphore import kotlinx.coroutines.sync.withPermit import logcat.LogPriority +import tachiyomi.domain.category.model.Category import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.io.File diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt index 5ecb8efda..5c7df39ab 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt @@ -21,7 +21,6 @@ import eu.kanade.core.prefs.mapAsCheckboxState import eu.kanade.domain.UnsortedPreferences import eu.kanade.domain.category.interactor.GetCategories import eu.kanade.domain.category.interactor.SetMangaCategories -import eu.kanade.domain.category.model.Category import eu.kanade.domain.chapter.interactor.GetChapterByMangaId import eu.kanade.domain.chapter.interactor.SetMangaDefaultChapterFlags import eu.kanade.domain.chapter.interactor.SyncChaptersWithTrackServiceTwoWay @@ -98,6 +97,7 @@ import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonArray import logcat.LogPriority +import tachiyomi.domain.category.model.Category import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import xyz.nulldev.ts.api.http.serializer.FilterSerializer diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreenModel.kt index 643362c4b..f929d4b23 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreenModel.kt @@ -9,13 +9,13 @@ import eu.kanade.domain.category.interactor.DeleteCategory import eu.kanade.domain.category.interactor.GetCategories import eu.kanade.domain.category.interactor.RenameCategory import eu.kanade.domain.category.interactor.ReorderCategory -import eu.kanade.domain.category.model.Category 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.model.Category import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt index a412d3f9b..94fb39e58 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt @@ -22,7 +22,6 @@ import eu.kanade.domain.UnsortedPreferences import eu.kanade.domain.base.BasePreferences import eu.kanade.domain.category.interactor.GetCategories import eu.kanade.domain.category.interactor.SetMangaCategories -import eu.kanade.domain.category.model.Category import eu.kanade.domain.chapter.interactor.GetChapterByMangaId import eu.kanade.domain.chapter.interactor.SetReadStatus import eu.kanade.domain.chapter.model.Chapter @@ -100,6 +99,7 @@ import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.toList import kotlinx.coroutines.flow.update import kotlinx.coroutines.runBlocking +import tachiyomi.domain.category.model.Category import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.text.Collator diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt index 2553bfae8..127532a9b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt @@ -8,7 +8,6 @@ import eu.kanade.domain.base.BasePreferences import eu.kanade.domain.category.interactor.GetCategories import eu.kanade.domain.category.interactor.SetDisplayModeForCategory import eu.kanade.domain.category.interactor.SetSortModeForCategory -import eu.kanade.domain.category.model.Category import eu.kanade.domain.library.model.LibraryDisplayMode import eu.kanade.domain.library.model.LibraryGroup import eu.kanade.domain.library.model.LibrarySort @@ -26,6 +25,7 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.runBlocking +import tachiyomi.domain.category.model.Category import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt index 4e1d13acc..51dc3654d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt @@ -29,7 +29,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.UnsortedPreferences -import eu.kanade.domain.category.model.Category import eu.kanade.domain.library.model.LibraryGroup import eu.kanade.domain.library.model.LibraryManga import eu.kanade.domain.library.model.display @@ -66,6 +65,7 @@ import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.launch +import tachiyomi.domain.category.model.Category import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index 793d0d80c..abd192f25 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -49,7 +49,6 @@ import cafe.adriel.voyager.navigator.currentOrThrow import com.google.accompanist.systemuicontroller.rememberSystemUiController import eu.kanade.domain.UnsortedPreferences import eu.kanade.domain.base.BasePreferences -import eu.kanade.domain.category.model.Category import eu.kanade.domain.library.service.LibraryPreferences import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.domain.ui.UiPreferences @@ -99,6 +98,7 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch import logcat.LogPriority +import tachiyomi.domain.category.model.Category import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index 32a7b858d..7bef1cd5a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -15,7 +15,6 @@ import eu.kanade.core.util.addOrRemove import eu.kanade.data.chapter.NoChaptersException import eu.kanade.domain.category.interactor.GetCategories import eu.kanade.domain.category.interactor.SetMangaCategories -import eu.kanade.domain.category.model.Category import eu.kanade.domain.chapter.interactor.GetMergedChapterByMangaId import eu.kanade.domain.chapter.interactor.SetMangaDefaultChapterFlags import eu.kanade.domain.chapter.interactor.SetReadStatus @@ -112,6 +111,7 @@ import kotlinx.coroutines.flow.update import kotlinx.coroutines.isActive import kotlinx.coroutines.launch import logcat.LogPriority +import tachiyomi.domain.category.model.Category import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy diff --git a/app/src/main/java/exh/EXHMigrations.kt b/app/src/main/java/exh/EXHMigrations.kt index 81f35e373..c8dad2c2e 100644 --- a/app/src/main/java/exh/EXHMigrations.kt +++ b/app/src/main/java/exh/EXHMigrations.kt @@ -5,7 +5,6 @@ package exh import android.content.Context import androidx.core.content.edit import androidx.preference.PreferenceManager -import eu.kanade.data.category.categoryMapper import eu.kanade.data.chapter.chapterMapper import eu.kanade.domain.backup.service.BackupPreferences import eu.kanade.domain.base.BasePreferences @@ -66,6 +65,7 @@ import kotlinx.serialization.json.contentOrNull import kotlinx.serialization.json.jsonArray import kotlinx.serialization.json.jsonPrimitive import tachiyomi.data.DatabaseHandler +import tachiyomi.data.category.categoryMapper import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy diff --git a/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt b/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt index 42c86330e..8f9f5e283 100644 --- a/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt +++ b/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt @@ -8,8 +8,6 @@ import eu.kanade.domain.category.interactor.CreateCategoryWithName import eu.kanade.domain.category.interactor.GetCategories import eu.kanade.domain.category.interactor.SetMangaCategories import eu.kanade.domain.category.interactor.UpdateCategory -import eu.kanade.domain.category.model.Category -import eu.kanade.domain.category.model.CategoryUpdate import eu.kanade.domain.manga.interactor.GetLibraryManga import eu.kanade.domain.manga.interactor.GetManga import eu.kanade.domain.manga.interactor.UpdateManga @@ -40,6 +38,8 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.launch import okhttp3.FormBody import okhttp3.Request +import tachiyomi.domain.category.model.Category +import tachiyomi.domain.category.model.CategoryUpdate import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy diff --git a/app/src/main/java/exh/favorites/LocalFavoritesStorage.kt b/app/src/main/java/exh/favorites/LocalFavoritesStorage.kt index 44f2de5c4..fbbdb0e18 100644 --- a/app/src/main/java/exh/favorites/LocalFavoritesStorage.kt +++ b/app/src/main/java/exh/favorites/LocalFavoritesStorage.kt @@ -1,7 +1,6 @@ package exh.favorites import eu.kanade.domain.category.interactor.GetCategories -import eu.kanade.domain.category.model.Category import eu.kanade.domain.manga.interactor.DeleteFavoriteEntries import eu.kanade.domain.manga.interactor.GetFavoriteEntries import eu.kanade.domain.manga.interactor.GetFavorites @@ -19,6 +18,7 @@ import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.mapNotNull import kotlinx.coroutines.flow.toList +import tachiyomi.domain.category.model.Category import uy.kohesive.injekt.injectLazy class LocalFavoritesStorage { diff --git a/data/build.gradle.kts b/data/build.gradle.kts index 250b0a8b4..062405e63 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -21,6 +21,7 @@ android { dependencies { implementation(project(":source-api")) + implementation(project(":domain")) api(libs.sqldelight.android.driver) api(libs.sqldelight.coroutines) api(libs.sqldelight.android.paging) diff --git a/data/src/main/AndroidManifest.xml b/data/src/main/AndroidManifest.xml index a5918e68a..568741e54 100644 --- a/data/src/main/AndroidManifest.xml +++ b/data/src/main/AndroidManifest.xml @@ -1,4 +1,2 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/java/eu/kanade/data/category/CategoryMapper.kt b/data/src/main/java/tachiyomi/data/category/CategoryMapper.kt similarity index 71% rename from app/src/main/java/eu/kanade/data/category/CategoryMapper.kt rename to data/src/main/java/tachiyomi/data/category/CategoryMapper.kt index 3f9a3ec51..37f18ae80 100644 --- a/app/src/main/java/eu/kanade/data/category/CategoryMapper.kt +++ b/data/src/main/java/tachiyomi/data/category/CategoryMapper.kt @@ -1,6 +1,6 @@ -package eu.kanade.data.category +package tachiyomi.data.category -import eu.kanade.domain.category.model.Category +import tachiyomi.domain.category.model.Category val categoryMapper: (Long, String, Long, Long) -> Category = { id, name, order, flags -> Category( diff --git a/app/src/main/java/eu/kanade/data/category/CategoryRepositoryImpl.kt b/data/src/main/java/tachiyomi/data/category/CategoryRepositoryImpl.kt similarity index 92% rename from app/src/main/java/eu/kanade/data/category/CategoryRepositoryImpl.kt rename to data/src/main/java/tachiyomi/data/category/CategoryRepositoryImpl.kt index 522d983d7..b1fb9c3af 100644 --- a/app/src/main/java/eu/kanade/data/category/CategoryRepositoryImpl.kt +++ b/data/src/main/java/tachiyomi/data/category/CategoryRepositoryImpl.kt @@ -1,11 +1,11 @@ -package eu.kanade.data.category +package tachiyomi.data.category -import eu.kanade.domain.category.model.Category -import eu.kanade.domain.category.model.CategoryUpdate -import eu.kanade.domain.category.repository.CategoryRepository import kotlinx.coroutines.flow.Flow import tachiyomi.data.Database import tachiyomi.data.DatabaseHandler +import tachiyomi.domain.category.model.Category +import tachiyomi.domain.category.model.CategoryUpdate +import tachiyomi.domain.category.repository.CategoryRepository class CategoryRepositoryImpl( private val handler: DatabaseHandler, diff --git a/domain/.gitignore b/domain/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/domain/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts new file mode 100644 index 000000000..cfbcc1926 --- /dev/null +++ b/domain/build.gradle.kts @@ -0,0 +1,19 @@ +plugins { + id("com.android.library") + kotlin("android") +} + +android { + namespace = "tachiyomi.domain" + + defaultConfig { + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + +} + +dependencies { + implementation(platform(kotlinx.coroutines.bom)) + implementation(kotlinx.bundles.coroutines) +} diff --git a/domain/consumer-rules.pro b/domain/consumer-rules.pro new file mode 100644 index 000000000..e69de29bb diff --git a/domain/proguard-rules.pro b/domain/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/domain/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/domain/src/main/AndroidManifest.xml b/domain/src/main/AndroidManifest.xml new file mode 100644 index 000000000..568741e54 --- /dev/null +++ b/domain/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/app/src/main/java/eu/kanade/domain/category/model/Category.kt b/domain/src/main/java/tachiyomi/domain/category/model/Category.kt similarity index 66% rename from app/src/main/java/eu/kanade/domain/category/model/Category.kt rename to domain/src/main/java/tachiyomi/domain/category/model/Category.kt index 742e481d2..ea901ce80 100644 --- a/app/src/main/java/eu/kanade/domain/category/model/Category.kt +++ b/domain/src/main/java/tachiyomi/domain/category/model/Category.kt @@ -1,4 +1,4 @@ -package eu.kanade.domain.category.model +package tachiyomi.domain.category.model import java.io.Serializable @@ -15,7 +15,3 @@ data class Category( const val UNCATEGORIZED_ID = 0L } } - -internal fun List.anyWithName(name: String): Boolean { - return any { name == it.name } -} diff --git a/app/src/main/java/eu/kanade/domain/category/model/CategoryUpdate.kt b/domain/src/main/java/tachiyomi/domain/category/model/CategoryUpdate.kt similarity index 77% rename from app/src/main/java/eu/kanade/domain/category/model/CategoryUpdate.kt rename to domain/src/main/java/tachiyomi/domain/category/model/CategoryUpdate.kt index fc9bc25f0..d3ee8baa9 100644 --- a/app/src/main/java/eu/kanade/domain/category/model/CategoryUpdate.kt +++ b/domain/src/main/java/tachiyomi/domain/category/model/CategoryUpdate.kt @@ -1,4 +1,4 @@ -package eu.kanade.domain.category.model +package tachiyomi.domain.category.model data class CategoryUpdate( val id: Long, diff --git a/app/src/main/java/eu/kanade/domain/category/repository/CategoryRepository.kt b/domain/src/main/java/tachiyomi/domain/category/repository/CategoryRepository.kt similarity index 81% rename from app/src/main/java/eu/kanade/domain/category/repository/CategoryRepository.kt rename to domain/src/main/java/tachiyomi/domain/category/repository/CategoryRepository.kt index c252eeb07..8ef20517b 100644 --- a/app/src/main/java/eu/kanade/domain/category/repository/CategoryRepository.kt +++ b/domain/src/main/java/tachiyomi/domain/category/repository/CategoryRepository.kt @@ -1,8 +1,8 @@ -package eu.kanade.domain.category.repository +package tachiyomi.domain.category.repository -import eu.kanade.domain.category.model.Category -import eu.kanade.domain.category.model.CategoryUpdate import kotlinx.coroutines.flow.Flow +import tachiyomi.domain.category.model.Category +import tachiyomi.domain.category.model.CategoryUpdate interface CategoryRepository { diff --git a/settings.gradle.kts b/settings.gradle.kts index 448eb1f6f..3555b5b8f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -45,3 +45,4 @@ include(":source-api") include(":core") include(":macrobenchmark") include(":data") +include(":domain")