mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2024-12-17 17:20:21 +01:00
changes
This commit is contained in:
+2
@@ -19,6 +19,8 @@ actual val wallpapersDir: File = File(filesDir.absolutePath + File.separator + "
|
||||
actual val coreTmpDir: File = File(filesDir.absolutePath + File.separator + "temp_files")
|
||||
actual val dbAbsolutePrefixPath: String = dataDir.absolutePath + File.separator + "files"
|
||||
actual val preferencesDir = File(dataDir.absolutePath + File.separator + "shared_prefs")
|
||||
actual val preferencesTmpDir = File(tmpDir, "settings_tmp")
|
||||
.also { it.deleteRecursively() }
|
||||
|
||||
actual val chatDatabaseFileName: String = "files_chat.db"
|
||||
actual val agentDatabaseFileName: String = "files_agent.db"
|
||||
|
||||
+19
-9
@@ -3,7 +3,7 @@ package chat.simplex.common.platform
|
||||
import androidx.compose.runtime.Composable
|
||||
import chat.simplex.common.model.*
|
||||
import chat.simplex.common.ui.theme.*
|
||||
import chat.simplex.common.views.helpers.generalGetString
|
||||
import chat.simplex.common.views.helpers.*
|
||||
import chat.simplex.res.MR
|
||||
import com.charleskorn.kaml.*
|
||||
import kotlinx.serialization.encodeToString
|
||||
@@ -11,6 +11,8 @@ import java.io.*
|
||||
import java.net.URI
|
||||
import java.net.URLDecoder
|
||||
import java.net.URLEncoder
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.StandardCopyOption
|
||||
|
||||
expect val dataDir: File
|
||||
expect val tmpDir: File
|
||||
@@ -20,6 +22,7 @@ expect val wallpapersDir: File
|
||||
expect val coreTmpDir: File
|
||||
expect val dbAbsolutePrefixPath: String
|
||||
expect val preferencesDir: File
|
||||
expect val preferencesTmpDir: File
|
||||
|
||||
expect val chatDatabaseFileName: String
|
||||
expect val agentDatabaseFileName: String
|
||||
@@ -142,16 +145,23 @@ fun readThemeOverrides(): List<ThemeOverrides> {
|
||||
}
|
||||
}
|
||||
|
||||
private const val lock = "themesWriter"
|
||||
|
||||
fun writeThemeOverrides(overrides: List<ThemeOverrides>): Boolean =
|
||||
try {
|
||||
File(getPreferenceFilePath("themes.yaml")).outputStream().use {
|
||||
val string = yaml.encodeToString(ThemesFile(themes = overrides))
|
||||
it.bufferedWriter().use { it.write(string) }
|
||||
synchronized(lock) {
|
||||
try {
|
||||
val themesFile = File(getPreferenceFilePath("themes.yaml"))
|
||||
createTmpFileAndDelete(preferencesTmpDir) { tmpFile ->
|
||||
val string = yaml.encodeToString(ThemesFile(themes = overrides))
|
||||
tmpFile.bufferedWriter().use { it.write(string) }
|
||||
themesFile.parentFile.mkdirs()
|
||||
Files.move(tmpFile.toPath(), themesFile.toPath(), StandardCopyOption.REPLACE_EXISTING)
|
||||
}
|
||||
true
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "Error writing themes file: ${e.stackTraceToString()}")
|
||||
false
|
||||
}
|
||||
true
|
||||
} catch (e: Throwable) {
|
||||
Log.e(TAG, "Error while writing themes file: ${e.stackTraceToString()}")
|
||||
false
|
||||
}
|
||||
|
||||
private fun fileReady(file: CIFile, filePath: String) =
|
||||
|
||||
+1
@@ -318,6 +318,7 @@ fun removeWallpaperFile(fileName: String? = null) {
|
||||
|
||||
fun <T> createTmpFileAndDelete(dir: File = tmpDir, onCreated: (File) -> T): T {
|
||||
val tmpFile = File(dir, UUID.randomUUID().toString())
|
||||
tmpFile.parentFile.mkdirs()
|
||||
tmpFile.deleteOnExit()
|
||||
ChatModel.filesToDelete.add(tmpFile)
|
||||
try {
|
||||
|
||||
+2
@@ -17,6 +17,8 @@ actual val wallpapersDir: File = File(dataDir.absolutePath + File.separator + "s
|
||||
actual val coreTmpDir: File = File(dataDir.absolutePath + File.separator + "tmp")
|
||||
actual val dbAbsolutePrefixPath: String = dataDir.absolutePath + File.separator + "simplex_v1"
|
||||
actual val preferencesDir = File(desktopPlatform.configPath).also { it.parentFile.mkdirs() }
|
||||
actual val preferencesTmpDir = File(desktopPlatform.configPath, "tmp")
|
||||
.also { it.deleteRecursively() }
|
||||
|
||||
actual val chatDatabaseFileName: String = "simplex_v1_chat.db"
|
||||
actual val agentDatabaseFileName: String = "simplex_v1_agent.db"
|
||||
|
||||
+5
-11
@@ -36,18 +36,10 @@ catch (e: Exception) {
|
||||
false
|
||||
}
|
||||
|
||||
private val settingsTmpDir = File(desktopPlatform.configPath, "tmp")
|
||||
.also {
|
||||
it.deleteRecursively()
|
||||
it.mkdirs()
|
||||
}
|
||||
|
||||
private val settingsFile =
|
||||
File(desktopPlatform.configPath + File.separator + "settings.properties")
|
||||
.also { it.parentFile.mkdirs() }
|
||||
private val settingsThemesFile =
|
||||
File(desktopPlatform.configPath + File.separator + "themes.properties")
|
||||
.also { it.parentFile.mkdirs() }
|
||||
|
||||
private val settingsProps =
|
||||
Properties()
|
||||
@@ -68,12 +60,13 @@ private val settingsThemesProps =
|
||||
Properties()
|
||||
.also { props -> try { settingsThemesFile.reader().use { props.load(it) } } catch (e: Exception) { /**/ } }
|
||||
|
||||
private val lock = "settingsSaver"
|
||||
private const val lock = "settingsSaver"
|
||||
actual val settings: Settings = PropertiesSettings(settingsProps) {
|
||||
synchronized(lock) {
|
||||
try {
|
||||
createTmpFileAndDelete(settingsTmpDir) { tmpFile ->
|
||||
createTmpFileAndDelete(preferencesTmpDir) { tmpFile ->
|
||||
tmpFile.writer().use { settingsProps.store(it, "") }
|
||||
settingsFile.parentFile.mkdirs()
|
||||
Files.move(tmpFile.toPath(), settingsFile.toPath(), StandardCopyOption.REPLACE_EXISTING)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
@@ -85,8 +78,9 @@ actual val settings: Settings = PropertiesSettings(settingsProps) {
|
||||
actual val settingsThemes: Settings = PropertiesSettings(settingsThemesProps) {
|
||||
synchronized(lock) {
|
||||
try {
|
||||
createTmpFileAndDelete(settingsTmpDir) { tmpFile ->
|
||||
createTmpFileAndDelete(preferencesTmpDir) { tmpFile ->
|
||||
tmpFile.writer().use { settingsThemesProps.store(it, "") }
|
||||
settingsThemesFile.parentFile.mkdirs()
|
||||
Files.move(tmpFile.toPath(), settingsThemesFile.toPath(), StandardCopyOption.REPLACE_EXISTING)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
|
||||
Reference in New Issue
Block a user