revert: Revert "Modularize the app"

Epic fail, not sure what happened, but I am sure that I don't want to spend the rest of the day debugging no error crash, I'll just try again later. It is what it is, I guess...
This commit is contained in:
Ahmad Ansori Palembani 2024-06-16 13:23:47 +07:00
parent 9a86f99799
commit f59f2346dc
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
290 changed files with 881 additions and 1663 deletions

View file

@ -18,13 +18,11 @@
## Other ## Other
- Some code refactors - Some code refactors
- Simplify some messy code
- Rewrite version checker
- Rewrite Migrator
- Split the project into several modules
- Update firebase bom to v33.1.0 - Update firebase bom to v33.1.0
- Update dependency co.touchlab:kermit-crashlytics to v3.9.0 - Update dependency co.touchlab:kermit-crashlytics to v3.9.0
- Update dependency com.google.android.gms:play-services-oss-licenses to v17.1.0 - Update dependency com.google.android.gms:play-services-oss-licenses to v17.1.0
- Update dependency com.google.gms:google-services to v4.4.2 - Update dependency com.google.gms:google-services to v4.4.2
- Add crashlytics integration for Kermit - Add crashlytics integration for Kermit
- Replace ProgressBar with ProgressIndicator from Material3 to improve UI consistency - Replace ProgressBar with ProgressIndicator from Material3 to improve UI consistency
- Rewrite version checker
- Rewrite Migrator

View file

