-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Annotation processing #489
Comments
Can you send me a link to a simple project that uses it so I can see what you mean. |
This is my standard acra test module. I keep it parallel to acra, so it's not a project, but a gradle module. acratest.zip |
Or for convenience, here is the full gradle project including acra and the compiler. Acra.zip |
I've had some time and created code for the dialog too. It has just one problem: Configuration at runtime (using ConfigurationBuilder) will not work (as it is impossible to discover a runtime call at compile time). |
Is your last comment still relevant for #502 ? |
No. The dialog can be configured in any of the old ways. However, if it should be processed by the compiler, it should not be configured by any of the old ways and instead annotated with @AcraDialog. By the way, would you favor @ACRADialog? It is consistent with other class names, however I was taught to not capitalize acronyms. |
I recently discovered the power of annotation processing. I think this could be of help with the inheritance problems we had in the recent past, because it allows us to subclass the users classes instead of requiring the opposite.
(Also compile time annotation processing gives a small performance boost.)
For now I have a project here and here is the respective acra branch.
How this is used:
If this is well received, I'll add similar code for the CrashReportDialog, which will allow users to choose any superclass.
Some more interesting points:
The text was updated successfully, but these errors were encountered: