Ehviewer-Overhauled / Ehviewer

EhViewer overhauled with Material Design 3, Jetpack Compose and more
GNU General Public License v3.0
5.15k stars 231 forks source link

阅读设置切换失效 #1239

Open FooIbar opened 1 year ago

FooIbar commented 1 year ago

复现步骤 / Step to reproduce

  1. 打开画廊
  2. 切换阅读模式

预期行为 / 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

2023-07-10 14:07:56.602 12405-12405 ReaderActivity          moe.tarsin.ehviewer.debug            D  Get: DEFAULT
2023-07-10 14:07:56.644 12405-12405 L2RPagerViewer          moe.tarsin.ehviewer.debug            D  setChaptersInternal
2023-07-10 14:07:56.646 12405-12405 L2RPagerViewer          moe.tarsin.ehviewer.debug            D  Pager first layout
2023-07-10 14:07:56.646 12405-12405 L2RPagerViewer          moe.tarsin.ehviewer.debug            D  moveToPage 1
2023-07-10 14:08:06.447 12405-12405 MenuItemImpl            moe.tarsin.ehviewer.debug            D  Set: WEBTOON
2023-07-10 14:08:06.448 12405-12405 ReaderActivity          moe.tarsin.ehviewer.debug            D  Get: DEFAULT

备注 / 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

FooIbar commented 1 year ago

原因是 SharedPreferencesEditor.apply() 是立即写入内存,然后异步写入持久性储存 而使用 DataStore 作为后端的 DataStorePreferences 的数据修改是完全异步的 https://github.com/LouisCAD/Splitties/blob/0e4fcbf67c8aea591068366f7736499fbd77f565/modules/preferences/src/androidMain/kotlin/splitties/preferences/DataStorePreferencesImpl.kt#L153