diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreator.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreator.kt index 6d3354e1fe..1f1d82488c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreator.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreator.kt @@ -11,7 +11,6 @@ import eu.kanade.tachiyomi.data.backup.create.creators.PreferenceBackupCreator import eu.kanade.tachiyomi.data.backup.create.creators.SourcesBackupCreator import eu.kanade.tachiyomi.data.backup.models.Backup import eu.kanade.tachiyomi.data.database.DatabaseHelper -import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.util.system.e import kotlinx.serialization.protobuf.ProtoBuf import okio.buffer @@ -20,6 +19,7 @@ import okio.sink import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy +import yokai.domain.backup.BackupPreferences import yokai.domain.storage.StorageManager import yokai.i18n.MR import yokai.util.lang.getString @@ -35,7 +35,7 @@ class BackupCreator( val parser = ProtoBuf private val db: DatabaseHelper = Injekt.get() - private val preferences: PreferencesHelper = Injekt.get() + private val preferences: BackupPreferences = Injekt.get() private val storageManager: StorageManager by injectLazy() @Suppress("RedundantSuspendModifier") diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreatorJob.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreatorJob.kt index d7d9c7b1b8..8e27d39e1d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreatorJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreatorJob.kt @@ -16,13 +16,13 @@ import co.touchlab.kermit.Logger import com.hippo.unifile.UniFile import eu.kanade.tachiyomi.data.backup.BackupNotifier import eu.kanade.tachiyomi.data.notification.Notifications -import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.util.system.e import eu.kanade.tachiyomi.util.system.localeContext import eu.kanade.tachiyomi.util.system.notificationManager import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy +import yokai.domain.backup.BackupPreferences import yokai.domain.storage.StorageManager import java.util.concurrent.* @@ -58,7 +58,7 @@ class BackupCreatorJob(private val context: Context, workerParams: WorkerParamet } fun setupTask(context: Context, prefInterval: Int? = null) { - val preferences = Injekt.get() + val preferences = Injekt.get() val interval = prefInterval ?: preferences.backupInterval().get() val workManager = WorkManager.getInstance(context) if (interval > 0) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt index 2b3d500ffa..9df2292945 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt @@ -204,9 +204,6 @@ class PreferencesHelper(val context: Context, val preferenceStore: PreferenceSto fun lastLibrarySuggestion() = preferenceStore.getLong("last_library_suggestion", 0L) - fun numberOfBackups() = preferenceStore.getInt(Keys.numberOfBackups, 2) - - fun backupInterval() = preferenceStore.getInt(Keys.backupInterval, 0) fun removeAfterReadSlots() = preferenceStore.getInt(Keys.removeAfterReadSlots, -1) fun removeAfterMarkedAsRead() = preferenceStore.getBoolean(Keys.removeAfterMarkedAsRead, false) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/legacy/SettingsDataLegacyController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/legacy/SettingsDataLegacyController.kt index aec36be82d..749f8e3cb4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/legacy/SettingsDataLegacyController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/legacy/SettingsDataLegacyController.kt @@ -45,6 +45,7 @@ import eu.kanade.tachiyomi.util.view.setTitle import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import uy.kohesive.injekt.injectLazy +import yokai.domain.backup.BackupPreferences import yokai.domain.storage.StorageManager import yokai.domain.storage.StoragePreferences import yokai.i18n.MR @@ -63,6 +64,7 @@ class SettingsDataLegacyController : SettingsLegacyController() { internal val storagePreferences: StoragePreferences by injectLazy() internal val storageManager: StorageManager by injectLazy() internal val extensionManager: ExtensionManager by injectLazy() + internal val backupPreferences: BackupPreferences by injectLazy() private val coverCache: CoverCache by injectLazy() private val chapterCache: ChapterCache by injectLazy() @@ -142,7 +144,7 @@ class SettingsDataLegacyController : SettingsLegacyController() { titleRes = MR.strings.automatic_backups intListPreference(activity) { - bindTo(preferences.backupInterval()) + bindTo(backupPreferences.backupInterval()) titleRes = MR.strings.backup_frequency entriesRes = arrayOf( MR.strings.manual, @@ -161,12 +163,12 @@ class SettingsDataLegacyController : SettingsLegacyController() { } } intListPreference(activity) { - bindTo(preferences.numberOfBackups()) + bindTo(backupPreferences.numberOfBackups()) titleRes = MR.strings.max_auto_backups entries = (1..5).map(Int::toString) entryRange = 1..5 - visibleIf(preferences.backupInterval()) { it > 0 } + visibleIf(backupPreferences.backupInterval()) { it > 0 } } } diff --git a/app/src/main/java/yokai/core/di/PreferenceModule.kt b/app/src/main/java/yokai/core/di/PreferenceModule.kt index 9bbe97aaab..f209685ea8 100644 --- a/app/src/main/java/yokai/core/di/PreferenceModule.kt +++ b/app/src/main/java/yokai/core/di/PreferenceModule.kt @@ -12,6 +12,7 @@ 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.backup.BackupPreferences import yokai.domain.base.BasePreferences import yokai.domain.download.DownloadPreferences import yokai.domain.recents.RecentsPreferences @@ -42,6 +43,8 @@ class PreferenceModule(val application: Application) : InjektModule { addSingletonFactory { SecurityPreferences(get()) } + addSingletonFactory { BackupPreferences(get()) } + addSingletonFactory { PreferencesHelper( context = application, diff --git a/app/src/main/java/yokai/domain/backup/BackupPreferences.kt b/app/src/main/java/yokai/domain/backup/BackupPreferences.kt new file mode 100644 index 0000000000..382ddcfc85 --- /dev/null +++ b/app/src/main/java/yokai/domain/backup/BackupPreferences.kt @@ -0,0 +1,11 @@ +package yokai.domain.backup + +import eu.kanade.tachiyomi.core.preference.PreferenceStore +import eu.kanade.tachiyomi.data.preference.PreferenceKeys + +class BackupPreferences(private val preferenceStore: PreferenceStore) { + + fun numberOfBackups() = preferenceStore.getInt(PreferenceKeys.numberOfBackups, 5) + + fun backupInterval() = preferenceStore.getInt(PreferenceKeys.backupInterval, 0) +} diff --git a/app/src/main/java/yokai/presentation/settings/screen/SettingsDataScreen.kt b/app/src/main/java/yokai/presentation/settings/screen/SettingsDataScreen.kt index 3e75af4911..f86f3cd9b3 100644 --- a/app/src/main/java/yokai/presentation/settings/screen/SettingsDataScreen.kt +++ b/app/src/main/java/yokai/presentation/settings/screen/SettingsDataScreen.kt @@ -32,7 +32,6 @@ import eu.kanade.tachiyomi.data.backup.create.BackupCreatorJob import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob import eu.kanade.tachiyomi.data.cache.ChapterCache import eu.kanade.tachiyomi.data.cache.CoverCache -import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.util.compose.LocalAlertDialog import eu.kanade.tachiyomi.util.compose.currentOrThrow @@ -48,6 +47,7 @@ import kotlinx.coroutines.launch import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy +import yokai.domain.backup.BackupPreferences import yokai.domain.storage.StorageManager import yokai.domain.storage.StoragePreferences import yokai.i18n.MR @@ -69,7 +69,7 @@ object SettingsDataScreen : ComposableSettings { @Composable override fun getPreferences(): List { val storagePreferences: StoragePreferences by injectLazy() - val preferences: PreferencesHelper by injectLazy() + val preferences: BackupPreferences by injectLazy() return persistentListOf( getStorageLocationPreference(storagePreferences = storagePreferences), @@ -97,7 +97,7 @@ object SettingsDataScreen : ComposableSettings { } @Composable - private fun getBackupAndRestoreGroup(preferences: PreferencesHelper): Preference.PreferenceGroup { + private fun getBackupAndRestoreGroup(preferences: BackupPreferences): Preference.PreferenceGroup { val scope = rememberCoroutineScope() val context = LocalContext.current val alertDialog = LocalAlertDialog.currentOrThrow