Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

キャッシュクリア機能追加 #718

Open
wants to merge 4 commits into
base: feature/miria_v2
Choose a base branch
from

Conversation

tacko-o
Copy link
Contributor

@tacko-o tacko-o commented Jan 9, 2025

#717
一時ファイルを削除するボタンを「設定>全般設定」の一番下に追加
キャッシュクリアに関するローカライゼーション用の文言の追加

【キャッシュクリア時のイメージ】
クリア前
before

クリア後 (8~30MB程度 一時ファイル以外のデータが残る模様)
after

全般設定にキャッシュクリア機能を追加
キャッシュクリアに関するl18n関連の文言追加
コメント脱字修正
不要なimport削除
@4ster1sk
Copy link
Contributor

Androidの場合、キャッシュファイル数が多いとサイズ計算にかなり時間がかかってしまって、全般設定画面がしばらくフリーズしてしまうので非同期で計算したほうがいいかも。

@poppingmoon
Copy link
Contributor

Directory.list(recursive: true)Directory.delete(recursive: true) を使うともう少しシンプルになると思います

画像のキャッシュを消すだけなら DefaultCacheManager().emptyCache() を使ってもいいかもしれません

@tacko-o
Copy link
Contributor Author

tacko-o commented Jan 12, 2025

Directory.list(recursive: true) Directory.delete(recursive: true)だとシンプルかつ非同期にできそうなので変えてみます
DefaultCacheManager().emptyCache()はドキュメントには「キャッシュを全部消す」と書いてはあるものの、実際にやってみたところキャッシュが保存されているディレクトリとその配下のファイルにはなんの変化も起こらず……
しばらく待ったりアプリを再起動したりしてみてもキャッシュが消える様子はなかったので、環境によっては(うちがmacだから?)うまく動かないのかもしれません
libCachedImageData/配下のファイルがキャッシュの大部分だと思うので、今回はこのディレクトリを直接削除するようにしてみます

キャッシュされたファイルが多いとキャッシュサイズ取得中にUIが固まってしまうため、キャッシュサイズ取得を非同期で行うように変更
同じ理由でキャッシュクリア時も非同期で行うように変更
getTemporaryDirectory()はLinuxだと/tmp/が返却されてしまうので、getTemporaryDirectory()配下のファイルをすべて削除するのではなくlibCachedImageData/のみを削除するように変更
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants