-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Description
Reproduction Steps
- Start a full sync
- Switch to dark mode or light mode
Actual Result
Expected result
In an ideal world, we would want the UI to become dark/light while the full sync still goes on.
I don't think that's possible. Instead of recreating the UI, it would mean updating all components. The amount of work would not be reasonable for this kind of task.
Full sync is potentially a very expensive operation. It requires to sync a lot of data, so can cost a lot of money, can drain the battery. So we should avoid cancelling it. So the priority is to avoid interrupting the sync. If it means that we don't change the UI and stay in light/dark mode, so be it. At least until the sync is done. Once the sync is done, please be sure to refresh the UI.
I don't actually know if it's possible to catch the refresh of the UI and cancel it. If it's not possible, then we need to at least ensure that when the UI is recreated, a new sync is started instead of showing this error. Please try to ensure that sync is really restarted, don't silently cancel it. The user should know that, unless there is an error message, they can assume the sync was done correctly. So just removing this error message without showing anything instead would be worse than the current situation.
If for some reason you can't even restart the sync (I doubt that's realistically a concern), at least show a message that can be understood by users.
Now, what does it means to "restart the sync". In an ideal world, you would remember whether it was a normal sync, a full upload or a full download, and directly restart this particular kind of sync. If it's too hard, and a full sync is needed, don't hesitate to ask the user whether they want to upload or download. That is, you can juste reuse the method that the automated sync use. This bug is probably rare enough that having the user repeat their choice is an acceptable cost.
Debug info
Refer to the support page if you are unsure where to get the "debug info".
AnkiDroid Version = 2.17alpha13 (51186fd)
Backend Version = 0.1.32-anki23.10.1 (23.10.1 fac9e0e)
Android Version = 14 (SDK 34)
ProductFlavor = play
Manufacturer = Google
Model = Pixel 8 Pro
Hardware = husky
Webview User Agent = Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro Build/UD1A.231105.004; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.6099.43 Mobile Safari/537.36
ACRA UUID = 47035a3d-ff8b-4423-8485-1d6d82d48957
Crash Reports Enabled = true
