From e551a40d08b415b80c0645648e8261f52cb06e82 Mon Sep 17 00:00:00 2001 From: Pupil Date: Sun, 9 Feb 2020 18:13:16 +0900 Subject: [PATCH] Fixed renamed file --- app/build.gradle | 4 ++-- .../xyz/quaver/pupil/ui/fragment/SettingsFragment.kt | 7 ++++++- .../main/java/xyz/quaver/pupil/util/download/Cache.kt | 7 ++++++- app/src/main/java/xyz/quaver/pupil/util/file.kt | 11 ++++++++--- app/src/main/java/xyz/quaver/pupil/util/update.kt | 7 ++++++- 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index bde1eed9..24ded077 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,8 +19,8 @@ android { applicationId "xyz.quaver.pupil" minSdkVersion 16 targetSdkVersion 29 - versionCode 36 - versionName "5.3-beta3" + versionCode 37 + versionName "5.4" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/xyz/quaver/pupil/ui/fragment/SettingsFragment.kt b/app/src/main/java/xyz/quaver/pupil/ui/fragment/SettingsFragment.kt index e7c76069..98e29b6f 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/fragment/SettingsFragment.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/fragment/SettingsFragment.kt @@ -150,7 +150,12 @@ class SettingsFragment : "backup" -> { File(ContextCompat.getDataDir(context), "favorites.json").copyTo( context, - getDownloadDirectory(context).createFile("null", "favorites.json")!! + getDownloadDirectory(context).let { + if (it.findFile("favorites.json") != null) + it + else + it.createFile("null", "favorites.json")!! + } ) Snackbar.make(this@SettingsFragment.listView, R.string.settings_backup_snackbar, Snackbar.LENGTH_LONG) diff --git a/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt b/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt index fdbf3019..0224c36d 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/download/Cache.kt @@ -206,7 +206,12 @@ class Cache(context: Context) : ContextWrapper(context) { if (!Regex("""^[0-9]+.+$""").matches(name)) throw IllegalArgumentException("File name is not a number") - cache.createFile("null", name)?.writeBytes(this, data) + cache.let { + if (it.findFile(name) != null) + it + else + it.createFile("null", name) + }?.writeBytes(this, data) } fun moveToDownload(galleryID: Int) { diff --git a/app/src/main/java/xyz/quaver/pupil/util/file.kt b/app/src/main/java/xyz/quaver/pupil/util/file.kt index 137cc8d4..a27629c0 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/file.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/file.kt @@ -104,12 +104,17 @@ fun DocumentFile.copyRecursively( if (!exists()) throw Exception("The source file doesn't exist.") - if (this.isFile) - target.createFile("null", name!!)!!.writeBytes( + if (this.isFile) { + target.let { + if (it.findFile(name!!) != null) + it + else + createFile("null", name!!)!! + }.writeBytes( context, readBytes(context) ) - else if (this.isDirectory) { + } else if (this.isDirectory) { target.createDirectory(name!!).also { newTarget -> listFiles().forEach { child -> child.copyRecursively(context, newTarget!!) diff --git a/app/src/main/java/xyz/quaver/pupil/util/update.kt b/app/src/main/java/xyz/quaver/pupil/util/update.kt index 820e24fe..51847f41 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/update.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/update.kt @@ -146,7 +146,12 @@ fun checkUpdate(context: AppCompatActivity, force: Boolean = false) { } CoroutineScope(Dispatchers.IO).launch io@{ - val target = getDownloadDirectory(context)?.createFile("null", "Pupil.apk")!! + val target = getDownloadDirectory(context).let { + if (it.findFile("Pupil.apk") != null) + it + else + it.createFile("null", "Pupil.apk")!! + } try { URL(url).download(context, target) { progress, fileSize ->