-
Notifications
You must be signed in to change notification settings - Fork 259
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
Refactoring & some features #931
Conversation
519c423
to
2a6334e
Compare
Time for some details. As was mentioned in #930, the use of generic fields is not exactly obvious. Unfortunately, greenDAO doesn't support entity inheritance, so I added (6779550) "view" classes that encapsulate operation-specific logic and provide better API to the I wanted to deal with similar problem in One of the most prominent mistake I made when I originally wrote all that offline synchronization stuff was that some DB writing was still happening in the main (UI) thread (#880). Even if the operations are tiny, they get stuck if there are other background writes (background sync, etc.) for the whole duration of those background transactions. So I decided to move all DB writing from UI. Most of the operations can be scheduled using A lot of refactoring followed: implementation of better parcelable tasks and move of the majority of old operations to these tasks, splitting of old services into separate classes and some other stuff. I also rewrote "offline queue" optimization: previously it was removing/merging related changes during addition to queue, now it is done during queue sync. This allows to add new queue items even if there's a sync in progress (new items won't be processed right away, but neither they'll break anything). This also removed a lot of code duplication. The codebase still leaves a lot to be desired, but it's way better than before (for one, you can follow an operation from its entry point (in Oh, there's one problem though: the changes may be delayed. For example, if there's a long sync in the background and a user marks an article as favorite and then presses "mark as read", in the lists the article will still appear neither favorited nor read until the background operation is finished. Still an improvement over ANR. Improving long operations should help. I plan to do some more changes, but everything should be already working. |
@tcitworld can you shed some light on release plans? It is problematic to write new stuff when older changes weren't even beta tested. |
Unfortunately there's been nearly no activity lately, apart from @Kdecherf, so no idea. https://app.wallabag.it is running on |
I meant the android app release plans. |
c6593d1
to
f95fac0
Compare
|
@di72nn Please rebase and then we'll get this in. |
@tcitworld there's a lot of changes in the master already, can you release a beta? It would be great to have a release before merging this. |
okay let's try this |
f979b46
to
c7385e6
Compare
b77fbeb
to
3cbb437
Compare
Moved all the commits from #945 here, because it's effectively the same PR now. |
GPlay Console shows 107 "installs on active devices" for the latest beta, and no new crashes. @tcitworld I think this PR is ready for another beta. |
377e67d
to
66afba9
Compare
Also extract action strings
Also fix a foreground service-related crash
FFS, Android...
01b7350
to
d195215
Compare
Updated some minor things. Sorry for all this history-rewriting noise - I figure it's better to fix things right where they were introduced. |
So far the app works as expected in my daily usage. TTS not tested yet. |
@tcitworld any news on the review? |
I started fixing bad fields usage in
QueueItem
, one thing led to another, and it seems I'm fixing #880 (I actually did, but there's still a lot of redundancy to remove).The PR includes #930, but I'll leave it be for the time being.
I'll add some explanation later.