You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The purpose of the PendingTasksFactory is to construct instances of PendingTask subclasses when Wendy has decided it is time for that PendingTask to run.
Problems with PendingTasksFactory:
Boilerplate code to write
Annoying to maintain it each time you modify a PendingTask to add/remove/change dependencies.
Creates bugs if you forget to add to the PendingTasksFactory when you create new PendingTask subclasses
The reason PendingTask.tag exists is to be used with PendingTasksFactory. I describe thetag property as "in the way" as it doesn't identify the data and how it should be run by Wendy, it identifies the subclass. The tag is still required, but housing the information someway else would be a benefit to the API.
Can we remove the need to create a PendingTasksFactory?
No: As this issue explains, there needs to be a way to construct instances of each PendingTask along with their dependencies.
Yes: Maybe we could create a compile time annotation processor to generate a PendingTasksFactory for you? Android libraries, especially those like Moshi, are able to take a constructor of a class and generate code to construct instances of that class. Instead of using a PendingTask.tag property, we could create an annotation that has a property inside of that annotation for tag. This solution would cross off each item on the list above of problems with the factory.
The text was updated successfully, but these errors were encountered:
Some of the inspiration and design of the Wendy lib is from evernote/android-job. If you notice from the docs, it uses a tag/factory functionality as well to map a job to a string.
With that in mind, I am not sure if there is currently a way to fix this.
The purpose of the
PendingTasksFactory
is to construct instances ofPendingTask
subclasses when Wendy has decided it is time for thatPendingTask
to run.Problems with
PendingTasksFactory
:PendingTask
to add/remove/change dependencies.PendingTasksFactory
when you create newPendingTask
subclassesPendingTask.tag
exists is to be used withPendingTasksFactory
. I describe thetag
property as "in the way" as it doesn't identify the data and how it should be run by Wendy, it identifies the subclass. The tag is still required, but housing the information someway else would be a benefit to the API.Can we remove the need to create a
PendingTasksFactory
?No: As this issue explains, there needs to be a way to construct instances of each
PendingTask
along with their dependencies.Yes: Maybe we could create a compile time annotation processor to generate a
PendingTasksFactory
for you? Android libraries, especially those like Moshi, are able to take a constructor of a class and generate code to construct instances of that class. Instead of using aPendingTask.tag
property, we could create an annotation that has a property inside of that annotation fortag
. This solution would cross off each item on the list above of problems with the factory.The text was updated successfully, but these errors were encountered: