@@ -2,6 +2,7 @@ plugins {
|
||||
alias(mihonx.plugins.android.library)
|
||||
alias(mihonx.plugins.spotless)
|
||||
|
||||
alias(libs.plugins.metro)
|
||||
alias(libs.plugins.kotlin.serialization)
|
||||
}
|
||||
|
||||
@@ -19,6 +20,7 @@ kotlin {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(projects.core.metro)
|
||||
implementation(projects.i18n)
|
||||
|
||||
api(libs.logcat)
|
||||
@@ -53,4 +55,6 @@ dependencies {
|
||||
|
||||
testImplementation(libs.bundles.test)
|
||||
testRuntimeOnly(libs.junit.platform.launcher)
|
||||
|
||||
implementation(libs.metro.runtime)
|
||||
}
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
package eu.kanade.tachiyomi.core.security
|
||||
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.Inject
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import tachiyomi.core.common.preference.Preference
|
||||
import tachiyomi.core.common.preference.PreferenceStore
|
||||
|
||||
@Inject
|
||||
@SingleIn(AppScope::class)
|
||||
class PrivacyPreferences(
|
||||
preferenceStore: PreferenceStore,
|
||||
) {
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
package eu.kanade.tachiyomi.core.security
|
||||
|
||||
import dev.icerock.moko.resources.StringResource
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.Inject
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import tachiyomi.core.common.preference.Preference
|
||||
import tachiyomi.core.common.preference.PreferenceStore
|
||||
import tachiyomi.core.common.preference.getEnum
|
||||
import tachiyomi.i18n.MR
|
||||
|
||||
@Inject
|
||||
@SingleIn(AppScope::class)
|
||||
class SecurityPreferences(
|
||||
preferenceStore: PreferenceStore,
|
||||
) {
|
||||
|
||||
@@ -2,12 +2,17 @@ package eu.kanade.tachiyomi.network
|
||||
|
||||
import android.content.Context
|
||||
import app.cash.quickjs.QuickJs
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.Inject
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import tachiyomi.core.common.util.lang.withIOContext
|
||||
|
||||
/**
|
||||
* Util for evaluating JavaScript in sources.
|
||||
*/
|
||||
@Suppress("UNUSED", "UNCHECKED_CAST")
|
||||
@Inject
|
||||
@SingleIn(AppScope::class)
|
||||
class JavaScriptEngine(context: Context) {
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package eu.kanade.tachiyomi.network
|
||||
|
||||
import android.content.Context
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.Inject
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import eu.kanade.tachiyomi.network.interceptor.CloudflareInterceptor
|
||||
import eu.kanade.tachiyomi.network.interceptor.UncaughtExceptionInterceptor
|
||||
import eu.kanade.tachiyomi.network.interceptor.UserAgentInterceptor
|
||||
@@ -11,6 +14,8 @@ import java.io.File
|
||||
import kotlin.time.Duration.Companion.minutes
|
||||
import kotlin.time.Duration.Companion.seconds
|
||||
|
||||
@Inject
|
||||
@SingleIn(AppScope::class)
|
||||
class NetworkHelper(
|
||||
private val context: Context,
|
||||
private val preferences: NetworkPreferences,
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
package eu.kanade.tachiyomi.network
|
||||
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.Inject
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import mihon.core.metro.IsDebugBuild
|
||||
import tachiyomi.core.common.preference.Preference
|
||||
import tachiyomi.core.common.preference.PreferenceStore
|
||||
|
||||
@Inject
|
||||
@SingleIn(AppScope::class)
|
||||
class NetworkPreferences(
|
||||
preferenceStore: PreferenceStore,
|
||||
verboseLoggingDefault: Boolean = false,
|
||||
@IsDebugBuild isDebugBuild: Boolean,
|
||||
) {
|
||||
|
||||
val verboseLogging: Preference<Boolean> = preferenceStore.getBoolean("verbose_logging", verboseLoggingDefault)
|
||||
val verboseLogging: Preference<Boolean> = preferenceStore.getBoolean(
|
||||
"verbose_logging",
|
||||
isDebugBuild,
|
||||
)
|
||||
|
||||
val dohProvider: Preference<Int> = preferenceStore.getInt("doh_provider", -1)
|
||||
|
||||
|
||||
+9
-4
@@ -3,6 +3,10 @@ package tachiyomi.core.common.preference
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import androidx.preference.PreferenceManager
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.Inject
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import kotlinx.coroutines.channels.awaitClose
|
||||
import kotlinx.coroutines.flow.callbackFlow
|
||||
import tachiyomi.core.common.preference.AndroidPreference.BooleanPrimitive
|
||||
@@ -15,10 +19,11 @@ import tachiyomi.core.common.preference.AndroidPreference.ObjectSetAsStringSet
|
||||
import tachiyomi.core.common.preference.AndroidPreference.StringPrimitive
|
||||
import tachiyomi.core.common.preference.AndroidPreference.StringSetPrimitive
|
||||
|
||||
class AndroidPreferenceStore(
|
||||
context: Context,
|
||||
private val sharedPreferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context),
|
||||
) : PreferenceStore {
|
||||
@SingleIn(AppScope::class)
|
||||
@ContributesBinding(AppScope::class)
|
||||
class AndroidPreferenceStore(private val sharedPreferences: SharedPreferences) : PreferenceStore {
|
||||
|
||||
@Inject constructor(context: Context) : this(PreferenceManager.getDefaultSharedPreferences(context))
|
||||
|
||||
private val keyFlow = sharedPreferences.keyFlow
|
||||
|
||||
|
||||
+7
@@ -3,10 +3,17 @@ package tachiyomi.core.common.storage
|
||||
import android.content.Context
|
||||
import android.os.Environment
|
||||
import androidx.core.net.toUri
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.Inject
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import tachiyomi.core.common.i18n.stringResource
|
||||
import tachiyomi.i18n.MR
|
||||
import java.io.File
|
||||
|
||||
@Inject
|
||||
@SingleIn(AppScope::class)
|
||||
@ContributesBinding(AppScope::class)
|
||||
class AndroidStorageFolderProvider(
|
||||
private val context: Context,
|
||||
) : FolderProvider {
|
||||
|
||||
Reference in New Issue
Block a user