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
- 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

View file

@ -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(

View file

@ -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(...);
}

View file

@ -1,4 +1,4 @@
package yokai.core
package dev.yokai.core
import co.touchlab.kermit.DefaultFormatter
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 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) }

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 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,

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.Manga

View file

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

View file

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

View file

@ -1,4 +1,4 @@
package yokai.core.migration
package dev.yokai.core.migration
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 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.CoroutineScope

View file

@ -1,4 +1,4 @@
package yokai.core.migration
package dev.yokai.core.migration
class MigrationStrategyFactory(
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.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 yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
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 yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
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 yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class CustomInfoMigration : Migration {
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 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

View file

@ -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

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.data.download.DownloadProvider
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class DownloadedChaptersMigration : Migration {
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.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

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.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.

View file

@ -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

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 yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
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.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

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.data.library.LibraryUpdateJob
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class LibraryUpdateResetMigration : Migration {
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.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(),
)

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.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

View file

@ -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 {

View file

@ -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

View file

@ -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

View 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.reader.settings.OrientationType
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class RotationTypeEnumMigration : Migration {
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.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

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.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

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.data.backup.create.BackupCreatorJob
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class SetupBackupCreateMigration : Migration {
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.extension.ExtensionUpdateJob
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class SetupExtensionUpdateMigration : Migration {
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.data.library.LibraryUpdateJob
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class SetupLibraryUpdateMigration : Migration {
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.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

View file

@ -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

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.PreferenceStore
import yokai.core.migration.Migration
import yokai.core.migration.MigrationContext
class TrackerPrivateSettingsMigration : Migration {
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.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

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.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.

View file

@ -1,4 +1,4 @@
package yokai.data
package dev.yokai.data
import app.cash.sqldelight.Query
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 java.util.*
import java.util.Date
val dateAdapter = object : ColumnAdapter<Date, Long> {
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.Transacter
import kotlinx.coroutines.flow.Flow
import tachiyomi.data.Database

View file

@ -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

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.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> =

View file

@ -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>> =

View file

@ -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>> =

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.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> =

View file

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

View file

@ -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>()

View file

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

View file

@ -1,4 +1,4 @@
package yokai.domain.base
package dev.yokai.domain.base
import androidx.annotation.StringRes
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(
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 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(
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 yokai.domain.chapter.ChapterRepository
class GetChapters(
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

View file

@ -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,

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 yokai.domain.extension.repo.model.ExtensionRepo
interface ExtensionRepoRepository {
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

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 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

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(
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 yokai.domain.extension.repo.ExtensionRepoRepository
import yokai.domain.extension.repo.model.ExtensionRepo
class GetExtensionRepo(
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(
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 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

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 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,

View file

@ -1,4 +1,4 @@
package yokai.domain.extension.repo.model
package dev.yokai.domain.extension.repo.model
data class ExtensionRepo(
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 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,

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 yokai.domain.library.custom.model.CustomMangaInfo
interface CustomMangaRepository {
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

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 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,

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(
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(
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(
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.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.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 kotlinx.coroutines.flow.Flow
import yokai.domain.manga.MangaRepository
class GetLibraryManga(
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.getEnum

View file

@ -1,4 +1,4 @@
package yokai.domain.source
package dev.yokai.domain.source
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 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.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.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)

View file

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

View file

@ -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(

View file

@ -1,4 +1,4 @@
package yokai.presentation.component
package dev.yokai.presentation.component
import android.graphics.Bitmap
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.core.LinearEasing

View file

@ -1,4 +1,4 @@
package yokai.presentation.component
package dev.yokai.presentation.component
import android.content.res.Configuration
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.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.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(

View file

@ -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,

View file

@ -1,4 +1,4 @@
package yokai.presentation.component
package dev.yokai.presentation.component
import androidx.compose.foundation.combinedClickable
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.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(

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.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.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(

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.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 }

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.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

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.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