ReleaseNotes - PerfectCarl/androidannotations GitHub Wiki
Thanks a lot to all the contributors!
Releases are available as standalone jars or via Maven.
Upcoming release: 3.0 #
-
#369 Renamed groupId and packages from
com.googlecode.androidannotations
toorg.androidannotations
- #410 The API helpers are generated at compile time if needed instead of being part of the API jar. A vérifier !
- #330 Add support of generics on RestTemplate methods
-
#376 Add
@CustomTitle
annotation -
#382
@OnActivityResult
can be used within fragments -
#389 Add
@CheckedChange
annotation - #417 Handle missing manifest or R class
- #442 Generate public constant for handled extras
-
#459 Add
@FocusChange
and@CheckedChange
annotations -
#469 Extended
@OrmLiteDao
support for every enhanced components -
#474 Handle multiple
@OptionsMenu
in the class hierarchy -
#477 A parameter can be used twice in
@Rest
methods urls -
#485 Add an
interceptors
field in@Rest
annotation -
#489 Make HierarchyViewer work on any device with
@HierarchyViewerSupport
-
#490 Check that AndroidManifest contains internet permission if
@Rest
is used -
#499 Add a
stop()
method for enhanced services -
#515
@App
never injects null - #522 GreenDroid support is deprecated and will be dropped on the next release.
-
#525 Add delay field in
@Background
- #526 Otto integration
-
#554 Expose the shared pref key in
@SharedPreference
generated class -
#567 Add an
@OptionMenuItem
annotation to inject MenuItem - #569 Handle background tasks cancellation
- #581 Resource injection for SharedPreferences
-
#601 Handle enhanced IntentService. Add
@EIntentService
and@ServiceAction
annotations -
#602 Handle
getRootUrl()
method inRest
interface - #605 Add check in UIThread generated code to reuse current thread if possible
- #609 Add processor option to specify package of R class
-
#615 Add
@WindowFeature
annotation - #617 Fix NullPointerException thrown during refactoring
-
#629 Handle RuntimeExceptionDao in
@OrmLiteDao
-
#680 Fix
IntentBuilder.startForResult()
for Fragment -
#710 Inject
android.content.ClipboardManage
instead ofandroid.text.ClipboardManager
with@SystemService
-
#579 #711 #748 #818 Add annotations to manage cookies and headers in
@Rest
interface - #429 #786 Integration with HoloEverywhere
-
#492 #496 Fix code generation for
@Get
Http Method in the Rest API if params are generics
- #424 Changing processing order: ancestors first
- #453 Use canonical names in AA core instead of harcoded class names
- #495 Added some tests around rest API
- #497 Optimize build time by updating the maven-javadoc-plugin
-
#511 Check for
TypeKind.ERROR
in addition to ErrorType in case of errors -
#521 Declare supported options in
getSupportedOptions()
- #562 Handle objects implementing both Serializable and Parcelable in extra
-
#593 Fixed NPE when converters are not defined in the
@Rest
annotation -
#597 Use
DatabaseHelper.getDao()
instead ofDaoManager.createDao()
for@OrmLiteDao
implementation - #618 Enhanced crash report message
- #619 Refactor AndroidAnnotations core to handle validation and processing in same class
-
#627 Fix
@ItemClick
generation code with parametrized types -
#678 Log a warning if
@RootContext
field isn't populated -
#694 Associate the
@UIThread
handler to the main thread - #733 Fix extra injection generated code
- #734 Check that API and core version matches
-
#736 Allow any order for params in a
@Touch
annotated method -
#747 Fix code generation for
@EFragment
in Froyo - #785 Ignore Internet permission check in library project
- #792 Fix StackOverflowError with cyclic dependencies with singleton beans
- #794 Add custom logger
-
#677 #682 Propagate exceptions on
@Background
/@UIThread
annotated methods
- Damien Villeneuve @DayS
- Pierre-Yves Ricau: @pyricau
- Mathieu Boniface: @matboniface
- Illia Bershadskyi: @Bersh
- Thomas Fondrillon: @ThomasFondrillon
- Colin Edwards: @DDRBoxman
- Rostislav Chekan: @naixx
- Yoann Delouis: @yDelouis
- Michael Greifeneder: @mikegr
- Kolja Markwardt @KoljaTM
- Alexis THOMAS: @ath0mas
- @gebing
- Rocky D. Pulley: @rockytriton
- Adrian Roos: @adrianroos
- Romain Vimont: @rom1v
- @simonz
- Thomas Bruyelle: @tbruyelle
- Lalith B: @deathlord87
- Daniel Leong: @dhleong
Latest stable release : 2.7.1 #
-
#432
ListFragment
can't use@ItemClick
-
#381
@OnActivityResult
in fragment. -
#427
@OnActivityResult(REQUEST_CODE)
creates fall-through switch-case-statements
You can browse the closed issues for the 2.7.1 release to see all the changes.
- Mathieu Boniface: @mathieuboniface
- Colin Edwards: @DDRBoxman
2.7 #
Released on November 4, 2012
-
#353 Maven users: the API jar is now a separate artifact,
androidannotations-api
. We do not use theapi
classifier any more. If you are using Maven & Eclipse, you need to add two new dependencies to your eclipse factory path, as explained here. Non Maven users: you should now download the zip bundle, the processor jar on the repository doesn't contain its dependencies anymore -
#25 #258 #278 #294. The generated classes are always final, and you cannot extend from a generated class any more. That's because AndroidAnnotations now takes into account annotations used in superclasses. Also note that component annotations such as
@EFragment
can now be used on abstract classes. -
#377 @Rest now has a mandatory
converters()
parameter and itsvalue()
parameter has been renamed torootUrl
, to adapt to Spring Android RestTemplate1.0.0.RELEASE
. Usage example:
@Rest(rootUrl = "http://company.com/ajax/services", converters = { MappingJacksonHttpMessageConverter.class })
public interface MyService {
}
- #239 In previous releases, the generated rest clients had three constructors, two of which were never used. These two are not generated any more.
-
#270
startForResult()
was added to the activity Intent Builders. -
#237 Library projects can reference
R.*
fields using aresName
annotation parameter. -
#276 @InstanceState can be used in fragments annotated with
@EFragment
. -
#245 [@OptionsMenu] (https://github.com/excilys/androidannotations/wiki/Handling-options-menu) and
@OptionsItem
support in fragments annotated with@EFragment
- #303 Improved incremental compilation support: renaming or removing an annotated file will now delete the corresponding generated file
- #266 Intent builders can be used to start services
- #210 Fragment arguments with @FragmentArg
-
#164 & #360 androidManifestFile processor parameter can be used to set the absolute path to the
AndroidManifest.xml
. -
#348
@EBean
annotated classes can now have a constructor with aContext
param -
#183 SeekBar events binding with
@SeekBarProgressChange
,@SeekBarTouchStart
and@SeekBarTouchStop
- #28 & #349 @OnActivityResult to handle activity results.
- #246 @OptionsMenu can have multiple attributes.
- #370 AndroidAnnotations now works for turkish developers
- #226 Support for ORMLite DAOs
-
#221
@Accept
on Rest clients now takes aString
instead of aMediaType
We fixed 42 issues in this release.
You can browse the closed issues for the 2.7 release to see all the changes.
- Pierre-Yves Ricau: @pyricau
- Mathieu Boniface: @matboniface
- Rostislav Chekan: @naixx
- Johan Poirier: @johanpoirier
- Pierre-Jean Vardanéga:@pvardanega
- Alexandre Thomas: @athomas
2.6 #
Released on June 14, 2012
Download it or update your Maven configuration.
Note: Items in bold are not backward compatible.
-
#110
@UiThreadDelayed
has been removed, use@UiThread(delay=2000)
instead. - #3 Fragment support, yeah!
-
#188 In
@Extra
, the String parameter for the extra name is now optional. - #177 Integration with ActionBarSherlock.
- #120 Support for text change events.
-
#166
@Extra
fields are reinjected every time you callsetIntent()
-
#171 Set the root url of your
@Rest
interfaces at runtime withsetRootUrl(String rootUrl);
. - #219 Simple HTTPS.
By the way, have you noticed the new androidannotations.org website?
We fixed 29 issues in this release.
You can browse the closed issues for the 2.6 Release to see all the changes.
- Alexandre Thomas: @athomas
- Eric Kok: @erickok
- Joan Zapata: @shuya-inc
- Linus Brimstedt: @Brimstedt
- Mathieu Boniface: @matboniface
- Nabil Hachicha: @nhachicha
- Nachiket Apte: @nachowski
- Pierre-Yves Ricau: @pyricau
2.5.1 #
Released on March 30, 2012
-
@InstanceState
mades AA crash due to a wrong compile time Android dependency.
See the closed issue for the 2.5.1 Release for details.
- Pierre-Yves Ricau: @pyricau
2.5 #
Released on March 26, 2012 after a great skiing day :)
- Save your activity state with
@InstanceState
on fields - Keep references to your costly objects on config changes in activities with
@NonConfigurationInstance
on fields - Support for Singleton scope on
@EBean
classes:@EBean(scope = Singleton) public class MySingleton {}
- You can specify the implementation of an
@Bean
field:@Bean(MyImpl.class) MyInterface field;
- AndroidAnnotations fully integrate with GreenDroid
-
@UiThread
has an optionaldelay
parameter, and@UiThreadDelayed
is deprecated.
We fixed 19 issues in this release.
You can browse the closed issues for the 2.5 Release to see all the changes.
- Alexandre Thomas: @athomas
- Joan Zapata: @shuya-inc
- Nycholas de Oliveira e Oliveira: @nycholas
- Mathieu Boniface: @matboniface
- Pierre-Yves Ricau: @pyricau
Released on Feb 2, 2012
- New Android components : [Service](Enhance Services), [BroadcastReceiver](Enhance BroadcastReceivers), [ContentProvider](Enhance ContentProviders), Application
- Annotating [custom classes](Enhance custom classes)
- Annotating [custom views](Enhance custom views)
- Executing code [after injection](After Injection)
We fixed 35 issues in this release, added continuous integration with automatic deployment of snapshots, moved to GitHub, reorganized the documentation and documented many undocumented features.
You can browse the closed issues for the 2.4 Release to see all the changes.
There was no 2.3 release, due to an error at release time. We jump from 2.2 to 2.4 :) .
Released on Dec 8, 2011
- Issue 93: View binding &
@AfterViews
are executed every timesetContentView
is called - Issue 94: Deploy AndroidAnnotations to Maven Central
- Issue 102: Rename
pref.field().get(default)
togetOr(default)
- Issue 83:
@Click
& friends with multiple id parameters - Issue 125: Dropped support for Eclipse 3.4.X
- Issue 55: Rest API using Spring Android.
- Issue 95:
@HtmlRes
&@FromHtml
annotations to inject spanned html strings - Issue 107: abstract annotated activities generate abstract activities instead of final activities
- Issue 111: Convention over configuration can now do camel case => snake case conversion.
- Issue 112: Adding Null checkers for view injection & binding
- Issue 41: Setting the dev project as an eclipse plugin, to ease development (hotreplace & debug)
- Issues 117 & 116 : More doc on how to develop AndroidAnnotations, and being able to run functional tests from eclipse
- Issues 113 & 63: @EViewGroup (equivalent of @EActivity for ViewGroups)
- Issue 118: Pref are sometimes not generated / injected
- Issue 123: long not supported in prefs
- Issues 109, 126 & 128: Support for dozens of new types of Android Managers injection with
@SystemService
, even for API level 14 and even hidden system services (useful for custom Android builds). - Issue 104: Support for
@OptionsMenu
and@OptionsItems
- Issue 127:
@NoTitle
and@Fullscreen
on activities - Issue 87:
@Trace
to trace methods and durations - Issue 134: Exception in
@Rest
when using@Get
without value - Issue 137: Disable warning on
@EActivity
when the activity is abstract - Issue 136: New tests for
@ItemClick
Annotation - Issue 133:
@EActivity
on abstract classes generated errors when doing a clean build - Issue 135: Support for
setRestTemplate()
in@Rest
- Issue 138:
onCreate()
visibility adapted in abstract activities
Released on Sep 17, 2011
Bugfix release
- Issue 103:
@UiThread
&@Background
didn't work with generic parameters
Released on Sep 8, 2011
Bugfix release
- Issue 100:
@RoboGuice
doesn't work withMapActivity
- Issue 97: AndroidAnnotations releases failed at perform goal.
Released on Aug 29, 2011
- Issue 73: View injection happens after
onCreate()
and before@AfterViews
annotated methods - Issue 64: The generated classes are now final.
- Issue 91: Switched Maven repository from Google Code to Excilys. The new repository is here
-
BackgroundExecutor
is now part of the API package instead of being generated at compile time (r858). - Added a compile scoped dependency on Android for AndroidAnnotations, which allows Javadoc links as well as including some classes in the API Jar (r856 and r857).
- Issue 46: handling of Activity.onBackPressed for pre ECLAIR (2.0) Android versions.
- Issue 47: Creating helpers for
SharedPreferences
- Issue 49: Create an assembly Zip for releases
- Issue 51: Add automatic functional tests
- Added NOTE messages at compile time to let the user know which files are generated. Can be viewed in Eclipse with the Error log view. Done at r976.
- Issue 55: Partial implementation of a Rest API using Spring Android. Not officially supported yet.
- Issue 74:
InputMethodManager
service can not be injected - Issue 69:
SensorManager
service can not be injected - Issue 75: Using
@Extra
without value adds an additional unexpected compile error - Issue 68:
@Extra
does not work with Generics - Issue 70:
@Extra
does not work with Arrays - Added compiler notes when activities declared in the manifest are not found in the compile path. Done at r1139.
- Issue 61: Inject Application with
@App
- Issue 79: Add a license checker
- Issue 78: Switch source repository to Git
- Issue 88:
@AnimationRes
can now be used to inject Animation fields
Bugfix release
Released on Apr 13, 2011
- Issue 48: Unexpected warnings for registered activities that have a different package than the application package.
Bugfix release
Released on Apr 9, 2011
- Issue 42: AndroidAnnotations could not find the
AndroidManifest.xml
file if there was a space in the project path.
Released on Apr 6, 2011
The version number went from 1.0.3 to 2.0 because we made some API changes that are not backward compatible (@EActivity
, startActivity*
methods), and because a whole part of the internals has been rewritten (i.e. code generation).
- Issue 7: Code generation using CodeModel instead of Strings
- Issue 37: Created a sample project to show how to integrate Maven and AndroidAnnotations. Also created a dedicated wiki page.
- Issue 27: Removed overriding of
startActivity
()methods. One cannot anymore start an enhanced activity without using the generated name (ie
MyActivity_`). - Better stack trace printing of compile time unexpected exceptions.
- Issue 36: Created a snapshots and a releases Maven repository, instead of a common repository. The old repository is still available for previous releases.
- Activities do not need any more to be in the same package as the R class (we read the
AndroidManifest.xml
to determine the R class package) - Issue 29: Added online Javadoc
- Issue 39: Removed compile errors on class members when
@EActivity
is available but has compile errors. - Issue 34: Compile errors are issued when
@EActivity
annotated activities are not registered in theAndroidManifest.xml
file. - Issue 4: Using a shared executor service instead of creating a new thread each time an @Background method is called.
- Issue 35: Renamed @Enhance to @EActivity.
- Global improvements based on the Hibernate Metamodel Generator (which is an annotation processor).
Bug fixes:
- Issue 26: RClassFinder returned null when the r class was not found, which led to NPE in CoumpoundRClass at compile time instead of a clear error message.
- Compile time bug when an
@ItemSelect
method had no parameter (the generated code did not compile) -
@Transactional
overridden method did not call through super (Stack overflow)
Pre 2.0 releases are available on the old Maven repository.
Released on Mar 17, 2011
- Fixed issue 25: Missing View import when using
@RoboGuice
without some other annotations. - Removed an unused
@Inject
import in some cases
Released on Mar 13, 2011
- Issue 22: Support for
RoboGuice
1.1.1, removed support forRoboGuice
1.0 and 1.1 (too much hassle).RoboGuice
1.1.1 bug fixes have been successfully backported to AndroidAnnotations. - Issue 24: synchronized keyword is not allowed anymore on
@UiThread
and@Background
methods. - Issue 21: Created a thin API JAR that should be included in the build path instead of the whole preprocessor JAR. AndroidAnnotations has a much smaller footprint !
Released on Jan 25, 2011
- Retrofitted a bug fix from RoboGuice (r557)
Released on Jan 25, 2011
- Issue 17: support for RoboGuice 1.0 and 1.1. Event listeners (RoboGuice 1.1) are supported as well.
- Issue 18: injection happens before
@BeforeCreate
method calls (except view injection of course) - Issue 2:
@Click
and other listener methods cannot be used twice for the same id - Improved javadocs
- Improved code generation, with support for imports
-
@Enhance
annotated classes may now be abstract (useful with RoboGuice : you can let your activity implementInjectorProvider
and call thegetInjector
method, which will be implemented in the generated subclass)
Released on Jan 17, 2011
- Issue 11: overriding more
startActivity*()
methods - Issue 12:
@Extra
throws NPE when extra not set - Issue 13: Support for
@BeforeCreate
- Renamed
@Layout
to@Enhance
- Issue 10: remove the need for
@Layout
Released on Jan 9, 2011
- Support for integrating with RoboGuice
Released on Jan 6, 2011
- android.R support
@Transactional
- Events :
@LongClick
,@ItemClick
,@ItemSelect
,@LongItemClick
,@Touch
- method names for events can have a specific suffix (myButtonClicked, myButtonSelected)
- constraints on event methods: no exception allowed
Released on Jan 5, 2011
- Support for
@UiThreadDelayed
- Enough wiki documentation to easily get started and discover all the use cases
- Added exception handling to
@UiThread
and@Background
Released on Jan 4, 2011
- Support for
@Extra
,@SystemService
, all@XXXRes
(replacing @XXXValue) - startActivity is now overriden to replace
MyActivity
withMyActivity_
in Intents
Released on Jan 4, 2011
- Support for
@Background
and@UiThread
- @Value is replaced by
@StringArrayValue
,@ColorValue
and@StringResValue
(will be necessary to support more values)
Released on Dec 22, 2010
- Replaced
@UiView
with@ViewById
- Added more constraints : private modifier not allowed
- Support for
@Value
on Strings, String arrays and colors