Replace preference getter functions with properties (#3091)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt
#	app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt
#	app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt
#	app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt
#	app/src/main/java/eu/kanade/presentation/reader/settings/GeneralSettingsPage.kt
#	app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt
#	app/src/main/java/eu/kanade/tachiyomi/App.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt
#	app/src/main/java/eu/kanade/tachiyomi/di/PreferenceModule.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/util/CrashLogUtil.kt
#	app/src/main/java/mihon/feature/migration/list/MigrationListScreenModel.kt
#	core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt
#	domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt
This commit is contained in:
AntsyLich
2026-03-20 14:57:01 +06:00
committed by Jobobby04
parent 1c8e6dcd6f
commit af51607053
204 changed files with 1300 additions and 1203 deletions
@@ -1,11 +1,12 @@
package eu.kanade.tachiyomi.core.security
import tachiyomi.core.common.preference.Preference
import tachiyomi.core.common.preference.PreferenceStore
class PrivacyPreferences(
private val preferenceStore: PreferenceStore,
preferenceStore: PreferenceStore,
) {
fun crashlytics() = preferenceStore.getBoolean("crashlytics", true)
val crashlytics: Preference<Boolean> = preferenceStore.getBoolean("crashlytics", true)
fun analytics() = preferenceStore.getBoolean("analytics", true)
val analytics: Preference<Boolean> = preferenceStore.getBoolean("analytics", true)
}
@@ -8,41 +8,44 @@ import tachiyomi.i18n.MR
import tachiyomi.i18n.sy.SYMR
class SecurityPreferences(
private val preferenceStore: PreferenceStore,
preferenceStore: PreferenceStore,
) {
fun useAuthenticator() = preferenceStore.getBoolean("use_biometric_lock", false)
val useAuthenticator: Preference<Boolean> = preferenceStore.getBoolean("use_biometric_lock", false)
fun lockAppAfter() = preferenceStore.getInt("lock_app_after", 0)
val lockAppAfter: Preference<Int> = preferenceStore.getInt("lock_app_after", 0)
fun secureScreen() = preferenceStore.getEnum("secure_screen_v2", SecureScreenMode.INCOGNITO)
val secureScreen: Preference<SecureScreenMode> = preferenceStore.getEnum(
"secure_screen_v2",
SecureScreenMode.INCOGNITO,
)
fun hideNotificationContent() = preferenceStore.getBoolean("hide_notification_content", false)
val hideNotificationContent: Preference<Boolean> = preferenceStore.getBoolean("hide_notification_content", false)
// SY -->
fun authenticatorTimeRanges() = this.preferenceStore.getStringSet("biometric_time_ranges", mutableSetOf())
val authenticatorTimeRanges: Preference<Set<String>> = preferenceStore.getStringSet("biometric_time_ranges", mutableSetOf())
fun authenticatorDays() = this.preferenceStore.getInt("biometric_days", 0x7F)
val authenticatorDays: Preference<Int> = preferenceStore.getInt("biometric_days", 0x7F)
fun encryptDatabase() = this.preferenceStore.getBoolean(Preference.appStateKey("encrypt_database"), false)
val encryptDatabase: Preference<Boolean> = preferenceStore.getBoolean(Preference.appStateKey("encrypt_database"), false)
fun sqlPassword() = this.preferenceStore.getString(Preference.appStateKey("sql_password"), "")
val sqlPassword: Preference<String> = preferenceStore.getString(Preference.appStateKey("sql_password"), "")
fun passwordProtectDownloads() = preferenceStore.getBoolean(
val passwordProtectDownloads: Preference<Boolean> = preferenceStore.getBoolean(
Preference.privateKey("password_protect_downloads"),
false,
)
fun encryptionType() = this.preferenceStore.getEnum("encryption_type", EncryptionType.AES_256)
val encryptionType: Preference<EncryptionType> = preferenceStore.getEnum("encryption_type", EncryptionType.AES_256)
fun cbzPassword() = this.preferenceStore.getString(Preference.appStateKey("cbz_password"), "")
val cbzPassword: Preference<String> = preferenceStore.getString(Preference.appStateKey("cbz_password"), "")
// SY <--
/**
* For app lock. Will be set when there is a pending timed lock.
* Otherwise this pref should be deleted.
* Otherwise, this pref should be deleted.
*/
fun lastAppClosed() = preferenceStore.getLong(
val lastAppClosed: Preference<Long> = preferenceStore.getLong(
Preference.appStateKey("last_app_closed"),
0,
)
@@ -48,7 +48,7 @@ open /* SY <-- */ class NetworkHelper(
builder.addNetworkInterceptor(httpLoggingInterceptor)
}
when (preferences.dohProvider().get()) {
when (preferences.dohProvider.get()) {
PREF_DOH_CLOUDFLARE -> builder.dohCloudflare()
PREF_DOH_GOOGLE -> builder.dohGoogle()
PREF_DOH_ADGUARD -> builder.dohAdGuard()
@@ -82,5 +82,5 @@ open /* SY <-- */ class NetworkHelper(
/* SY --> */
open /* SY <-- */val cloudflareClient: OkHttpClient = client
fun defaultUserAgentProvider() = preferences.defaultUserAgent().get().trim()
fun defaultUserAgentProvider() = preferences.defaultUserAgent.get().trim()
}
@@ -4,22 +4,16 @@ import tachiyomi.core.common.preference.Preference
import tachiyomi.core.common.preference.PreferenceStore
class NetworkPreferences(
private val preferenceStore: PreferenceStore,
private val verboseLogging: Boolean = false,
preferenceStore: PreferenceStore,
verboseLoggingDefault: Boolean = false,
) {
fun verboseLogging(): Preference<Boolean> {
return preferenceStore.getBoolean("verbose_logging", verboseLogging)
}
val verboseLogging: Preference<Boolean> = preferenceStore.getBoolean("verbose_logging", verboseLoggingDefault)
fun dohProvider(): Preference<Int> {
return preferenceStore.getInt("doh_provider", -1)
}
val dohProvider: Preference<Int> = preferenceStore.getInt("doh_provider", -1)
fun defaultUserAgent(): Preference<String> {
return preferenceStore.getString(
"default_user_agent",
"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36",
)
}
val defaultUserAgent: Preference<String> = preferenceStore.getString(
"default_user_agent",
"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36",
)
}
@@ -129,7 +129,7 @@ object CbzCrypto {
}
fun getDecryptedPasswordCbz(): ByteArray {
val encryptedPassword = securityPreferences.cbzPassword().get()
val encryptedPassword = securityPreferences.cbzPassword.get()
if (encryptedPassword.isBlank()) error("This archive is encrypted please set a password")
return decrypt(encryptedPassword, AliasCbz)
@@ -144,7 +144,7 @@ object CbzCrypto {
val passwordBuffer = Charsets.UTF_8.encode(CharBuffer.wrap(passwordArray))
val passwordBytes = ByteArray(passwordBuffer.limit())
passwordBuffer.get(passwordBytes)
securityPreferences.sqlPassword().set(encrypt(passwordBytes, encryptionCipherSql))
securityPreferences.sqlPassword.set(encrypt(passwordBytes, encryptionCipherSql))
.also {
passwordArray.fill('#')
passwordBuffer.array().fill('#'.code.toByte())
@@ -153,22 +153,22 @@ object CbzCrypto {
}
fun getDecryptedPasswordSql(): ByteArray {
if (securityPreferences.sqlPassword().get().isBlank()) generateAndEncryptSqlPw()
return decrypt(securityPreferences.sqlPassword().get(), AliasSql)
if (securityPreferences.sqlPassword.get().isBlank()) generateAndEncryptSqlPw()
return decrypt(securityPreferences.sqlPassword.get(), AliasSql)
}
fun isPasswordSet(): Boolean {
return securityPreferences.cbzPassword().get().isNotEmpty()
return securityPreferences.cbzPassword.get().isNotEmpty()
}
fun isPasswordSetState(scope: CoroutineScope): StateFlow<Boolean> {
return securityPreferences.cbzPassword().changes()
return securityPreferences.cbzPassword.changes()
.map { it.isNotEmpty() }
.stateIn(scope, SharingStarted.Eagerly, false)
}
fun getPasswordProtectDlPref(): Boolean {
return securityPreferences.passwordProtectDownloads().get()
return securityPreferences.passwordProtectDownloads.get()
}
fun createComicInfoPadding(): String? {
@@ -181,7 +181,7 @@ object CbzCrypto {
}
fun getPreferredEncryptionAlgo(): ByteArray =
when (securityPreferences.encryptionType().get()) {
when (securityPreferences.encryptionType.get()) {
SecurityPreferences.EncryptionType.AES_256 -> "zip:encryption=aes256".toByteArray()
SecurityPreferences.EncryptionType.AES_128 -> "zip:encryption=aes128".toByteArray()
SecurityPreferences.EncryptionType.ZIP_STANDARD -> "zip:encryption=zipcrypt".toByteArray()
@@ -1,12 +1,13 @@
package exh.pref
import tachiyomi.core.common.preference.Preference
import tachiyomi.core.common.preference.PreferenceStore
class DelegateSourcePreferences(
private val preferenceStore: PreferenceStore,
) {
fun delegateSources() = preferenceStore.getBoolean("eh_delegate_sources", true)
val delegateSources: Preference<Boolean> = preferenceStore.getBoolean("eh_delegate_sources", true)
fun useJapaneseTitle() = preferenceStore.getBoolean("use_jp_title", false)
val useJapaneseTitle: Preference<Boolean> = preferenceStore.getBoolean("use_jp_title", false)
}