Skip to content

Commit

Permalink
refactor: slightly change the base data syncing logic
Browse files Browse the repository at this point in the history
  • Loading branch information
WhiredPlanck committed Aug 9, 2024
1 parent 9a31e83 commit 2cc78e9
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 33 deletions.
4 changes: 2 additions & 2 deletions app/src/main/java/com/osfans/trime/data/base/DataManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,10 @@ object DataManager {
when (it) {
is DataDiff.CreateFile,
is DataDiff.UpdateFile,
-> ResourceUtils.copyFile(it.path, sharedDataDir, "rime/")
-> ResourceUtils.copyFile(it.path, sharedDataDir, true)
is DataDiff.DeleteDir,
is DataDiff.DeleteFile,
-> FileUtils.delete(sharedDataDir.resolve(it.path.removePrefix("rime/"))).getOrThrow()
-> FileUtils.delete(sharedDataDir.resolve(it.path.substringAfterLast('/'))).getOrThrow()
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,11 +207,7 @@ class ProfileFragment :
res =
items.filterIndexed { index, _ -> checkedItems[index] }
.fold(true) { acc, asset ->
ResourceUtils.copyFiles(
"$rimeFolder/$asset",
DataManager.sharedDataDir,
"$rimeFolder/",
)
ResourceUtils.copyFile("$rimeFolder/$asset", DataManager.sharedDataDir, true)
.fold({ acc and true }, { acc and false })
}
}
Expand Down
36 changes: 11 additions & 25 deletions app/src/main/java/com/osfans/trime/util/ResourceUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,24 @@ import java.io.File

object ResourceUtils {
fun copyFile(
filename: String,
path: String,
dest: File,
removedPrefix: String = "",
) = runCatching {
appContext.assets.open(filename).use { i ->
File(dest, filename.removePrefix(removedPrefix))
.also { it.parentFile?.mkdirs() }
.outputStream()
.use { o -> i.copyTo(o) }
}
}.onFailure { Timber.e(it, "Caught a error in copying assets") }

fun copyFiles(
assetPath: String,
destFile: File,
removedPrefix: String = "",
): Result<Long> {
return runCatching {
val formattedDestPath = assetPath.removePrefix(removedPrefix)
val files = appContext.assets.list(assetPath)
if (files?.isNotEmpty() == true) {
files.fold(0L) { acc, file ->
acc + copyFiles("$assetPath/$file", File(destFile, formattedDestPath), file).getOrDefault(0L)
baseToDest: Boolean = false,
): Result<Long> =
runCatching {
val destFileName = if (baseToDest) path.substringAfterLast('/') else path
val assets = appContext.assets.list(path)
if (!assets.isNullOrEmpty()) {
assets.fold(0L) { acc, asset ->
acc + copyFile("$path/$asset", File(dest, destFileName), baseToDest).getOrDefault(0L)
}
} else {
appContext.assets.open(assetPath).use { i ->
File(destFile, formattedDestPath.split(File.pathSeparator).last())
appContext.assets.open(path).use { i ->
File(dest, destFileName)
.also { it.parentFile?.mkdirs() }
.outputStream()
.use { o -> i.copyTo(o) }
}
}
}.onFailure { Timber.e(it, "Caught a error in copying assets") }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class DataChecksumsPlugin : Plugin<Project> {

override fun apply(target: Project) {
target.task<DataChecksumsTask>(TASK) {
inputDir.set(target.assetsDir)
inputDir.set(target.assetsDir.resolve("rime"))
outputFile.set(target.assetsDir.resolve(FILE_NAME))
}
target.task<Delete>(CLEAN_TASK) {
Expand Down

0 comments on commit 2cc78e9

Please sign in to comment.