chore: Add missing "Max automatic backups" option

This commit is contained in:
Ahmad Ansori Palembani 2024-08-03 21:51:49 +07:00
parent ad3bb53519
commit 0f9ff92f89
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
3 changed files with 22 additions and 11 deletions

View file

@ -9,6 +9,9 @@
## Other ?? Technical stuff, what happened behind the scene ## Other ?? Technical stuff, what happened behind the scene
--> -->
## Additions
- Add missing "Max automatic backups" option on experimental Data and Storage setting menu
## Changes ## Changes
- Add more info to WorkerInfo page - Add more info to WorkerInfo page
- Added "next scheduled run" - Added "next scheduled run"
@ -17,6 +20,7 @@
- `chinese` tag no longer cause reading mode to switch to LTR - `chinese` tag no longer cause reading mode to switch to LTR
- `manhua` tag no longer cause reading mode to switch to LTR - `manhua` tag no longer cause reading mode to switch to LTR
- Local source manga's cover now being invalidated on refresh - Local source manga's cover now being invalidated on refresh
- You can now create a backup without any entries using experimental Data and Storage setting menu
## Fixes ## Fixes
- Fixed auto backup, auto extension update, and app update checker stop working - Fixed auto backup, auto extension update, and app update checker stop working
@ -44,7 +48,7 @@
- More StorIO to SQLDelight migrations - More StorIO to SQLDelight migrations
- Merge lastFetch and lastRead query into library_view VIEW - Merge lastFetch and lastRead query into library_view VIEW
- Migrated a few more chapter related queries - Migrated a few more chapter related queries
- Migrated most of manga related queries - Migrated most of the manga related queries
- Bump dependency com.github.tachiyomiorg:unifile revision to a9de196cc7 - Bump dependency com.github.tachiyomiorg:unifile revision to a9de196cc7
- Update project to Kotlin 2.0 - Update project to Kotlin 2.0
- Update compose bom to v2024.07.00-alpha02 - Update compose bom to v2024.07.00-alpha02

View file

@ -15,9 +15,6 @@ import androidx.lifecycle.lifecycleScope
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import com.hippo.unifile.UniFile import com.hippo.unifile.UniFile
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import yokai.i18n.MR
import yokai.util.lang.getString
import dev.icerock.moko.resources.compose.stringResource
import eu.kanade.tachiyomi.data.backup.BackupFileValidator import eu.kanade.tachiyomi.data.backup.BackupFileValidator
import eu.kanade.tachiyomi.data.backup.create.BackupCreatorJob import eu.kanade.tachiyomi.data.backup.create.BackupCreatorJob
import eu.kanade.tachiyomi.data.backup.create.BackupOptions import eu.kanade.tachiyomi.data.backup.create.BackupOptions
@ -35,8 +32,6 @@ import eu.kanade.tachiyomi.ui.setting.onChange
import eu.kanade.tachiyomi.ui.setting.onClick import eu.kanade.tachiyomi.ui.setting.onClick
import eu.kanade.tachiyomi.ui.setting.preference import eu.kanade.tachiyomi.ui.setting.preference
import eu.kanade.tachiyomi.ui.setting.preferenceCategory import eu.kanade.tachiyomi.ui.setting.preferenceCategory
import eu.kanade.tachiyomi.ui.setting.summaryMRes as summaryRes
import eu.kanade.tachiyomi.ui.setting.titleMRes as titleRes
import eu.kanade.tachiyomi.util.system.DeviceUtil import eu.kanade.tachiyomi.util.system.DeviceUtil
import eu.kanade.tachiyomi.util.system.disableItems import eu.kanade.tachiyomi.util.system.disableItems
import eu.kanade.tachiyomi.util.system.launchIO import eu.kanade.tachiyomi.util.system.launchIO
@ -52,9 +47,13 @@ import kotlinx.coroutines.flow.onEach
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import yokai.domain.storage.StorageManager import yokai.domain.storage.StorageManager
import yokai.domain.storage.StoragePreferences import yokai.domain.storage.StoragePreferences
import yokai.i18n.MR
import yokai.util.lang.getString
import android.R as AR import android.R as AR
import eu.kanade.tachiyomi.ui.setting.summaryMRes as summaryRes
import eu.kanade.tachiyomi.ui.setting.titleMRes as titleRes
@Deprecated("Migrating to compose") @Deprecated("Migrating to compose", replaceWith = ReplaceWith("SettingsDataController"))
class SettingsDataLegacyController : SettingsLegacyController() { class SettingsDataLegacyController : SettingsLegacyController() {
/** /**

View file

@ -23,13 +23,10 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import co.touchlab.kermit.Logger import co.touchlab.kermit.Logger
import dev.icerock.moko.resources.StringResource import dev.icerock.moko.resources.StringResource
import eu.kanade.tachiyomi.R
import yokai.i18n.MR
import yokai.util.lang.getString
import dev.icerock.moko.resources.compose.stringResource import dev.icerock.moko.resources.compose.stringResource
import eu.kanade.tachiyomi.core.storage.preference.collectAsState
import eu.kanade.tachiyomi.data.backup.BackupFileValidator import eu.kanade.tachiyomi.data.backup.BackupFileValidator
import eu.kanade.tachiyomi.data.backup.create.BackupCreatorJob import eu.kanade.tachiyomi.data.backup.create.BackupCreatorJob
import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob
@ -46,12 +43,14 @@ import eu.kanade.tachiyomi.util.system.toast
import eu.kanade.tachiyomi.util.system.withUIContext import eu.kanade.tachiyomi.util.system.withUIContext
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
import kotlinx.collections.immutable.persistentMapOf import kotlinx.collections.immutable.persistentMapOf
import kotlinx.collections.immutable.toImmutableMap
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import yokai.domain.storage.StorageManager import yokai.domain.storage.StorageManager
import yokai.domain.storage.StoragePreferences import yokai.domain.storage.StoragePreferences
import yokai.i18n.MR
import yokai.presentation.component.preference.Preference import yokai.presentation.component.preference.Preference
import yokai.presentation.component.preference.storageLocationText import yokai.presentation.component.preference.storageLocationText
import yokai.presentation.component.preference.widget.BasePreferenceWidget import yokai.presentation.component.preference.widget.BasePreferenceWidget
@ -61,6 +60,7 @@ import yokai.presentation.settings.screen.data.CreateBackup
import yokai.presentation.settings.screen.data.RestoreBackup import yokai.presentation.settings.screen.data.RestoreBackup
import yokai.presentation.settings.screen.data.StorageInfo import yokai.presentation.settings.screen.data.StorageInfo
import yokai.presentation.settings.screen.data.storageLocationPicker import yokai.presentation.settings.screen.data.storageLocationPicker
import yokai.util.lang.getString
object SettingsDataScreen : ComposableSettings { object SettingsDataScreen : ComposableSettings {
@Composable @Composable
@ -133,6 +133,8 @@ object SettingsDataScreen : ComposableSettings {
} }
} }
val backupInterval by preferences.backupInterval().collectAsState()
return Preference.PreferenceGroup( return Preference.PreferenceGroup(
title = stringResource(MR.strings.backup_and_restore), title = stringResource(MR.strings.backup_and_restore),
preferenceItems = persistentListOf( preferenceItems = persistentListOf(
@ -218,6 +220,12 @@ object SettingsDataScreen : ComposableSettings {
true true
}, },
), ),
Preference.PreferenceItem.ListPreference(
pref = preferences.numberOfBackups(),
title = stringResource(MR.strings.max_auto_backups),
entries = (1..5).associateWith { it.toString() }.toImmutableMap(),
enabled = backupInterval > 0,
),
Preference.PreferenceItem.InfoPreference( Preference.PreferenceItem.InfoPreference(
stringResource(MR.strings.backup_info) stringResource(MR.strings.backup_info)
/*+ "\n\n" + stringResource(MR.strings.last_auto_backup_info, relativeTimeSpanString(lastAutoBackup))*/, /*+ "\n\n" + stringResource(MR.strings.last_auto_backup_info, relativeTimeSpanString(lastAutoBackup))*/,