@ -39,9 +39,14 @@ val buildTime: String by lazy {
val supportedAbis = setOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64") val supportedAbis = setOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
android { android {
compileSdk = AndroidConfig.compileSdk
ndkVersion = AndroidConfig.ndk
defaultConfig { defaultConfig {
minSdk = AndroidConfig.minSdk
targetSdk = AndroidConfig.targetSdk
applicationId = "eu.kanade.tachiyomi" applicationId = "eu.kanade.tachiyomi"
versionCode = 137 versionCode = 136
versionName = "1.8.4" versionName = "1.8.4"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled = true multiDexEnabled = true
@ -140,6 +145,14 @@ android {
kotlinCompilerExtensionVersion = compose.versions.compose.compiler.get() kotlinCompilerExtensionVersion = compose.versions.compose.compiler.get()
} }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
isCoreLibraryDesugaringEnabled = true
}
kotlinOptions {
jvmTarget = "17"
}
namespace = "eu.kanade.tachiyomi" namespace = "eu.kanade.tachiyomi"
sqldelight { sqldelight {
@ -154,10 +167,6 @@ android {
} }
dependencies { dependencies {
implementation(projects.core)
implementation(projects.i18n)
implementation(projects.sourceApi)
// Compose // Compose
implementation(compose.bundles.compose) implementation(compose.bundles.compose)
debugImplementation(compose.ui.tooling) debugImplementation(compose.ui.tooling)
@ -271,8 +280,8 @@ dependencies {
implementation(kotlin("stdlib", org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION)) implementation(kotlin("stdlib", org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION))
implementation(platform(kotlinx.coroutines.bom)) implementation(kotlinx.coroutines.core)
implementation(kotlinx.bundles.coroutines) implementation(kotlinx.coroutines.android)
// Text distance // Text distance
implementation(libs.java.string.similarity) implementation(libs.java.string.similarity)
@ -287,6 +296,8 @@ dependencies {
implementation(kotlinx.immutable) implementation(kotlinx.immutable)
"coreLibraryDesugaring"(libs.desugar)
// Tests // Tests
testImplementation(libs.bundles.test) testImplementation(libs.bundles.test)
testRuntimeOnly(libs.bundles.test.runtime) testRuntimeOnly(libs.bundles.test.runtime)
@ -295,6 +306,13 @@ dependencies {
} }
tasks { tasks {
withType<Test> {
useJUnitPlatform()
testLogging {
events("passed", "skipped", "failed")
}
}
// See https://kotlinlang.org/docs/reference/experimental.html#experimental-status-of-experimental-api(-markers) // See https://kotlinlang.org/docs/reference/experimental.html#experimental-status-of-experimental-api(-markers)
withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions.freeCompilerArgs += listOf( kotlinOptions.freeCompilerArgs += listOf(

View file

@ -1,19 +1,19 @@
-dontobfuscate -dontobfuscate
-keep,allowoptimization class eu.kanade.** -keep class eu.kanade.tachiyomi.source.** { public protected *; } # Avoid access modification
-keep,allowoptimization class tachiyomi.** -keep,allowoptimization class eu.kanade.** { public protected *; }
-keep,allowoptimization class yokai.** -keep,allowoptimization class tachiyomi.** { public protected *; }
-keep,allowoptimization class dev.yokai.** { public protected *; }
# Keep common dependencies used in extensions # Keep common dependencies used in extensions
-keep,allowoptimization class androidx.preference.** { public protected *; } -keep class androidx.preference.** { public protected *; }
-keep,allowoptimization class kotlin.** { public protected *; } -keep class kotlin.** { public protected *; }
-keep,allowoptimization class kotlinx.coroutines.** { public protected *; } -keep,allowoptimization class kotlinx.coroutines.** { public protected *; }
-keep,allowoptimization class kotlinx.serialization.** { public protected *; } -keep class kotlinx.serialization.** { public protected *; }
-keep,allowoptimization class kotlin.time.** { public protected *; } -keep class okhttp3.** { public protected *; }
-keep,allowoptimization class okhttp3.** { public protected *; }
-keep,allowoptimization class okio.** { public protected *; } -keep,allowoptimization class okio.** { public protected *; }
-keep,allowoptimization class rx.** { public protected *; } -keep,allowoptimization class rx.** { public protected *; }
-keep,allowoptimization class org.jsoup.** { public protected *; } -keep class org.jsoup.** { public protected *; }
-keep,allowoptimization class com.google.gson.** { public protected *; } -keep,allowoptimization class com.google.gson.** { public protected *; }
-keep,allowoptimization class app.cash.quickjs.** { public protected *; } -keep,allowoptimization class app.cash.quickjs.** { public protected *; }
-keep,allowoptimization class uy.kohesive.injekt.** { public protected *; } -keep,allowoptimization class uy.kohesive.injekt.** { public protected *; }
@ -73,11 +73,11 @@
kotlinx.serialization.KSerializer serializer(...); kotlinx.serialization.KSerializer serializer(...);
} }
-keep,includedescriptorclasses class yokai.**$$serializer { *; } -keep,includedescriptorclasses class dev.yokai.**$$serializer { *; }
-keepclassmembers class yokai.** { -keepclassmembers class dev.yokai.** {
*** Companion; *** Companion;
} }
-keepclasseswithmembers class yokai.** { -keepclasseswithmembers class dev.yokai.** {
kotlinx.serialization.KSerializer serializer(...); kotlinx.serialization.KSerializer serializer(...);
} }

View file

@ -1,4 +1,4 @@
package yokai.core package dev.yokai.core
import co.touchlab.kermit.DefaultFormatter import co.touchlab.kermit.DefaultFormatter
import co.touchlab.kermit.LogWriter import co.touchlab.kermit.LogWriter

View file

@ -1,13 +1,15 @@
package yokai.core.di package dev.yokai.core.di
import android.app.Application import android.app.Application
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.sqlite.db.SupportSQLiteOpenHelper import androidx.sqlite.db.SupportSQLiteOpenHelper
import app.cash.sqldelight.db.SqlDriver import app.cash.sqldelight.db.SqlDriver
import app.cash.sqldelight.driver.android.AndroidSqliteDriver import app.cash.sqldelight.driver.android.AndroidSqliteDriver
import com.chuckerteam.chucker.api.ChuckerCollector import dev.yokai.data.AndroidDatabaseHandler
import com.chuckerteam.chucker.api.ChuckerInterceptor import dev.yokai.data.DatabaseHandler
import eu.kanade.tachiyomi.BuildConfig import dev.yokai.domain.SplashState
import dev.yokai.domain.extension.interactor.TrustExtension
import dev.yokai.domain.storage.StorageManager
import eu.kanade.tachiyomi.core.storage.AndroidStorageFolderProvider import eu.kanade.tachiyomi.core.storage.AndroidStorageFolderProvider
import eu.kanade.tachiyomi.data.cache.ChapterCache import eu.kanade.tachiyomi.data.cache.ChapterCache
import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.cache.CoverCache
@ -33,10 +35,6 @@ import uy.kohesive.injekt.api.InjektRegistrar
import uy.kohesive.injekt.api.addSingleton import uy.kohesive.injekt.api.addSingleton
import uy.kohesive.injekt.api.addSingletonFactory import uy.kohesive.injekt.api.addSingletonFactory
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import yokai.data.AndroidDatabaseHandler
import yokai.data.DatabaseHandler
import yokai.domain.SplashState
import yokai.domain.storage.StorageManager
class AppModule(val app: Application) : InjektModule { class AppModule(val app: Application) : InjektModule {
@ -91,23 +89,7 @@ class AppModule(val app: Application) : InjektModule {
addSingletonFactory { CoverCache(app) } addSingletonFactory { CoverCache(app) }
addSingletonFactory { addSingletonFactory { NetworkHelper(app) }
NetworkHelper(
app,
get(),
) { builder ->
if (BuildConfig.DEBUG) {
builder.addInterceptor(
ChuckerInterceptor.Builder(app)
.collector(ChuckerCollector(app))
.maxContentLength(250000L)
.redactHeaders(emptySet())
.alwaysReadResponseBody(false)
.build(),
)
}
}
}
addSingletonFactory { JavaScriptEngine(app) } addSingletonFactory { JavaScriptEngine(app) }

View file

@ -0,0 +1,56 @@
package dev.yokai.core.di
import dev.yokai.data.chapter.ChapterRepositoryImpl
import dev.yokai.domain.extension.repo.ExtensionRepoRepository
import dev.yokai.data.extension.repo.ExtensionRepoRepositoryImpl
import dev.yokai.data.library.custom.CustomMangaRepositoryImpl
import dev.yokai.data.manga.MangaRepositoryImpl
import dev.yokai.domain.chapter.ChapterRepository
import dev.yokai.domain.chapter.interactor.GetAvailableScanlators
import dev.yokai.domain.chapter.interactor.GetChapters
import dev.yokai.domain.extension.interactor.TrustExtension
import dev.yokai.domain.extension.repo.interactor.CreateExtensionRepo
import dev.yokai.domain.extension.repo.interactor.DeleteExtensionRepo
import dev.yokai.domain.extension.repo.interactor.GetExtensionRepo
import dev.yokai.domain.extension.repo.interactor.GetExtensionRepoCount
import dev.yokai.domain.extension.repo.interactor.ReplaceExtensionRepo
import dev.yokai.domain.extension.repo.interactor.UpdateExtensionRepo
import dev.yokai.domain.library.custom.CustomMangaRepository
import dev.yokai.domain.library.custom.interactor.CreateCustomManga
import dev.yokai.domain.library.custom.interactor.DeleteCustomManga
import dev.yokai.domain.library.custom.interactor.GetCustomManga
import dev.yokai.domain.library.custom.interactor.RelinkCustomManga
import dev.yokai.domain.manga.MangaRepository
import dev.yokai.domain.manga.interactor.GetLibraryManga
import uy.kohesive.injekt.api.InjektModule
import uy.kohesive.injekt.api.InjektRegistrar
import uy.kohesive.injekt.api.addFactory
import uy.kohesive.injekt.api.addSingletonFactory
import uy.kohesive.injekt.api.get
class DomainModule : InjektModule {
override fun InjektRegistrar.registerInjectables() {
addFactory { TrustExtension(get(), get()) }
addSingletonFactory<ExtensionRepoRepository> { ExtensionRepoRepositoryImpl(get()) }
addFactory { CreateExtensionRepo(get()) }
addFactory { DeleteExtensionRepo(get()) }
addFactory { GetExtensionRepo(get()) }
addFactory { GetExtensionRepoCount(get()) }
addFactory { ReplaceExtensionRepo(get()) }
addFactory { UpdateExtensionRepo(get(), get()) }
addSingletonFactory<CustomMangaRepository> { CustomMangaRepositoryImpl(get()) }
addFactory { CreateCustomManga(get()) }
addFactory { DeleteCustomManga(get()) }
addFactory { GetCustomManga(get()) }
addFactory { RelinkCustomManga(get()) }
addSingletonFactory<MangaRepository> { MangaRepositoryImpl(get()) }
addFactory { GetLibraryManga(get()) }
addSingletonFactory<ChapterRepository> { ChapterRepositoryImpl(get()) }
addFactory { GetAvailableScanlators(get()) }
addFactory { GetChapters(get()) }
}
}

View file

@ -1,23 +1,22 @@
package yokai.core.di package dev.yokai.core.di
import android.app.Application import android.app.Application
import dev.yokai.domain.base.BasePreferences
import dev.yokai.domain.download.DownloadPreferences
import dev.yokai.domain.recents.RecentsPreferences
import dev.yokai.domain.source.SourcePreferences
import dev.yokai.domain.storage.StoragePreferences
import dev.yokai.domain.ui.UiPreferences
import dev.yokai.domain.ui.settings.ReaderPreferences
import eu.kanade.tachiyomi.core.preference.AndroidPreferenceStore import eu.kanade.tachiyomi.core.preference.AndroidPreferenceStore
import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore
import eu.kanade.tachiyomi.core.storage.AndroidStorageFolderProvider import eu.kanade.tachiyomi.core.storage.AndroidStorageFolderProvider
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.track.TrackPreferences import eu.kanade.tachiyomi.data.track.TrackPreferences
import eu.kanade.tachiyomi.network.NetworkPreferences
import uy.kohesive.injekt.api.InjektModule import uy.kohesive.injekt.api.InjektModule
import uy.kohesive.injekt.api.InjektRegistrar import uy.kohesive.injekt.api.InjektRegistrar
import uy.kohesive.injekt.api.addSingletonFactory import uy.kohesive.injekt.api.addSingletonFactory
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import yokai.domain.base.BasePreferences
import yokai.domain.download.DownloadPreferences
import yokai.domain.recents.RecentsPreferences
import yokai.domain.source.SourcePreferences
import yokai.domain.storage.StoragePreferences
import yokai.domain.ui.UiPreferences
import yokai.domain.ui.settings.ReaderPreferences
class PreferenceModule(val application: Application) : InjektModule { class PreferenceModule(val application: Application) : InjektModule {
override fun InjektRegistrar.registerInjectables() { override fun InjektRegistrar.registerInjectables() {
@ -37,8 +36,6 @@ class PreferenceModule(val application: Application) : InjektModule {
addSingletonFactory { DownloadPreferences(get()) } addSingletonFactory { DownloadPreferences(get()) }
addSingletonFactory { NetworkPreferences(get()) }
addSingletonFactory { addSingletonFactory {
PreferencesHelper( PreferencesHelper(
context = application, context = application,

View file

@ -1,4 +1,4 @@
package yokai.core.metadata package dev.yokai.core.metadata
import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.Chapter
import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Manga

View file

@ -1,4 +1,4 @@
package yokai.core.migration package dev.yokai.core.migration
interface Migration { interface Migration {
val version: Float val version: Float

View file

@ -1,3 +1,3 @@
package yokai.core.migration package dev.yokai.core.migration
typealias MigrationCompletedListener = () -> Unit typealias MigrationCompletedListener = () -> Unit

View file

@ -1,4 +1,4 @@
package yokai.core.migration package dev.yokai.core.migration
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt

View file

@ -1,4 +1,4 @@
package yokai.core.migration package dev.yokai.core.migration
import co.touchlab.kermit.Logger import co.touchlab.kermit.Logger
import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.CompletableDeferred

View file

@ -1,4 +1,4 @@
package yokai.core.migration package dev.yokai.core.migration
import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope

View file

@ -1,4 +1,4 @@
package yokai.core.migration package dev.yokai.core.migration
class MigrationStrategyFactory( class MigrationStrategyFactory(
private val factory: MigrationJobFactory, private val factory: MigrationJobFactory,

View file

@ -1,4 +1,4 @@
package yokai.core.migration package dev.yokai.core.migration
import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope

View file

@ -1,8 +1,8 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
import java.io.File import java.io.File
/** /**

View file

@ -1,8 +1,8 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
import java.io.File import java.io.File
/** /**

View file

@ -1,8 +1,8 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.ui.library.LibraryPresenter import eu.kanade.tachiyomi.ui.library.LibraryPresenter
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class CustomInfoMigration : Migration { class CustomInfoMigration : Migration {
override val version: Float = 66f override val version: Float = 66f

View file

@ -1,14 +1,14 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import dev.yokai.domain.ui.settings.ReaderPreferences
import dev.yokai.domain.ui.settings.ReaderPreferences.CutoutBehaviour
import dev.yokai.domain.ui.settings.ReaderPreferences.LandscapeCutoutBehaviour
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.data.preference.PreferenceKeys import eu.kanade.tachiyomi.data.preference.PreferenceKeys
import eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerConfig import eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerConfig
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
import yokai.domain.ui.settings.ReaderPreferences
import yokai.domain.ui.settings.ReaderPreferences.CutoutBehaviour
import yokai.domain.ui.settings.ReaderPreferences.LandscapeCutoutBehaviour
class CutoutMigration : Migration { class CutoutMigration : Migration {
override val version: Float = 121f override val version: Float = 121f

View file

@ -1,12 +1,12 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import androidx.core.content.edit import androidx.core.content.edit
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.data.preference.PreferenceKeys import eu.kanade.tachiyomi.data.preference.PreferenceKeys
import eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE import eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class DoHMigration : Migration { class DoHMigration : Migration {
override val version: Float = 71f override val version: Float = 71f

View file

@ -1,9 +1,9 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.data.download.DownloadProvider import eu.kanade.tachiyomi.data.download.DownloadProvider
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class DownloadedChaptersMigration : Migration { class DownloadedChaptersMigration : Migration {
override val version: Float = 54f override val version: Float = 54f

View file

@ -1,10 +1,10 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.preference.plusAssign import eu.kanade.tachiyomi.data.preference.plusAssign
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class EnabledLanguageMigration : Migration { class EnabledLanguageMigration : Migration {
override val version: Float = 83f override val version: Float = 83f

View file

@ -1,11 +1,11 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
import eu.kanade.tachiyomi.data.updater.AppUpdateJob import eu.kanade.tachiyomi.data.updater.AppUpdateJob
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
/** /**
* Restore jobs after upgrading to evernote's job scheduler. * Restore jobs after upgrading to evernote's job scheduler.

View file

@ -1,10 +1,10 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import dev.yokai.domain.base.BasePreferences
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
import yokai.domain.base.BasePreferences
/** /**
* Upstream no longer use Int for extension installer prefs, this solves incompatibility with upstreams backup * Upstream no longer use Int for extension installer prefs, this solves incompatibility with upstreams backup

View file

@ -1,8 +1,8 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
import java.io.File import java.io.File
/** /**

View file

@ -1,11 +1,11 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import androidx.core.content.edit import androidx.core.content.edit
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.ui.library.LibrarySort import eu.kanade.tachiyomi.ui.library.LibrarySort
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class LibrarySortMigration : Migration { class LibrarySortMigration : Migration {
override val version: Float = 110f override val version: Float = 110f

View file

@ -1,9 +1,9 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class LibraryUpdateResetMigration : Migration { class LibraryUpdateResetMigration : Migration {
override val version: Float = 105f override val version: Float = 105f

View file

@ -1,8 +1,8 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
import yokai.core.migration.Migration
val migrations: ImmutableList<Migration> = persistentListOf( val migrations: ImmutableList<Migration> = persistentListOf(
SetupAppUpdateMigration(), SetupAppUpdateMigration(),
@ -36,5 +36,4 @@ val migrations: ImmutableList<Migration> = persistentListOf(
ExtensionInstallerEnumMigration(), ExtensionInstallerEnumMigration(),
CutoutMigration(), CutoutMigration(),
RepoJsonMigration(), RepoJsonMigration(),
NetworkPrefsMigration(),
) )

View file

@ -1,11 +1,11 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.util.system.toast
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
/** /**
* Force MAL log out due to login flow change * Force MAL log out due to login flow change

View file

@ -1,12 +1,12 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.data.preference.PreferenceValues import eu.kanade.tachiyomi.data.preference.PreferenceValues
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.ui.recents.RecentsPresenter import eu.kanade.tachiyomi.ui.recents.RecentsPresenter
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
import kotlin.math.max import kotlin.math.max
class PrefsMigration : Migration { class PrefsMigration : Migration {

View file

@ -1,12 +1,12 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.ui.library.LibraryPresenter import eu.kanade.tachiyomi.ui.library.LibraryPresenter
import eu.kanade.tachiyomi.util.system.withIOContext import eu.kanade.tachiyomi.util.system.withIOContext
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class ReaderUpdateMigration : Migration { class ReaderUpdateMigration : Migration {
override val version: Float = 88f override val version: Float = 88f

View file

@ -1,13 +1,13 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import co.touchlab.kermit.Logger import co.touchlab.kermit.Logger
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import dev.yokai.domain.extension.repo.ExtensionRepoRepository
import dev.yokai.domain.extension.repo.exception.SaveExtensionRepoException
import eu.kanade.tachiyomi.core.preference.Preference import eu.kanade.tachiyomi.core.preference.Preference
import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore
import eu.kanade.tachiyomi.util.system.withIOContext import eu.kanade.tachiyomi.util.system.withIOContext
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
import yokai.domain.extension.repo.ExtensionRepoRepository
import yokai.domain.extension.repo.exception.SaveExtensionRepoException
class RepoJsonMigration : Migration { class RepoJsonMigration : Migration {
override val version: Float = 130f override val version: Float = 130f

View file

@ -1,11 +1,11 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import androidx.core.content.edit import androidx.core.content.edit
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.ui.reader.settings.OrientationType import eu.kanade.tachiyomi.ui.reader.settings.OrientationType
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class RotationTypeEnumMigration : Migration { class RotationTypeEnumMigration : Migration {
override val version: Float = 77f override val version: Float = 77f

View file

@ -1,10 +1,10 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import androidx.core.content.edit import androidx.core.content.edit
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class RotationTypeMigration : Migration { class RotationTypeMigration : Migration {
override val version: Float = 73f override val version: Float = 73f

View file

@ -1,10 +1,10 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.data.updater.AppUpdateJob import eu.kanade.tachiyomi.data.updater.AppUpdateJob
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class SetupAppUpdateMigration : Migration { class SetupAppUpdateMigration : Migration {
override val version: Float = Migration.ALWAYS override val version: Float = Migration.ALWAYS

View file

@ -1,9 +1,9 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.data.backup.create.BackupCreatorJob import eu.kanade.tachiyomi.data.backup.create.BackupCreatorJob
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class SetupBackupCreateMigration : Migration { class SetupBackupCreateMigration : Migration {
override val version: Float = Migration.ALWAYS override val version: Float = Migration.ALWAYS

View file

@ -1,9 +1,9 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.extension.ExtensionUpdateJob import eu.kanade.tachiyomi.extension.ExtensionUpdateJob
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class SetupExtensionUpdateMigration : Migration { class SetupExtensionUpdateMigration : Migration {
override val version: Float = Migration.ALWAYS override val version: Float = Migration.ALWAYS

View file

@ -1,9 +1,9 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class SetupLibraryUpdateMigration : Migration { class SetupLibraryUpdateMigration : Migration {
override val version: Float = Migration.ALWAYS override val version: Float = Migration.ALWAYS

View file

@ -1,13 +1,13 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import androidx.core.content.edit import androidx.core.content.edit
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
import eu.kanade.tachiyomi.data.preference.PreferenceKeys import eu.kanade.tachiyomi.data.preference.PreferenceKeys
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class ShortcutsMigration : Migration { class ShortcutsMigration : Migration {
override val version: Float = 75f override val version: Float = 75f

View file

@ -1,10 +1,10 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import androidx.core.content.edit import androidx.core.content.edit
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class ThePurgeMigration : Migration { class ThePurgeMigration : Migration {
override val version: Float = 112f override val version: Float = 112f

View file

@ -1,9 +1,9 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.core.preference.Preference import eu.kanade.tachiyomi.core.preference.Preference
import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class TrackerPrivateSettingsMigration : Migration { class TrackerPrivateSettingsMigration : Migration {
override val version: Float = 108f override val version: Float = 108f

View file

@ -1,10 +1,10 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class UpdateIntervalMigration : Migration { class UpdateIntervalMigration : Migration {
override val version: Float = 86f override val version: Float = 86f

View file

@ -1,5 +1,7 @@
package yokai.core.migration.migrations package dev.yokai.core.migration.migrations
import dev.yokai.core.migration.Migration
import dev.yokai.core.migration.MigrationContext
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.data.backup.create.BackupCreatorJob import eu.kanade.tachiyomi.data.backup.create.BackupCreatorJob
@ -7,8 +9,6 @@ import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
import eu.kanade.tachiyomi.data.updater.AppUpdateJob import eu.kanade.tachiyomi.data.updater.AppUpdateJob
import eu.kanade.tachiyomi.extension.ExtensionUpdateJob import eu.kanade.tachiyomi.extension.ExtensionUpdateJob
import eu.kanade.tachiyomi.ui.library.LibraryPresenter import eu.kanade.tachiyomi.ui.library.LibraryPresenter
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
/** /**
* Restore jobs after migrating from Evernote's job scheduler to WorkManager. * Restore jobs after migrating from Evernote's job scheduler to WorkManager.

View file

@ -1,4 +1,4 @@
package yokai.data package dev.yokai.data
import app.cash.sqldelight.Query import app.cash.sqldelight.Query
import app.cash.sqldelight.coroutines.asFlow import app.cash.sqldelight.coroutines.asFlow

View file

@ -1,7 +1,7 @@
package yokai.data package dev.yokai.data
import app.cash.sqldelight.ColumnAdapter import app.cash.sqldelight.ColumnAdapter
import java.util.* import java.util.Date
val dateAdapter = object : ColumnAdapter<Date, Long> { val dateAdapter = object : ColumnAdapter<Date, Long> {
override fun decode(databaseValue: Long): Date = Date(databaseValue) override fun decode(databaseValue: Long): Date = Date(databaseValue)

View file

@ -1,6 +1,7 @@
package yokai.data package dev.yokai.data
import app.cash.sqldelight.Query import app.cash.sqldelight.Query
import app.cash.sqldelight.Transacter
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import tachiyomi.data.Database import tachiyomi.data.Database

View file

@ -1,4 +1,4 @@
package yokai.data package dev.yokai.data
import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
@ -6,8 +6,8 @@ import kotlinx.coroutines.asContextElement
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.suspendCancellableCoroutine import kotlinx.coroutines.suspendCancellableCoroutine
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import java.util.concurrent.* import java.util.concurrent.RejectedExecutionException
import java.util.concurrent.atomic.* import java.util.concurrent.atomic.AtomicInteger
import kotlin.coroutines.ContinuationInterceptor import kotlin.coroutines.ContinuationInterceptor
import kotlin.coroutines.CoroutineContext import kotlin.coroutines.CoroutineContext
import kotlin.coroutines.EmptyCoroutineContext import kotlin.coroutines.EmptyCoroutineContext

View file

@ -1,10 +1,10 @@
package yokai.data.chapter package dev.yokai.data.chapter
import dev.yokai.data.DatabaseHandler
import dev.yokai.domain.chapter.ChapterRepository
import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.Chapter
import eu.kanade.tachiyomi.util.system.toInt import eu.kanade.tachiyomi.util.system.toInt
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import yokai.data.DatabaseHandler
import yokai.domain.chapter.ChapterRepository
class ChapterRepositoryImpl(private val handler: DatabaseHandler) : ChapterRepository { class ChapterRepositoryImpl(private val handler: DatabaseHandler) : ChapterRepository {
override suspend fun getChapters(mangaId: Long, filterScanlators: Boolean): List<Chapter> = override suspend fun getChapters(mangaId: Long, filterScanlators: Boolean): List<Chapter> =

View file

@ -1,12 +1,12 @@
package yokai.data.extension.repo package dev.yokai.data.extension.repo
import android.database.sqlite.SQLiteException import android.database.sqlite.SQLiteException
import dev.yokai.data.DatabaseHandler
import dev.yokai.domain.extension.repo.ExtensionRepoRepository
import dev.yokai.domain.extension.repo.exception.SaveExtensionRepoException
import dev.yokai.domain.extension.repo.model.ExtensionRepo
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import yokai.data.DatabaseHandler
import yokai.domain.extension.repo.ExtensionRepoRepository
import yokai.domain.extension.repo.exception.SaveExtensionRepoException
import yokai.domain.extension.repo.model.ExtensionRepo
class ExtensionRepoRepositoryImpl(private val handler: DatabaseHandler): ExtensionRepoRepository { class ExtensionRepoRepositoryImpl(private val handler: DatabaseHandler): ExtensionRepoRepository {
override fun subscribeAll(): Flow<List<ExtensionRepo>> = override fun subscribeAll(): Flow<List<ExtensionRepo>> =

View file

@ -1,13 +1,13 @@
package yokai.data.library.custom package dev.yokai.data.library.custom
import android.database.sqlite.SQLiteException import android.database.sqlite.SQLiteException
import co.touchlab.kermit.Logger import co.touchlab.kermit.Logger
import dev.yokai.data.DatabaseHandler
import dev.yokai.domain.library.custom.CustomMangaRepository
import dev.yokai.domain.library.custom.exception.SaveCustomMangaException
import dev.yokai.domain.library.custom.model.CustomMangaInfo
import eu.kanade.tachiyomi.util.system.e import eu.kanade.tachiyomi.util.system.e
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import yokai.data.DatabaseHandler
import yokai.domain.library.custom.CustomMangaRepository
import yokai.domain.library.custom.exception.SaveCustomMangaException
import yokai.domain.library.custom.model.CustomMangaInfo
class CustomMangaRepositoryImpl(private val handler: DatabaseHandler) : CustomMangaRepository { class CustomMangaRepositoryImpl(private val handler: DatabaseHandler) : CustomMangaRepository {
override fun subscribeAll(): Flow<List<CustomMangaInfo>> = override fun subscribeAll(): Flow<List<CustomMangaInfo>> =

View file

@ -1,10 +1,10 @@
package yokai.data.manga package dev.yokai.data.manga
import dev.yokai.data.DatabaseHandler
import dev.yokai.domain.manga.MangaRepository
import eu.kanade.tachiyomi.data.database.models.LibraryManga import eu.kanade.tachiyomi.data.database.models.LibraryManga
import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Manga
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import yokai.data.DatabaseHandler
import yokai.domain.manga.MangaRepository
class MangaRepositoryImpl(private val handler: DatabaseHandler) : MangaRepository { class MangaRepositoryImpl(private val handler: DatabaseHandler) : MangaRepository {
override suspend fun getManga(): List<Manga> = override suspend fun getManga(): List<Manga> =

View file

@ -1,4 +1,4 @@
package yokai.domain package dev.yokai.domain
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue

View file

@ -1,4 +1,4 @@
package yokai.domain package dev.yokai.domain
sealed class Result<out T> { sealed class Result<out T> {
data class Success<out T>(val data: T? = null) : Result<T>() data class Success<out T>(val data: T? = null) : Result<T>()

View file

@ -1,4 +1,4 @@
package yokai.domain package dev.yokai.domain
class SplashState { class SplashState {
var shown = false var shown = false

View file

@ -1,4 +1,4 @@
package yokai.domain.base package dev.yokai.domain.base
import androidx.annotation.StringRes import androidx.annotation.StringRes
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R

View file

@ -1,4 +1,4 @@
package yokai.domain.base.models package dev.yokai.domain.base.models
data class Version( data class Version(
val type: Type, val type: Type,

View file

@ -1,4 +1,4 @@
package yokai.domain.chapter package dev.yokai.domain.chapter
import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.Chapter
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow

View file

@ -1,6 +1,6 @@
package yokai.domain.chapter.interactor package dev.yokai.domain.chapter.interactor
import yokai.domain.chapter.ChapterRepository import dev.yokai.domain.chapter.ChapterRepository
class GetAvailableScanlators( class GetAvailableScanlators(
private val chapterRepository: ChapterRepository, private val chapterRepository: ChapterRepository,

View file

@ -1,7 +1,7 @@
package yokai.domain.chapter.interactor package dev.yokai.domain.chapter.interactor
import dev.yokai.domain.chapter.ChapterRepository
import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Manga
import yokai.domain.chapter.ChapterRepository
class GetChapters( class GetChapters(
private val chapterRepository: ChapterRepository, private val chapterRepository: ChapterRepository,

View file

@ -1,4 +1,4 @@
package yokai.domain.download package dev.yokai.domain.download
import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore

View file

@ -1,10 +1,12 @@
package yokai.domain.extension.interactor package dev.yokai.domain.extension.interactor
import android.content.pm.PackageInfo import android.content.pm.PackageInfo
import androidx.core.content.pm.PackageInfoCompat import androidx.core.content.pm.PackageInfoCompat
import dev.yokai.domain.extension.repo.ExtensionRepoRepository
import dev.yokai.domain.source.SourcePreferences
import eu.kanade.tachiyomi.core.preference.getAndSet import eu.kanade.tachiyomi.core.preference.getAndSet
import yokai.domain.extension.repo.ExtensionRepoRepository import uy.kohesive.injekt.Injekt
import yokai.domain.source.SourcePreferences import uy.kohesive.injekt.api.get
class TrustExtension( class TrustExtension(
private val extensionRepoRepository: ExtensionRepoRepository, private val extensionRepoRepository: ExtensionRepoRepository,

View file

@ -1,7 +1,7 @@
package yokai.domain.extension.repo package dev.yokai.domain.extension.repo
import dev.yokai.domain.extension.repo.model.ExtensionRepo
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import yokai.domain.extension.repo.model.ExtensionRepo
interface ExtensionRepoRepository { interface ExtensionRepoRepository {
fun subscribeAll(): Flow<List<ExtensionRepo>> fun subscribeAll(): Flow<List<ExtensionRepo>>

View file

@ -1,4 +1,4 @@
package yokai.domain.extension.repo.exception package dev.yokai.domain.extension.repo.exception
import java.io.IOException import java.io.IOException

View file

@ -1,13 +1,13 @@
package yokai.domain.extension.repo.interactor package dev.yokai.domain.extension.repo.interactor
import co.touchlab.kermit.Logger import co.touchlab.kermit.Logger
import dev.yokai.domain.extension.repo.ExtensionRepoRepository
import dev.yokai.domain.extension.repo.exception.SaveExtensionRepoException
import dev.yokai.domain.extension.repo.model.ExtensionRepo
import dev.yokai.domain.extension.repo.service.ExtensionRepoService
import eu.kanade.tachiyomi.network.NetworkHelper import eu.kanade.tachiyomi.network.NetworkHelper
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import yokai.domain.extension.repo.ExtensionRepoRepository
import yokai.domain.extension.repo.exception.SaveExtensionRepoException
import yokai.domain.extension.repo.model.ExtensionRepo
import yokai.domain.extension.repo.service.ExtensionRepoService
class CreateExtensionRepo( class CreateExtensionRepo(
private val extensionRepoRepository: ExtensionRepoRepository private val extensionRepoRepository: ExtensionRepoRepository

View file

@ -1,6 +1,6 @@
package yokai.domain.extension.repo.interactor package dev.yokai.domain.extension.repo.interactor
import yokai.domain.extension.repo.ExtensionRepoRepository import dev.yokai.domain.extension.repo.ExtensionRepoRepository
class DeleteExtensionRepo( class DeleteExtensionRepo(
private val extensionRepoRepository: ExtensionRepoRepository private val extensionRepoRepository: ExtensionRepoRepository

View file

@ -1,8 +1,8 @@
package yokai.domain.extension.repo.interactor package dev.yokai.domain.extension.repo.interactor
import dev.yokai.domain.extension.repo.ExtensionRepoRepository
import dev.yokai.domain.extension.repo.model.ExtensionRepo
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import yokai.domain.extension.repo.ExtensionRepoRepository
import yokai.domain.extension.repo.model.ExtensionRepo
class GetExtensionRepo( class GetExtensionRepo(
private val extensionRepoRepository: ExtensionRepoRepository private val extensionRepoRepository: ExtensionRepoRepository

View file

@ -1,6 +1,6 @@
package yokai.domain.extension.repo.interactor package dev.yokai.domain.extension.repo.interactor
import yokai.domain.extension.repo.ExtensionRepoRepository import dev.yokai.domain.extension.repo.ExtensionRepoRepository
class GetExtensionRepoCount( class GetExtensionRepoCount(
private val extensionRepoRepository: ExtensionRepoRepository private val extensionRepoRepository: ExtensionRepoRepository

View file

@ -1,7 +1,7 @@
package yokai.domain.extension.repo.interactor package dev.yokai.domain.extension.repo.interactor
import yokai.domain.extension.repo.ExtensionRepoRepository import dev.yokai.domain.extension.repo.ExtensionRepoRepository
import yokai.domain.extension.repo.model.ExtensionRepo import dev.yokai.domain.extension.repo.model.ExtensionRepo
class ReplaceExtensionRepo( class ReplaceExtensionRepo(
private val extensionRepoRepository: ExtensionRepoRepository private val extensionRepoRepository: ExtensionRepoRepository

View file

@ -1,12 +1,12 @@
package yokai.domain.extension.repo.interactor package dev.yokai.domain.extension.repo.interactor
import dev.yokai.domain.extension.repo.ExtensionRepoRepository
import dev.yokai.domain.extension.repo.model.ExtensionRepo
import dev.yokai.domain.extension.repo.service.ExtensionRepoService
import eu.kanade.tachiyomi.network.NetworkHelper import eu.kanade.tachiyomi.network.NetworkHelper
import kotlinx.coroutines.async import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.coroutineScope
import yokai.domain.extension.repo.ExtensionRepoRepository
import yokai.domain.extension.repo.model.ExtensionRepo
import yokai.domain.extension.repo.service.ExtensionRepoService
class UpdateExtensionRepo( class UpdateExtensionRepo(
private val extensionRepoRepository: ExtensionRepoRepository, private val extensionRepoRepository: ExtensionRepoRepository,

View file

@ -1,4 +1,4 @@
package yokai.domain.extension.repo.model package dev.yokai.domain.extension.repo.model
data class ExtensionRepo( data class ExtensionRepo(
val baseUrl: String, val baseUrl: String,

View file

@ -1,6 +1,7 @@
package yokai.domain.extension.repo.service package dev.yokai.domain.extension.repo.service
import androidx.core.net.toUri import androidx.core.net.toUri
import dev.yokai.domain.extension.repo.model.ExtensionRepo
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.HttpException import eu.kanade.tachiyomi.network.HttpException
import eu.kanade.tachiyomi.network.awaitSuccess import eu.kanade.tachiyomi.network.awaitSuccess
@ -12,7 +13,6 @@ import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive import kotlinx.serialization.json.jsonPrimitive
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import yokai.domain.extension.repo.model.ExtensionRepo
class ExtensionRepoService( class ExtensionRepoService(
private val client: OkHttpClient, private val client: OkHttpClient,

View file

@ -1,7 +1,7 @@
package yokai.domain.library.custom package dev.yokai.domain.library.custom
import dev.yokai.domain.library.custom.model.CustomMangaInfo
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import yokai.domain.library.custom.model.CustomMangaInfo
interface CustomMangaRepository { interface CustomMangaRepository {
fun subscribeAll(): Flow<List<CustomMangaInfo>> fun subscribeAll(): Flow<List<CustomMangaInfo>>

View file

@ -1,4 +1,4 @@
package yokai.domain.library.custom.exception package dev.yokai.domain.library.custom.exception
import java.io.IOException import java.io.IOException

View file

@ -1,8 +1,8 @@
package yokai.domain.library.custom.interactor package dev.yokai.domain.library.custom.interactor
import yokai.domain.library.custom.CustomMangaRepository import dev.yokai.domain.library.custom.CustomMangaRepository
import yokai.domain.library.custom.exception.SaveCustomMangaException import dev.yokai.domain.library.custom.exception.SaveCustomMangaException
import yokai.domain.library.custom.model.CustomMangaInfo import dev.yokai.domain.library.custom.model.CustomMangaInfo
class CreateCustomManga( class CreateCustomManga(
private val customMangaRepository: CustomMangaRepository, private val customMangaRepository: CustomMangaRepository,

View file

@ -1,6 +1,6 @@
package yokai.domain.library.custom.interactor package dev.yokai.domain.library.custom.interactor
import yokai.domain.library.custom.CustomMangaRepository import dev.yokai.domain.library.custom.CustomMangaRepository
class DeleteCustomManga( class DeleteCustomManga(
private val customMangaRepository: CustomMangaRepository, private val customMangaRepository: CustomMangaRepository,

View file

@ -1,6 +1,6 @@
package yokai.domain.library.custom.interactor package dev.yokai.domain.library.custom.interactor
import yokai.domain.library.custom.CustomMangaRepository import dev.yokai.domain.library.custom.CustomMangaRepository
class GetCustomManga( class GetCustomManga(
private val customMangaRepository: CustomMangaRepository, private val customMangaRepository: CustomMangaRepository,

View file

@ -1,6 +1,6 @@
package yokai.domain.library.custom.interactor package dev.yokai.domain.library.custom.interactor
import yokai.domain.library.custom.CustomMangaRepository import dev.yokai.domain.library.custom.CustomMangaRepository
class RelinkCustomManga( class RelinkCustomManga(
private val customMangaRepository: CustomMangaRepository, private val customMangaRepository: CustomMangaRepository,

View file

@ -1,4 +1,4 @@
package yokai.domain.library.custom.model package dev.yokai.domain.library.custom.model
import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.database.models.MangaImpl import eu.kanade.tachiyomi.data.database.models.MangaImpl

View file

@ -1,4 +1,4 @@
package yokai.domain.manga package dev.yokai.domain.manga
import eu.kanade.tachiyomi.data.database.models.LibraryManga import eu.kanade.tachiyomi.data.database.models.LibraryManga
import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Manga

View file

@ -1,8 +1,8 @@
package yokai.domain.manga.interactor package dev.yokai.domain.manga.interactor
import dev.yokai.domain.manga.MangaRepository
import eu.kanade.tachiyomi.data.database.models.LibraryManga import eu.kanade.tachiyomi.data.database.models.LibraryManga
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import yokai.domain.manga.MangaRepository
class GetLibraryManga( class GetLibraryManga(
private val mangaRepository: MangaRepository, private val mangaRepository: MangaRepository,

View file

@ -1,4 +1,4 @@
package yokai.domain.recents package dev.yokai.domain.recents
import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore
import eu.kanade.tachiyomi.core.preference.getEnum import eu.kanade.tachiyomi.core.preference.getEnum

View file

@ -1,4 +1,4 @@
package yokai.domain.source package dev.yokai.domain.source
import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore

View file

@ -1,4 +1,4 @@
package yokai.domain.storage package dev.yokai.domain.storage
import android.content.Context import android.content.Context
import androidx.core.net.toUri import androidx.core.net.toUri

View file

@ -1,4 +1,4 @@
package yokai.domain.storage package dev.yokai.domain.storage
import eu.kanade.tachiyomi.core.preference.Preference import eu.kanade.tachiyomi.core.preference.Preference
import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore

View file

@ -1,7 +1,9 @@
package yokai.domain.ui package dev.yokai.domain.ui
import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore
import eu.kanade.tachiyomi.core.preference.getEnum
import eu.kanade.tachiyomi.data.preference.PreferenceKeys import eu.kanade.tachiyomi.data.preference.PreferenceKeys
import eu.kanade.tachiyomi.ui.recents.RecentMangaAdapter
class UiPreferences(private val preferenceStore: PreferenceStore) { class UiPreferences(private val preferenceStore: PreferenceStore) {
fun recentsViewType() = preferenceStore.getInt("recents_view_type", 0) fun recentsViewType() = preferenceStore.getInt("recents_view_type", 0)

View file

@ -1,4 +1,4 @@
package yokai.domain.ui.settings package dev.yokai.domain.ui.settings
import androidx.annotation.StringRes import androidx.annotation.StringRes
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R

View file

@ -1,4 +1,4 @@
package yokai.presentation package dev.yokai.presentation
import android.app.Activity import android.app.Activity
import android.os.Build import android.os.Build
@ -27,8 +27,8 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.WindowInsetsControllerCompat
import dev.yokai.presentation.component.ToolTipButton
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import yokai.presentation.component.ToolTipButton
@Composable @Composable
fun YokaiScaffold( fun YokaiScaffold(

View file

@ -1,4 +1,4 @@
package yokai.presentation.component package dev.yokai.presentation.component
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.drawable.AdaptiveIconDrawable import android.graphics.drawable.AdaptiveIconDrawable

View file

@ -1,4 +1,4 @@
package yokai.presentation.component package dev.yokai.presentation.component
import androidx.compose.animation.AnimatedContent import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.core.LinearEasing import androidx.compose.animation.core.LinearEasing

View file

@ -1,4 +1,4 @@
package yokai.presentation.component package dev.yokai.presentation.component
import android.content.res.Configuration import android.content.res.Configuration
import androidx.compose.foundation.Image import androidx.compose.foundation.Image

View file

@ -1,4 +1,4 @@
package yokai.presentation.component package dev.yokai.presentation.component
import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.ColumnScope
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope

View file

@ -1,4 +1,4 @@
package yokai.presentation.component package dev.yokai.presentation.component
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
@ -14,7 +14,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.semantics.Role import androidx.compose.ui.semantics.Role
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import yokai.presentation.theme.Size import dev.yokai.presentation.theme.Size
@Composable @Composable
fun LabeledCheckbox( fun LabeledCheckbox(

View file

@ -1,4 +1,4 @@
package yokai.presentation.component package dev.yokai.presentation.component
import android.content.Context import android.content.Context
import android.content.res.Configuration import android.content.res.Configuration
@ -37,12 +37,12 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.LayoutDirection
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.google.accompanist.themeadapter.material3.createMdc3Theme import com.google.accompanist.themeadapter.material3.createMdc3Theme
import dev.yokai.presentation.theme.HalfAlpha
import dev.yokai.presentation.theme.SecondaryItemAlpha
import dev.yokai.presentation.theme.Size
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.util.system.Themes import eu.kanade.tachiyomi.util.system.Themes
import eu.kanade.tachiyomi.util.system.isInNightMode import eu.kanade.tachiyomi.util.system.isInNightMode
import yokai.presentation.theme.HalfAlpha
import yokai.presentation.theme.SecondaryItemAlpha
import yokai.presentation.theme.Size
private data class ContextTheme( private data class ContextTheme(
val colorScheme: ColorScheme, val colorScheme: ColorScheme,

View file

@ -1,4 +1,4 @@
package yokai.presentation.component package dev.yokai.presentation.component
import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.MutableInteractionSource

View file

@ -1,4 +1,4 @@
package yokai.presentation.component package dev.yokai.presentation.component
import androidx.compose.foundation.Image import androidx.compose.foundation.Image
import androidx.compose.foundation.background import androidx.compose.foundation.background
@ -15,8 +15,8 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import dev.yokai.presentation.core.util.clickableNoIndication
import eu.kanade.tachiyomi.data.track.TrackService import eu.kanade.tachiyomi.data.track.TrackService
import yokai.presentation.core.util.clickableNoIndication
@Composable @Composable
fun TrackLogoIcon( fun TrackLogoIcon(

View file

@ -1,4 +1,4 @@
package yokai.presentation.component.preference package dev.yokai.presentation.component.preference
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember import androidx.compose.runtime.remember

View file

@ -1,4 +1,4 @@
package yokai.presentation.component.preference package dev.yokai.presentation.component.preference
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
@ -8,7 +8,7 @@ import androidx.compose.ui.res.stringResource
import androidx.core.net.toUri import androidx.core.net.toUri
import com.hippo.unifile.UniFile import com.hippo.unifile.UniFile
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.core.storage.preference.collectAsState import eu.kanade.tachiyomi.core.preference.collectAsState
@Composable @Composable
fun storageLocationText( fun storageLocationText(

View file

@ -1,4 +1,4 @@
package yokai.presentation.component.preference package dev.yokai.presentation.component.preference
import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.expandVertically import androidx.compose.animation.expandVertically
@ -12,19 +12,19 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.structuralEqualityPolicy import androidx.compose.runtime.structuralEqualityPolicy
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import eu.kanade.tachiyomi.core.storage.preference.collectAsState import dev.yokai.presentation.component.preference.widget.EditTextPreferenceWidget
import dev.yokai.presentation.component.preference.widget.InfoWidget
import dev.yokai.presentation.component.preference.widget.ListPreferenceWidget
import dev.yokai.presentation.component.preference.widget.MultiSelectListPreferenceWidget
import dev.yokai.presentation.component.preference.widget.SliderPreferenceWidget
import dev.yokai.presentation.component.preference.widget.SwitchPreferenceWidget
import dev.yokai.presentation.component.preference.widget.TextPreferenceWidget
import dev.yokai.presentation.component.preference.widget.TrackingPreferenceWidget
import eu.kanade.tachiyomi.core.preference.collectAsState
import eu.kanade.tachiyomi.data.track.TrackPreferences import eu.kanade.tachiyomi.data.track.TrackPreferences
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import yokai.presentation.component.preference.widget.EditTextPreferenceWidget
import yokai.presentation.component.preference.widget.InfoWidget
import yokai.presentation.component.preference.widget.ListPreferenceWidget
import yokai.presentation.component.preference.widget.MultiSelectListPreferenceWidget
import yokai.presentation.component.preference.widget.SliderPreferenceWidget
import yokai.presentation.component.preference.widget.SwitchPreferenceWidget
import yokai.presentation.component.preference.widget.TextPreferenceWidget
import yokai.presentation.component.preference.widget.TrackingPreferenceWidget
val LocalPreferenceHighlighted = compositionLocalOf(structuralEqualityPolicy()) { false } val LocalPreferenceHighlighted = compositionLocalOf(structuralEqualityPolicy()) { false }
val LocalPreferenceMinHeight = compositionLocalOf(structuralEqualityPolicy()) { 56.dp } val LocalPreferenceMinHeight = compositionLocalOf(structuralEqualityPolicy()) { 56.dp }

View file

@ -1,4 +1,4 @@
package yokai.presentation.component.preference.widget package dev.yokai.presentation.component.preference.widget
import androidx.compose.animation.animateColorAsState import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.core.RepeatMode import androidx.compose.animation.core.RepeatMode
@ -30,9 +30,9 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import dev.yokai.presentation.component.preference.LocalPreferenceHighlighted
import dev.yokai.presentation.component.preference.LocalPreferenceMinHeight
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import yokai.presentation.component.preference.LocalPreferenceHighlighted
import yokai.presentation.component.preference.LocalPreferenceMinHeight
import kotlin.time.Duration.Companion.seconds import kotlin.time.Duration.Companion.seconds
@Composable @Composable

View file

@ -1,4 +1,4 @@
package yokai.presentation.component.preference.widget package dev.yokai.presentation.component.preference.widget
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
@ -22,6 +22,7 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.window.DialogProperties import androidx.compose.ui.window.DialogProperties
import eu.kanade.tachiyomi.R
import kotlinx.coroutines.launch import kotlinx.coroutines.launch

Some files were not shown because too many files have changed in this diff Show more