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