Fix path to Preference file if it contains a invalid path character (#750)

* Fix path to shared preference files if it contains a invalid character

* Lint
This commit is contained in:
Mitchell Syer
2023-11-04 18:10:58 -04:00
committed by GitHub
parent 8a4c717d24
commit 16dbad8bdf
3 changed files with 9 additions and 3 deletions
@@ -19,6 +19,7 @@ import kotlinx.serialization.SerializationException
import kotlinx.serialization.builtins.SetSerializer import kotlinx.serialization.builtins.SetSerializer
import kotlinx.serialization.builtins.serializer import kotlinx.serialization.builtins.serializer
import mu.KotlinLogging import mu.KotlinLogging
import xyz.nulldev.androidcompat.util.SafePath
import xyz.nulldev.ts.config.ApplicationRootDir import xyz.nulldev.ts.config.ApplicationRootDir
import java.util.Properties import java.util.Properties
import kotlin.io.path.Path import kotlin.io.path.Path
@@ -34,7 +35,12 @@ class JavaSharedPreferences(key: String) : SharedPreferences {
private val logger = KotlinLogging.logger {} private val logger = KotlinLogging.logger {}
} }
private val file = Path(ApplicationRootDir, "settings", "$key.xml") private val file =
Path(
ApplicationRootDir,
"settings",
"${SafePath.buildValidFilename(key)}.xml",
)
private val properties = private val properties =
Properties().also { properties -> Properties().also { properties ->
try { try {
@@ -1,4 +1,4 @@
package suwayomi.tachidesk.manga.impl.util.storage package xyz.nulldev.androidcompat.util
/* /*
* Copyright (C) Contributors to the Suwayomi project * Copyright (C) Contributors to the Suwayomi project
@@ -14,10 +14,10 @@ import org.kodein.di.DI
import org.kodein.di.conf.global import org.kodein.di.conf.global
import org.kodein.di.instance import org.kodein.di.instance
import suwayomi.tachidesk.manga.impl.util.source.GetCatalogueSource import suwayomi.tachidesk.manga.impl.util.source.GetCatalogueSource
import suwayomi.tachidesk.manga.impl.util.storage.SafePath
import suwayomi.tachidesk.manga.model.table.ChapterTable import suwayomi.tachidesk.manga.model.table.ChapterTable
import suwayomi.tachidesk.manga.model.table.MangaTable import suwayomi.tachidesk.manga.model.table.MangaTable
import suwayomi.tachidesk.server.ApplicationDirs import suwayomi.tachidesk.server.ApplicationDirs
import xyz.nulldev.androidcompat.util.SafePath
import java.io.File import java.io.File
private val applicationDirs by DI.global.instance<ApplicationDirs>() private val applicationDirs by DI.global.instance<ApplicationDirs>()