diff --git a/app/build.gradle b/app/build.gradle
index 24e2d0f9..47dd0fd6 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,7 +20,7 @@ android {
minSdkVersion 16
targetSdkVersion 29
versionCode 57
- versionName "4.19-hotfix1"
+ versionName "4.19-hotfix3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json
index 7f90aa3e..286525d2 100644
--- a/app/release/output-metadata.json
+++ b/app/release/output-metadata.json
@@ -12,7 +12,7 @@
"filters": [],
"properties": [],
"versionCode": 57,
- "versionName": "4.19-hotfix1",
+ "versionName": "4.19-hotfix3",
"enabled": true,
"outputFile": "app-release.apk"
}
diff --git a/app/src/androidTest/java/xyz/quaver/pupil/ExampleInstrumentedTest.kt b/app/src/androidTest/java/xyz/quaver/pupil/ExampleInstrumentedTest.kt
index b3661f2f..b3609476 100644
--- a/app/src/androidTest/java/xyz/quaver/pupil/ExampleInstrumentedTest.kt
+++ b/app/src/androidTest/java/xyz/quaver/pupil/ExampleInstrumentedTest.kt
@@ -21,7 +21,6 @@
package xyz.quaver.pupil
import android.util.Log
-import androidx.core.content.ContextCompat
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.ActivityTestRule
@@ -36,6 +35,8 @@ import xyz.quaver.hiyobi.user_agent
import xyz.quaver.pupil.ui.LockActivity
import xyz.quaver.pupil.util.download.Cache
import xyz.quaver.pupil.util.download.DownloadWorker
+import xyz.quaver.pupil.util.getDownloadDirectory
+import java.io.InputStreamReader
import java.net.URL
import javax.net.ssl.HttpsURLConnection
@@ -58,8 +59,10 @@ class ExampleInstrumentedTest {
val activityTestRule = ActivityTestRule(LockActivity::class.java)
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
- ContextCompat.getExternalFilesDirs(appContext, null).forEachIndexed { index, file ->
- Log.i("PUPILD", "$index: ${file?.absolutePath}")
+ Runtime.getRuntime().exec("du -hs " + getDownloadDirectory(appContext)).let {
+ InputStreamReader(it.inputStream).readLines().forEach { res ->
+ Log.i("PUPILD", res)
+ }
}
}
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 d975355d..0fa2e68b 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
@@ -33,6 +33,9 @@ import androidx.preference.PreferenceCategory
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
import com.google.android.material.snackbar.Snackbar
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
import net.rdrei.android.dirchooser.DirectoryChooserActivity
import net.rdrei.android.dirchooser.DirectoryChooserConfig
import xyz.quaver.pupil.Pupil
@@ -44,7 +47,9 @@ import xyz.quaver.pupil.ui.dialog.DownloadLocationDialog
import xyz.quaver.pupil.ui.dialog.MirrorDialog
import xyz.quaver.pupil.ui.dialog.ProxyDialog
import xyz.quaver.pupil.util.*
+import java.io.BufferedReader
import java.io.File
+import java.io.InputStreamReader
class SettingsFragment :
@@ -74,9 +79,13 @@ class SettingsFragment :
}
private fun getDirSize(dir: File) : String {
- val size = dir.walk().map { it.length() }.sum()
-
- return getString(R.string.settings_clear_summary, byteToString(size))
+ return getString(R.string.settings_storage_usage,
+ Runtime.getRuntime().exec("du -hs " + dir.absolutePath).let {
+ BufferedReader(InputStreamReader(it.inputStream)).use { reader ->
+ reader.readLine().split('\t').firstOrNull() ?: "0"
+ }
+ }
+ )
}
override fun onPreferenceClick(preference: Preference?): Boolean {
@@ -97,7 +106,13 @@ class SettingsFragment :
if (dir.exists())
dir.deleteRecursively()
- summary = getDirSize(dir)
+ CoroutineScope(Dispatchers.IO).launch {
+ summary = getString(R.string.settings_storage_usage_loading)
+
+ launch(Dispatchers.Main) {
+ this@with.summary = getDirSize(dir)
+ }
+ }
}
setNegativeButton(android.R.string.no) { _, _ -> }
}.show()
@@ -112,7 +127,13 @@ class SettingsFragment :
if (dir.exists())
dir.deleteRecursively()
- summary = getDirSize(dir)
+ CoroutineScope(Dispatchers.IO).launch {
+ summary = getString(R.string.settings_storage_usage_loading)
+
+ launch(Dispatchers.Main) {
+ this@with.summary = getDirSize(dir)
+ }
+ }
}
setNegativeButton(android.R.string.no) { _, _ -> }
}.show()
@@ -276,13 +297,27 @@ class SettingsFragment :
}
"delete_cache" -> {
val dir = File(requireContext().cacheDir, "imageCache")
- summary = getDirSize(dir)
+
+ CoroutineScope(Dispatchers.IO).launch {
+ summary = getString(R.string.settings_storage_usage_loading)
+
+ launch(Dispatchers.Main) {
+ this@with.summary = getDirSize(dir)
+ }
+ }
onPreferenceClickListener = this@SettingsFragment
}
"delete_downloads" -> {
val dir = getDownloadDirectory(requireContext())
- summary = getDirSize(dir)
+
+ CoroutineScope(Dispatchers.IO).launch {
+ summary = getString(R.string.settings_storage_usage_loading)
+
+ launch(Dispatchers.Main) {
+ this@with.summary = getDirSize(dir)
+ }
+ }
onPreferenceClickListener = this@SettingsFragment
}
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 9a0f825e..a05a6391 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -9,7 +9,8 @@
ギャラリー検索
キャッシュクリア
キャッシュをクリアするとイメージのロード速度に影響を与えます。実行しますか?
- サイズ: %s
+ %s使用中
+ ストレージ使用量読み込み中…
デフォルトキーワード
一回にロードするギャラリー数
検索設定
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 4c065d0b..6b8ec322 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -8,7 +8,8 @@
기본 검색어
캐시 정리하기
캐시를 정리하면 이미지 로딩속도가 느려질 수 있습니다. 계속하시겠습니까?
- 사용량: %s
+ %s 사용중
+ 저장공간 사용량 계산 중…
한 번에 로드할 갤러리 수
검색 설정
설정
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f1765704..f23b1e29 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -142,9 +142,10 @@
Storage
+ Currently using %s
+ Calculating storage usage…
Clear cache
Deleting cache can affect image loading speed. Do you want to continue?
- Currently using %s
Clear downloads
Delete all downloaded galleries.\nDo you want to continue?
Clear history