Open FooIbar opened 1 year ago
原因是 SharedPreferences
的 Editor.apply()
是立即写入内存,然后异步写入持久性储存
而使用 DataStore
作为后端的 DataStorePreferences
的数据修改是完全异步的
https://github.com/LouisCAD/Splitties/blob/0e4fcbf67c8aea591068366f7736499fbd77f565/modules/preferences/src/androidMain/kotlin/splitties/preferences/DataStorePreferencesImpl.kt#L153
复现步骤 / Step to reproduce
预期行为 / Expected behaviour
成功切换
实际行为 / Actual Behaviour
https://github.com/Ehviewer-Overhauled/Ehviewer/blob/d4d6fe56a949acc3b132069dc6ebcf0725df7de1/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt#L735 这里设置了阅读模式后 https://github.com/Ehviewer-Overhauled/Ehviewer/blob/d4d6fe56a949acc3b132069dc6ebcf0725df7de1/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt#L352 这里拿到的是过时数据
应用日志 / App logs
备注 / Addition details
No response
EhViewer 版本号 / EhViewer version code
1.8.9.0-SNAPSHOT
EhViewer CI 版本 / EhViewer CI Version
740fff2
Android 系统版本 / Android version
PixelExperience 11
设备型号 / Device model
Moto Z2 Play
SoC 型号 / Soc model
Snapdragon 626
自查步骤 / Verify steps