mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 16:18:55 +01:00 
			
		
		
		
	Split backup preferences from PreferencesHelper (#8051)
This commit is contained in:
		@@ -13,8 +13,8 @@ import androidx.work.WorkManager
 | 
			
		||||
import androidx.work.WorkerParameters
 | 
			
		||||
import androidx.work.workDataOf
 | 
			
		||||
import com.hippo.unifile.UniFile
 | 
			
		||||
import eu.kanade.domain.backup.service.BackupPreferences
 | 
			
		||||
import eu.kanade.tachiyomi.data.notification.Notifications
 | 
			
		||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.notificationManager
 | 
			
		||||
import logcat.LogPriority
 | 
			
		||||
@@ -26,10 +26,10 @@ class BackupCreatorJob(private val context: Context, workerParams: WorkerParamet
 | 
			
		||||
    CoroutineWorker(context, workerParams) {
 | 
			
		||||
 | 
			
		||||
    override suspend fun doWork(): Result {
 | 
			
		||||
        val preferences = Injekt.get<PreferencesHelper>()
 | 
			
		||||
        val backupPreferences = Injekt.get<BackupPreferences>()
 | 
			
		||||
        val notifier = BackupNotifier(context)
 | 
			
		||||
        val uri = inputData.getString(LOCATION_URI_KEY)?.toUri()
 | 
			
		||||
            ?: preferences.backupsDirectory().get().toUri()
 | 
			
		||||
            ?: backupPreferences.backupsDirectory().get().toUri()
 | 
			
		||||
        val flags = inputData.getInt(BACKUP_FLAGS_KEY, BackupConst.BACKUP_ALL)
 | 
			
		||||
        val isAutoBackup = inputData.getBoolean(IS_AUTO_BACKUP_KEY, true)
 | 
			
		||||
 | 
			
		||||
@@ -54,8 +54,8 @@ class BackupCreatorJob(private val context: Context, workerParams: WorkerParamet
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        fun setupTask(context: Context, prefInterval: Int? = null) {
 | 
			
		||||
            val preferences = Injekt.get<PreferencesHelper>()
 | 
			
		||||
            val interval = prefInterval ?: preferences.backupInterval().get()
 | 
			
		||||
            val backupPreferences = Injekt.get<BackupPreferences>()
 | 
			
		||||
            val interval = prefInterval ?: backupPreferences.backupInterval().get()
 | 
			
		||||
            val workManager = WorkManager.getInstance(context)
 | 
			
		||||
            if (interval > 0) {
 | 
			
		||||
                val request = PeriodicWorkRequestBuilder<BackupCreatorJob>(
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ import com.hippo.unifile.UniFile
 | 
			
		||||
import data.Manga_sync
 | 
			
		||||
import data.Mangas
 | 
			
		||||
import eu.kanade.data.DatabaseHandler
 | 
			
		||||
import eu.kanade.domain.backup.service.BackupPreferences
 | 
			
		||||
import eu.kanade.domain.category.interactor.GetCategories
 | 
			
		||||
import eu.kanade.domain.category.model.Category
 | 
			
		||||
import eu.kanade.domain.history.model.HistoryUpdate
 | 
			
		||||
@@ -33,7 +34,6 @@ import eu.kanade.tachiyomi.data.backup.models.backupTrackMapper
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.Chapter
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.Manga
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.Track
 | 
			
		||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
 | 
			
		||||
import eu.kanade.tachiyomi.source.SourceManager
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.copyFrom
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.hasPermission
 | 
			
		||||
@@ -57,7 +57,7 @@ class BackupManager(
 | 
			
		||||
 | 
			
		||||
    private val handler: DatabaseHandler = Injekt.get()
 | 
			
		||||
    private val sourceManager: SourceManager = Injekt.get()
 | 
			
		||||
    private val preferences: PreferencesHelper = Injekt.get()
 | 
			
		||||
    private val backupPreferences: BackupPreferences = Injekt.get()
 | 
			
		||||
    private val libraryPreferences: LibraryPreferences = Injekt.get()
 | 
			
		||||
    private val getCategories: GetCategories = Injekt.get()
 | 
			
		||||
    private val getFavorites: GetFavorites = Injekt.get()
 | 
			
		||||
@@ -93,7 +93,7 @@ class BackupManager(
 | 
			
		||||
                    dir = dir.createDirectory("automatic")
 | 
			
		||||
 | 
			
		||||
                    // Delete older backups
 | 
			
		||||
                    val numberOfBackups = preferences.numberOfBackups().get()
 | 
			
		||||
                    val numberOfBackups = backupPreferences.numberOfBackups().get()
 | 
			
		||||
                    val backupRegex = Regex("""tachiyomi_\d+-\d+-\d+_\d+-\d+.proto.gz""")
 | 
			
		||||
                    dir.listFiles { _, filename -> backupRegex.matches(filename) }
 | 
			
		||||
                        .orEmpty()
 | 
			
		||||
 
 | 
			
		||||
@@ -2,15 +2,11 @@ package eu.kanade.tachiyomi.data.preference
 | 
			
		||||
 | 
			
		||||
import android.content.Context
 | 
			
		||||
import android.os.Build
 | 
			
		||||
import android.os.Environment
 | 
			
		||||
import androidx.core.net.toUri
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
import eu.kanade.tachiyomi.core.preference.PreferenceStore
 | 
			
		||||
import eu.kanade.tachiyomi.core.preference.getEnum
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.Manga
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.DeviceUtil
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.isDynamicColorAvailable
 | 
			
		||||
import java.io.File
 | 
			
		||||
import java.text.DateFormat
 | 
			
		||||
import java.text.SimpleDateFormat
 | 
			
		||||
import java.util.Locale
 | 
			
		||||
@@ -23,12 +19,6 @@ class PreferencesHelper(
 | 
			
		||||
    private val preferenceStore: PreferenceStore,
 | 
			
		||||
) {
 | 
			
		||||
 | 
			
		||||
    private val defaultBackupDir = File(
 | 
			
		||||
        Environment.getExternalStorageDirectory().absolutePath + File.separator +
 | 
			
		||||
            context.getString(R.string.app_name),
 | 
			
		||||
        "backup",
 | 
			
		||||
    ).toUri()
 | 
			
		||||
 | 
			
		||||
    fun confirmExit() = preferenceStore.getBoolean("pref_confirm_exit", false)
 | 
			
		||||
 | 
			
		||||
    fun sideNavIconAlignment() = preferenceStore.getInt("pref_side_nav_icon_alignment", 0)
 | 
			
		||||
@@ -47,8 +37,6 @@ class PreferencesHelper(
 | 
			
		||||
 | 
			
		||||
    fun lastVersionCode() = preferenceStore.getInt("last_version_code", 0)
 | 
			
		||||
 | 
			
		||||
    fun backupsDirectory() = preferenceStore.getString("backup_directory", defaultBackupDir.toString())
 | 
			
		||||
 | 
			
		||||
    fun relativeTime() = preferenceStore.getInt("relative_time", 7)
 | 
			
		||||
 | 
			
		||||
    fun dateFormat(format: String = preferenceStore.getString(Keys.dateFormat, "").get()): DateFormat = when (format) {
 | 
			
		||||
@@ -56,10 +44,6 @@ class PreferencesHelper(
 | 
			
		||||
        else -> SimpleDateFormat(format, Locale.getDefault())
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun numberOfBackups() = preferenceStore.getInt("backup_slots", 2)
 | 
			
		||||
 | 
			
		||||
    fun backupInterval() = preferenceStore.getInt("backup_interval", 12)
 | 
			
		||||
 | 
			
		||||
    fun downloadedOnly() = preferenceStore.getBoolean("pref_downloaded_only", false)
 | 
			
		||||
 | 
			
		||||
    fun automaticExtUpdates() = preferenceStore.getBoolean("automatic_ext_updates", true)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user