mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 02:34:39 +00:00
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:
parent
9a86f99799
commit
f59f2346dc
290 changed files with 881 additions and 1663 deletions
|
@ -18,13 +18,11 @@
|
|||
|
||||
## Other
|
||||
- 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 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.gms:google-services to v4.4.2
|
||||
- Add crashlytics integration for Kermit
|
||||
- Replace ProgressBar with ProgressIndicator from Material3 to improve UI consistency
|
||||
- Rewrite version checker
|
||||
- Rewrite Migrator
|
||||
|
|
|
@ -39,9 +39,14 @@ val buildTime: String by lazy {
|
|||
val supportedAbis = setOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
|
||||
|
||||
android {
|
||||
compileSdk = AndroidConfig.compileSdk
|
||||
ndkVersion = AndroidConfig.ndk
|
||||
|
||||
defaultConfig {
|
||||
minSdk = AndroidConfig.minSdk
|
||||
targetSdk = AndroidConfig.targetSdk
|
||||
applicationId = "eu.kanade.tachiyomi"
|
||||
versionCode = 137
|
||||
versionCode = 136
|
||||
versionName = "1.8.4"
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
multiDexEnabled = true
|
||||
|
@ -140,6 +145,14 @@ android {
|
|||
kotlinCompilerExtensionVersion = compose.versions.compose.compiler.get()
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
isCoreLibraryDesugaringEnabled = true
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = "17"
|
||||
}
|
||||
namespace = "eu.kanade.tachiyomi"
|
||||
|
||||
sqldelight {
|
||||
|
@ -154,10 +167,6 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation(projects.core)
|
||||
implementation(projects.i18n)
|
||||
implementation(projects.sourceApi)
|
||||
|
||||
// Compose
|
||||
implementation(compose.bundles.compose)
|
||||
debugImplementation(compose.ui.tooling)
|
||||
|
@ -271,8 +280,8 @@ dependencies {
|
|||
|
||||
implementation(kotlin("stdlib", org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION))
|
||||
|
||||
implementation(platform(kotlinx.coroutines.bom))
|
||||
implementation(kotlinx.bundles.coroutines)
|
||||
implementation(kotlinx.coroutines.core)
|
||||
implementation(kotlinx.coroutines.android)
|
||||
|
||||
// Text distance
|
||||
implementation(libs.java.string.similarity)
|
||||
|
@ -287,6 +296,8 @@ dependencies {
|
|||
|
||||
implementation(kotlinx.immutable)
|
||||
|
||||
"coreLibraryDesugaring"(libs.desugar)
|
||||
|
||||
// Tests
|
||||
testImplementation(libs.bundles.test)
|
||||
testRuntimeOnly(libs.bundles.test.runtime)
|
||||
|
@ -295,6 +306,13 @@ dependencies {
|
|||
}
|
||||
|
||||
tasks {
|
||||
withType<Test> {
|
||||
useJUnitPlatform()
|
||||
testLogging {
|
||||
events("passed", "skipped", "failed")
|
||||
}
|
||||
}
|
||||
|
||||
// See https://kotlinlang.org/docs/reference/experimental.html#experimental-status-of-experimental-api(-markers)
|
||||
withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
|
||||
kotlinOptions.freeCompilerArgs += listOf(
|
||||
|
|
24
app/proguard-rules.pro
vendored
24
app/proguard-rules.pro
vendored
|
@ -1,19 +1,19 @@
|
|||
-dontobfuscate
|
||||
|
||||
-keep,allowoptimization class eu.kanade.**
|
||||
-keep,allowoptimization class tachiyomi.**
|
||||
-keep,allowoptimization class yokai.**
|
||||
-keep class eu.kanade.tachiyomi.source.** { public protected *; } # Avoid access modification
|
||||
-keep,allowoptimization class eu.kanade.** { public protected *; }
|
||||
-keep,allowoptimization class tachiyomi.** { public protected *; }
|
||||
-keep,allowoptimization class dev.yokai.** { public protected *; }
|
||||
|
||||
# Keep common dependencies used in extensions
|
||||
-keep,allowoptimization class androidx.preference.** { public protected *; }
|
||||
-keep,allowoptimization class kotlin.** { public protected *; }
|
||||
-keep class androidx.preference.** { public protected *; }
|
||||
-keep class kotlin.** { public protected *; }
|
||||
-keep,allowoptimization class kotlinx.coroutines.** { public protected *; }
|
||||
-keep,allowoptimization class kotlinx.serialization.** { public protected *; }
|
||||
-keep,allowoptimization class kotlin.time.** { public protected *; }
|
||||
-keep,allowoptimization class okhttp3.** { public protected *; }
|
||||
-keep class kotlinx.serialization.** { public protected *; }
|
||||
-keep class okhttp3.** { public protected *; }
|
||||
-keep,allowoptimization class okio.** { 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 app.cash.quickjs.** { public protected *; }
|
||||
-keep,allowoptimization class uy.kohesive.injekt.** { public protected *; }
|
||||
|
@ -73,11 +73,11 @@
|
|||
kotlinx.serialization.KSerializer serializer(...);
|
||||
}
|
||||
|
||||
-keep,includedescriptorclasses class yokai.**$$serializer { *; }
|
||||
-keepclassmembers class yokai.** {
|
||||
-keep,includedescriptorclasses class dev.yokai.**$$serializer { *; }
|
||||
-keepclassmembers class dev.yokai.** {
|
||||
*** Companion;
|
||||
}
|
||||
-keepclasseswithmembers class yokai.** {
|
||||
-keepclasseswithmembers class dev.yokai.** {
|
||||
kotlinx.serialization.KSerializer serializer(...);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.core
|
||||
package dev.yokai.core
|
||||
|
||||
import co.touchlab.kermit.DefaultFormatter
|
||||
import co.touchlab.kermit.LogWriter
|
|
@ -1,13 +1,15 @@
|
|||
package yokai.core.di
|
||||
package dev.yokai.core.di
|
||||
|
||||
import android.app.Application
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.sqlite.db.SupportSQLiteOpenHelper
|
||||
import app.cash.sqldelight.db.SqlDriver
|
||||
import app.cash.sqldelight.driver.android.AndroidSqliteDriver
|
||||
import com.chuckerteam.chucker.api.ChuckerCollector
|
||||
import com.chuckerteam.chucker.api.ChuckerInterceptor
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
import dev.yokai.data.AndroidDatabaseHandler
|
||||
import dev.yokai.data.DatabaseHandler
|
||||
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.data.cache.ChapterCache
|
||||
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.addSingletonFactory
|
||||
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 {
|
||||
|
||||
|
@ -91,23 +89,7 @@ class AppModule(val app: Application) : InjektModule {
|
|||
|
||||
addSingletonFactory { CoverCache(app) }
|
||||
|
||||
addSingletonFactory {
|
||||
NetworkHelper(
|
||||
app,
|
||||
get(),
|
||||
) { builder ->
|
||||
if (BuildConfig.DEBUG) {
|
||||
builder.addInterceptor(
|
||||
ChuckerInterceptor.Builder(app)
|
||||
.collector(ChuckerCollector(app))
|
||||
.maxContentLength(250000L)
|
||||
.redactHeaders(emptySet())
|
||||
.alwaysReadResponseBody(false)
|
||||
.build(),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
addSingletonFactory { NetworkHelper(app) }
|
||||
|
||||
addSingletonFactory { JavaScriptEngine(app) }
|
||||
|
56
app/src/main/java/dev/yokai/core/di/DomainModule.kt
Normal file
56
app/src/main/java/dev/yokai/core/di/DomainModule.kt
Normal 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()) }
|
||||
}
|
||||
}
|
|
@ -1,23 +1,22 @@
|
|||
package yokai.core.di
|
||||
package dev.yokai.core.di
|
||||
|
||||
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.PreferenceStore
|
||||
import eu.kanade.tachiyomi.core.storage.AndroidStorageFolderProvider
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.data.track.TrackPreferences
|
||||
import eu.kanade.tachiyomi.network.NetworkPreferences
|
||||
import uy.kohesive.injekt.api.InjektModule
|
||||
import uy.kohesive.injekt.api.InjektRegistrar
|
||||
import uy.kohesive.injekt.api.addSingletonFactory
|
||||
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 {
|
||||
override fun InjektRegistrar.registerInjectables() {
|
||||
|
@ -37,8 +36,6 @@ class PreferenceModule(val application: Application) : InjektModule {
|
|||
|
||||
addSingletonFactory { DownloadPreferences(get()) }
|
||||
|
||||
addSingletonFactory { NetworkPreferences(get()) }
|
||||
|
||||
addSingletonFactory {
|
||||
PreferencesHelper(
|
||||
context = application,
|
|
@ -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.Manga
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.core.migration
|
||||
package dev.yokai.core.migration
|
||||
|
||||
interface Migration {
|
||||
val version: Float
|
|
@ -1,3 +1,3 @@
|
|||
package yokai.core.migration
|
||||
package dev.yokai.core.migration
|
||||
|
||||
typealias MigrationCompletedListener = () -> Unit
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.core.migration
|
||||
package dev.yokai.core.migration
|
||||
|
||||
import uy.kohesive.injekt.Injekt
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.core.migration
|
||||
package dev.yokai.core.migration
|
||||
|
||||
import co.touchlab.kermit.Logger
|
||||
import kotlinx.coroutines.CompletableDeferred
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.core.migration
|
||||
package dev.yokai.core.migration
|
||||
|
||||
import kotlinx.coroutines.CompletableDeferred
|
||||
import kotlinx.coroutines.CoroutineScope
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.core.migration
|
||||
package dev.yokai.core.migration
|
||||
|
||||
class MigrationStrategyFactory(
|
||||
private val factory: MigrationJobFactory,
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.core.migration
|
||||
package dev.yokai.core.migration
|
||||
|
||||
import kotlinx.coroutines.CompletableDeferred
|
||||
import kotlinx.coroutines.CoroutineScope
|
|
@ -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 yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
import java.io.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 yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
import java.io.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 yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class CustomInfoMigration : Migration {
|
||||
override val version: Float = 66f
|
|
@ -1,14 +1,14 @@
|
|||
package yokai.core.migration.migrations
|
||||
package dev.yokai.core.migration.migrations
|
||||
|
||||
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.data.preference.PreferenceKeys
|
||||
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 {
|
||||
override val version: Float = 121f
|
|
@ -1,12 +1,12 @@
|
|||
package yokai.core.migration.migrations
|
||||
package dev.yokai.core.migration.migrations
|
||||
|
||||
import androidx.core.content.edit
|
||||
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.data.preference.PreferenceKeys
|
||||
import eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class DoHMigration : Migration {
|
||||
override val version: Float = 71f
|
|
@ -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.data.download.DownloadProvider
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class DownloadedChaptersMigration : Migration {
|
||||
override val version: Float = 54f
|
|
@ -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.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.data.preference.plusAssign
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class EnabledLanguageMigration : Migration {
|
||||
override val version: Float = 83f
|
|
@ -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.BuildConfig
|
||||
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
|
||||
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.
|
|
@ -1,10 +1,10 @@
|
|||
package yokai.core.migration.migrations
|
||||
package dev.yokai.core.migration.migrations
|
||||
|
||||
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 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
|
|
@ -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 yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
import java.io.File
|
||||
|
||||
/**
|
|
@ -1,11 +1,11 @@
|
|||
package yokai.core.migration.migrations
|
||||
package dev.yokai.core.migration.migrations
|
||||
|
||||
import androidx.core.content.edit
|
||||
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.ui.library.LibrarySort
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class LibrarySortMigration : Migration {
|
||||
override val version: Float = 110f
|
|
@ -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.data.library.LibraryUpdateJob
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class LibraryUpdateResetMigration : Migration {
|
||||
override val version: Float = 105f
|
|
@ -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.persistentListOf
|
||||
import yokai.core.migration.Migration
|
||||
|
||||
val migrations: ImmutableList<Migration> = persistentListOf(
|
||||
SetupAppUpdateMigration(),
|
||||
|
@ -36,5 +36,4 @@ val migrations: ImmutableList<Migration> = persistentListOf(
|
|||
ExtensionInstallerEnumMigration(),
|
||||
CutoutMigration(),
|
||||
RepoJsonMigration(),
|
||||
NetworkPrefsMigration(),
|
||||
)
|
|
@ -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.R
|
||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||
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
|
|
@ -1,12 +1,12 @@
|
|||
package yokai.core.migration.migrations
|
||||
package dev.yokai.core.migration.migrations
|
||||
|
||||
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.data.preference.PreferenceValues
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.ui.recents.RecentsPresenter
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
import kotlin.math.max
|
||||
|
||||
class PrefsMigration : Migration {
|
|
@ -1,12 +1,12 @@
|
|||
package yokai.core.migration.migrations
|
||||
package dev.yokai.core.migration.migrations
|
||||
|
||||
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.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.ui.library.LibraryPresenter
|
||||
import eu.kanade.tachiyomi.util.system.withIOContext
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class ReaderUpdateMigration : Migration {
|
||||
override val version: Float = 88f
|
|
@ -1,13 +1,13 @@
|
|||
package yokai.core.migration.migrations
|
||||
package dev.yokai.core.migration.migrations
|
||||
|
||||
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.PreferenceStore
|
||||
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 {
|
||||
override val version: Float = 130f
|
|
@ -1,11 +1,11 @@
|
|||
package yokai.core.migration.migrations
|
||||
package dev.yokai.core.migration.migrations
|
||||
|
||||
import androidx.core.content.edit
|
||||
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.ui.reader.settings.OrientationType
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class RotationTypeEnumMigration : Migration {
|
||||
override val version: Float = 77f
|
|
@ -1,10 +1,10 @@
|
|||
package yokai.core.migration.migrations
|
||||
package dev.yokai.core.migration.migrations
|
||||
|
||||
import androidx.core.content.edit
|
||||
import androidx.preference.PreferenceManager
|
||||
import dev.yokai.core.migration.Migration
|
||||
import dev.yokai.core.migration.MigrationContext
|
||||
import eu.kanade.tachiyomi.App
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class RotationTypeMigration : Migration {
|
||||
override val version: Float = 73f
|
|
@ -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.BuildConfig
|
||||
import eu.kanade.tachiyomi.data.updater.AppUpdateJob
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class SetupAppUpdateMigration : Migration {
|
||||
override val version: Float = Migration.ALWAYS
|
|
@ -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.data.backup.create.BackupCreatorJob
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class SetupBackupCreateMigration : Migration {
|
||||
override val version: Float = Migration.ALWAYS
|
|
@ -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.extension.ExtensionUpdateJob
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class SetupExtensionUpdateMigration : Migration {
|
||||
override val version: Float = Migration.ALWAYS
|
|
@ -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.data.library.LibraryUpdateJob
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class SetupLibraryUpdateMigration : Migration {
|
||||
override val version: Float = Migration.ALWAYS
|
|
@ -1,13 +1,13 @@
|
|||
package yokai.core.migration.migrations
|
||||
package dev.yokai.core.migration.migrations
|
||||
|
||||
import androidx.core.content.edit
|
||||
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.data.library.LibraryUpdateJob
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class ShortcutsMigration : Migration {
|
||||
override val version: Float = 75f
|
|
@ -1,10 +1,10 @@
|
|||
package yokai.core.migration.migrations
|
||||
package dev.yokai.core.migration.migrations
|
||||
|
||||
import androidx.core.content.edit
|
||||
import androidx.preference.PreferenceManager
|
||||
import dev.yokai.core.migration.Migration
|
||||
import dev.yokai.core.migration.MigrationContext
|
||||
import eu.kanade.tachiyomi.App
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class ThePurgeMigration : Migration {
|
||||
override val version: Float = 112f
|
|
@ -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.PreferenceStore
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class TrackerPrivateSettingsMigration : Migration {
|
||||
override val version: Float = 108f
|
|
@ -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.data.library.LibraryUpdateJob
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import yokai.core.migration.Migration
|
||||
import yokai.core.migration.MigrationContext
|
||||
|
||||
class UpdateIntervalMigration : Migration {
|
||||
override val version: Float = 86f
|
|
@ -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.BuildConfig
|
||||
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.extension.ExtensionUpdateJob
|
||||
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.
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.data
|
||||
package dev.yokai.data
|
||||
|
||||
import app.cash.sqldelight.Query
|
||||
import app.cash.sqldelight.coroutines.asFlow
|
|
@ -1,7 +1,7 @@
|
|||
package yokai.data
|
||||
package dev.yokai.data
|
||||
|
||||
import app.cash.sqldelight.ColumnAdapter
|
||||
import java.util.*
|
||||
import java.util.Date
|
||||
|
||||
val dateAdapter = object : ColumnAdapter<Date, Long> {
|
||||
override fun decode(databaseValue: Long): Date = Date(databaseValue)
|
|
@ -1,6 +1,7 @@
|
|||
package yokai.data
|
||||
package dev.yokai.data
|
||||
|
||||
import app.cash.sqldelight.Query
|
||||
import app.cash.sqldelight.Transacter
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import tachiyomi.data.Database
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.data
|
||||
package dev.yokai.data
|
||||
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.Job
|
||||
|
@ -6,8 +6,8 @@ import kotlinx.coroutines.asContextElement
|
|||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.util.concurrent.*
|
||||
import java.util.concurrent.atomic.*
|
||||
import java.util.concurrent.RejectedExecutionException
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
import kotlin.coroutines.ContinuationInterceptor
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
import kotlin.coroutines.EmptyCoroutineContext
|
|
@ -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.util.system.toInt
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import yokai.data.DatabaseHandler
|
||||
import yokai.domain.chapter.ChapterRepository
|
||||
|
||||
class ChapterRepositoryImpl(private val handler: DatabaseHandler) : ChapterRepository {
|
||||
override suspend fun getChapters(mangaId: Long, filterScanlators: Boolean): List<Chapter> =
|
|
@ -1,12 +1,12 @@
|
|||
package yokai.data.extension.repo
|
||||
package dev.yokai.data.extension.repo
|
||||
|
||||
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.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 {
|
||||
override fun subscribeAll(): Flow<List<ExtensionRepo>> =
|
|
@ -1,13 +1,13 @@
|
|||
package yokai.data.library.custom
|
||||
package dev.yokai.data.library.custom
|
||||
|
||||
import android.database.sqlite.SQLiteException
|
||||
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 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 {
|
||||
override fun subscribeAll(): Flow<List<CustomMangaInfo>> =
|
|
@ -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.Manga
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import yokai.data.DatabaseHandler
|
||||
import yokai.domain.manga.MangaRepository
|
||||
|
||||
class MangaRepositoryImpl(private val handler: DatabaseHandler) : MangaRepository {
|
||||
override suspend fun getManga(): List<Manga> =
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain
|
||||
package dev.yokai.domain
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain
|
||||
package dev.yokai.domain
|
||||
|
||||
sealed class Result<out T> {
|
||||
data class Success<out T>(val data: T? = null) : Result<T>()
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain
|
||||
package dev.yokai.domain
|
||||
|
||||
class SplashState {
|
||||
var shown = false
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain.base
|
||||
package dev.yokai.domain.base
|
||||
|
||||
import androidx.annotation.StringRes
|
||||
import eu.kanade.tachiyomi.R
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain.base.models
|
||||
package dev.yokai.domain.base.models
|
||||
|
||||
data class Version(
|
||||
val type: Type,
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain.chapter
|
||||
package dev.yokai.domain.chapter
|
||||
|
||||
import eu.kanade.tachiyomi.data.database.models.Chapter
|
||||
import kotlinx.coroutines.flow.Flow
|
|
@ -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(
|
||||
private val chapterRepository: ChapterRepository,
|
|
@ -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 yokai.domain.chapter.ChapterRepository
|
||||
|
||||
class GetChapters(
|
||||
private val chapterRepository: ChapterRepository,
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain.download
|
||||
package dev.yokai.domain.download
|
||||
|
||||
import eu.kanade.tachiyomi.core.preference.PreferenceStore
|
||||
|
|
@ -1,10 +1,12 @@
|
|||
package yokai.domain.extension.interactor
|
||||
package dev.yokai.domain.extension.interactor
|
||||
|
||||
import android.content.pm.PackageInfo
|
||||
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 yokai.domain.extension.repo.ExtensionRepoRepository
|
||||
import yokai.domain.source.SourcePreferences
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
||||
class TrustExtension(
|
||||
private val extensionRepoRepository: ExtensionRepoRepository,
|
|
@ -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 yokai.domain.extension.repo.model.ExtensionRepo
|
||||
|
||||
interface ExtensionRepoRepository {
|
||||
fun subscribeAll(): Flow<List<ExtensionRepo>>
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain.extension.repo.exception
|
||||
package dev.yokai.domain.extension.repo.exception
|
||||
|
||||
import java.io.IOException
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
package yokai.domain.extension.repo.interactor
|
||||
package dev.yokai.domain.extension.repo.interactor
|
||||
|
||||
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 okhttp3.OkHttpClient
|
||||
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(
|
||||
private val extensionRepoRepository: ExtensionRepoRepository
|
|
@ -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(
|
||||
private val extensionRepoRepository: ExtensionRepoRepository
|
|
@ -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 yokai.domain.extension.repo.ExtensionRepoRepository
|
||||
import yokai.domain.extension.repo.model.ExtensionRepo
|
||||
|
||||
class GetExtensionRepo(
|
||||
private val extensionRepoRepository: ExtensionRepoRepository
|
|
@ -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(
|
||||
private val extensionRepoRepository: ExtensionRepoRepository
|
|
@ -1,7 +1,7 @@
|
|||
package yokai.domain.extension.repo.interactor
|
||||
package dev.yokai.domain.extension.repo.interactor
|
||||
|
||||
import yokai.domain.extension.repo.ExtensionRepoRepository
|
||||
import yokai.domain.extension.repo.model.ExtensionRepo
|
||||
import dev.yokai.domain.extension.repo.ExtensionRepoRepository
|
||||
import dev.yokai.domain.extension.repo.model.ExtensionRepo
|
||||
|
||||
class ReplaceExtensionRepo(
|
||||
private val extensionRepoRepository: ExtensionRepoRepository
|
|
@ -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 kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.awaitAll
|
||||
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(
|
||||
private val extensionRepoRepository: ExtensionRepoRepository,
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain.extension.repo.model
|
||||
package dev.yokai.domain.extension.repo.model
|
||||
|
||||
data class ExtensionRepo(
|
||||
val baseUrl: String,
|
|
@ -1,6 +1,7 @@
|
|||
package yokai.domain.extension.repo.service
|
||||
package dev.yokai.domain.extension.repo.service
|
||||
|
||||
import androidx.core.net.toUri
|
||||
import dev.yokai.domain.extension.repo.model.ExtensionRepo
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.HttpException
|
||||
import eu.kanade.tachiyomi.network.awaitSuccess
|
||||
|
@ -12,7 +13,6 @@ import kotlinx.serialization.json.jsonObject
|
|||
import kotlinx.serialization.json.jsonPrimitive
|
||||
import okhttp3.OkHttpClient
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import yokai.domain.extension.repo.model.ExtensionRepo
|
||||
|
||||
class ExtensionRepoService(
|
||||
private val client: OkHttpClient,
|
|
@ -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 yokai.domain.library.custom.model.CustomMangaInfo
|
||||
|
||||
interface CustomMangaRepository {
|
||||
fun subscribeAll(): Flow<List<CustomMangaInfo>>
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain.library.custom.exception
|
||||
package dev.yokai.domain.library.custom.exception
|
||||
|
||||
import java.io.IOException
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package yokai.domain.library.custom.interactor
|
||||
package dev.yokai.domain.library.custom.interactor
|
||||
|
||||
import yokai.domain.library.custom.CustomMangaRepository
|
||||
import yokai.domain.library.custom.exception.SaveCustomMangaException
|
||||
import yokai.domain.library.custom.model.CustomMangaInfo
|
||||
import dev.yokai.domain.library.custom.CustomMangaRepository
|
||||
import dev.yokai.domain.library.custom.exception.SaveCustomMangaException
|
||||
import dev.yokai.domain.library.custom.model.CustomMangaInfo
|
||||
|
||||
class CreateCustomManga(
|
||||
private val customMangaRepository: CustomMangaRepository,
|
|
@ -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(
|
||||
private val customMangaRepository: CustomMangaRepository,
|
|
@ -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(
|
||||
private val customMangaRepository: CustomMangaRepository,
|
|
@ -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(
|
||||
private val customMangaRepository: CustomMangaRepository,
|
|
@ -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.MangaImpl
|
|
@ -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.Manga
|
|
@ -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 kotlinx.coroutines.flow.Flow
|
||||
import yokai.domain.manga.MangaRepository
|
||||
|
||||
class GetLibraryManga(
|
||||
private val mangaRepository: MangaRepository,
|
|
@ -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.getEnum
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain.source
|
||||
package dev.yokai.domain.source
|
||||
|
||||
import eu.kanade.tachiyomi.core.preference.PreferenceStore
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain.storage
|
||||
package dev.yokai.domain.storage
|
||||
|
||||
import android.content.Context
|
||||
import androidx.core.net.toUri
|
|
@ -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.PreferenceStore
|
|
@ -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.getEnum
|
||||
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
|
||||
import eu.kanade.tachiyomi.ui.recents.RecentMangaAdapter
|
||||
|
||||
class UiPreferences(private val preferenceStore: PreferenceStore) {
|
||||
fun recentsViewType() = preferenceStore.getInt("recents_view_type", 0)
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.domain.ui.settings
|
||||
package dev.yokai.domain.ui.settings
|
||||
|
||||
import androidx.annotation.StringRes
|
||||
import eu.kanade.tachiyomi.R
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation
|
||||
package dev.yokai.presentation
|
||||
|
||||
import android.app.Activity
|
||||
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.res.stringResource
|
||||
import androidx.core.view.WindowInsetsControllerCompat
|
||||
import dev.yokai.presentation.component.ToolTipButton
|
||||
import eu.kanade.tachiyomi.R
|
||||
import yokai.presentation.component.ToolTipButton
|
||||
|
||||
@Composable
|
||||
fun YokaiScaffold(
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation.component
|
||||
package dev.yokai.presentation.component
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.drawable.AdaptiveIconDrawable
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation.component
|
||||
package dev.yokai.presentation.component
|
||||
|
||||
import androidx.compose.animation.AnimatedContent
|
||||
import androidx.compose.animation.core.LinearEasing
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation.component
|
||||
package dev.yokai.presentation.component
|
||||
|
||||
import android.content.res.Configuration
|
||||
import androidx.compose.foundation.Image
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation.component
|
||||
package dev.yokai.presentation.component
|
||||
|
||||
import androidx.compose.foundation.layout.ColumnScope
|
||||
import androidx.compose.foundation.layout.RowScope
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation.component
|
||||
package dev.yokai.presentation.component
|
||||
|
||||
import androidx.compose.foundation.clickable
|
||||
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.semantics.Role
|
||||
import androidx.compose.ui.unit.dp
|
||||
import yokai.presentation.theme.Size
|
||||
import dev.yokai.presentation.theme.Size
|
||||
|
||||
@Composable
|
||||
fun LabeledCheckbox(
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation.component
|
||||
package dev.yokai.presentation.component
|
||||
|
||||
import android.content.Context
|
||||
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.dp
|
||||
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.util.system.Themes
|
||||
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(
|
||||
val colorScheme: ColorScheme,
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation.component
|
||||
package dev.yokai.presentation.component
|
||||
|
||||
import androidx.compose.foundation.combinedClickable
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation.component
|
||||
package dev.yokai.presentation.component
|
||||
|
||||
import androidx.compose.foundation.Image
|
||||
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.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import dev.yokai.presentation.core.util.clickableNoIndication
|
||||
import eu.kanade.tachiyomi.data.track.TrackService
|
||||
import yokai.presentation.core.util.clickableNoIndication
|
||||
|
||||
@Composable
|
||||
fun TrackLogoIcon(
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation.component.preference
|
||||
package dev.yokai.presentation.component.preference
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation.component.preference
|
||||
package dev.yokai.presentation.component.preference
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
|
@ -8,7 +8,7 @@ import androidx.compose.ui.res.stringResource
|
|||
import androidx.core.net.toUri
|
||||
import com.hippo.unifile.UniFile
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.core.storage.preference.collectAsState
|
||||
import eu.kanade.tachiyomi.core.preference.collectAsState
|
||||
|
||||
@Composable
|
||||
fun storageLocationText(
|
|
@ -1,4 +1,4 @@
|
|||
package yokai.presentation.component.preference
|
||||
package dev.yokai.presentation.component.preference
|
||||
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.expandVertically
|
||||
|
@ -12,19 +12,19 @@ import androidx.compose.runtime.getValue
|
|||
import androidx.compose.runtime.rememberCoroutineScope
|
||||
import androidx.compose.runtime.structuralEqualityPolicy
|
||||
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 kotlinx.coroutines.launch
|
||||
import uy.kohesive.injekt.Injekt
|
||||
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 LocalPreferenceMinHeight = compositionLocalOf(structuralEqualityPolicy()) { 56.dp }
|
|
@ -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.core.RepeatMode
|
||||
|
@ -30,9 +30,9 @@ import androidx.compose.ui.graphics.Color
|
|||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
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 yokai.presentation.component.preference.LocalPreferenceHighlighted
|
||||
import yokai.presentation.component.preference.LocalPreferenceMinHeight
|
||||
import kotlin.time.Duration.Companion.seconds
|
||||
|
||||
@Composable
|
|
@ -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.material.icons.Icons
|
||||
|
@ -22,6 +22,7 @@ import androidx.compose.ui.graphics.vector.ImageVector
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.input.TextFieldValue
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import eu.kanade.tachiyomi.R
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue