package eu.kanade.domain.base import android.content.Context import dev.icerock.moko.resources.StringResource import eu.kanade.tachiyomi.util.system.GLUtil import tachiyomi.core.common.preference.Preference import tachiyomi.core.common.preference.PreferenceStore import tachiyomi.i18n.MR class BasePreferences( val context: Context, private val preferenceStore: PreferenceStore, ) { fun downloadedOnly() = preferenceStore.getBoolean( Preference.appStateKey("pref_downloaded_only"), false, ) fun incognitoMode() = preferenceStore.getBoolean(Preference.appStateKey("incognito_mode"), false) fun extensionInstaller() = ExtensionInstallerPreference(context, preferenceStore) fun shownOnboardingFlow() = preferenceStore.getBoolean(Preference.appStateKey("onboarding_complete"), false) enum class ExtensionInstaller(val titleRes: StringResource, val requiresSystemPermission: Boolean) { LEGACY(MR.strings.ext_installer_legacy, true), PACKAGEINSTALLER(MR.strings.ext_installer_packageinstaller, true), SHIZUKU(MR.strings.ext_installer_shizuku, false), PRIVATE(MR.strings.ext_installer_private, false), } fun displayProfile() = preferenceStore.getString("pref_display_profile_key", "") fun hardwareBitmapThreshold() = preferenceStore.getInt("pref_hardware_bitmap_threshold", GLUtil.SAFE_TEXTURE_LIMIT) fun alwaysDecodeLongStripWithSSIV() = preferenceStore.getBoolean("pref_always_decode_long_strip_with_ssiv", false) fun installationId() = preferenceStore.getString(Preference.appStateKey("installation_id"), "") }