OnActivityResult

OnActivityResult annotation compiler for Android

Лицензия

Лицензия

Группа

Группа

com.vanniktech
Идентификатор

Идентификатор

onactivityresult
Последняя версия

Последняя версия

0.7.0
Дата

Дата

Тип

Тип

aar
Описание

Описание

OnActivityResult
OnActivityResult annotation compiler for Android
Ссылка на сайт

Ссылка на сайт

https://github.com/vanniktech/OnActivityResult
Система контроля версий

Система контроля версий

https://github.com/vanniktech/OnActivityResult

Скачать onactivityresult

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/com.vanniktech/onactivityresult/ -->
<dependency>
    <groupId>com.vanniktech</groupId>
    <artifactId>onactivityresult</artifactId>
    <version>0.7.0</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/com.vanniktech/onactivityresult/
implementation 'com.vanniktech:onactivityresult:0.7.0'
// https://jarcasting.com/artifacts/com.vanniktech/onactivityresult/
implementation ("com.vanniktech:onactivityresult:0.7.0")
'com.vanniktech:onactivityresult:aar:0.7.0'
<dependency org="com.vanniktech" name="onactivityresult" rev="0.7.0">
  <artifact name="onactivityresult" type="aar" />
</dependency>
@Grapes(
@Grab(group='com.vanniktech', module='onactivityresult', version='0.7.0')
)
libraryDependencies += "com.vanniktech" % "onactivityresult" % "0.7.0"
[com.vanniktech/onactivityresult "0.7.0"]

Зависимости

compile (2)

Идентификатор библиотеки Тип Версия
com.vanniktech : onactivityresult-annotations jar 0.7.0
com.android.support » support-annotations jar 27.0.2

Модули Проекта

Данный проект не имеет модулей.

OnActivityResult

  • Generates boilerplate code for OnActivityResult callbacks and lets you focus on what matters.
  • Generated code is fully traceable and debuggable.
  • Everything is generated during compile time with appropriate errors / warnings.
  • No reflection used!

Gradle

dependencies {
  compile 'com.vanniktech:onactivityresult:0.7.0'
  annotationProcessor 'com.vanniktech:onactivityresult-compiler:0.7.0'
}

Snapshots

compile 'com.vanniktech:onactivityresult:0.8.0-SNAPSHOT'
annotationProcessor 'com.vanniktech:onactivityresult-compiler:0.8.0-SNAPSHOT'

Modules are located on Maven Central.

Example

Override onActivityResult in your Activity / Fragment and call ActivityResult.onResult

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
  super.onActivityResult(requestCode, resultCode, data);

  ActivityResult.onResult(requestCode, resultCode, data).into(this);
}

Annotate your methods and get the callback

@OnActivityResult(requestCode = 33)
void onActivityResultTestActivity() { /* Do something */ }

@OnActivityResult(requestCode = 1, resultCodes = { Activity.RESULT_OK })
void onActivityResultActivityOk() { /* Only do something when ok */ }

@OnActivityResult(requestCode = 1, resultCodes = { Activity.RESULT_CANCELED })
void onActivityResultActivityCanceled() { /* Only do something when canceled */ }

@OnActivityResult(requestCode = 2)
void onActivityResultPickImage(final int resultCode, final Intent intent) { /* Do something */ }

Various parameters are supported:

  • none
  • int
  • Intent
  • int, Intent
  • Intent, int

Where int parameters will get the resultCode and Intent parameters will get the Intent.

Note: Each annotated method shall only have one int and / or Intent variable.

In addition to that other parameter annotations are supported like:

Some examples can be found here.

The @Extra annotation is generic and works with every type mentioned above. In addition it also supports custom types which are implementing Parcelable or Serializable.

The disadvantage of @Extra is that it won't let you specify a default value therefore the other annotations do exist and should be used when needed.

Advantages over AfterMath

  • Gives you compile error(s) when using invalid RequestCode
  • Annotated method does not require resultCode and Intent to be present. It'll work with every combination (no params, resultCode, Intent, resultCode & Intent, Intent & resultCode). In addition also all custom parameter annotations can be used.
  • The annotations are on mavenCentral and available as a separate artifact
  • More detailed error messages
  • Inheritance support
  • @IntentData annotation with @NonNull & @Nullable support.
  • Specify resultCodes with e.g. resultCodes = { Activity.RESULT_OK }.
  • @Extra, @ExtraBoolean, @ExtraByte, @ExtraChar, @ExtraDouble, @ExtraFloat, @ExtraInt, @ExtraLong, @ExtraShort, @ExtraString annotations.

Thanks

Thanks to JakeWharton's ButterKnife

Thanks to Hannes Dorfmann's Annotation Processing 101

License

Copyright (C) 2015 Vanniktech - Niklas Baudy

Licensed under the Apache License, Version 2.0

Версии библиотеки

Версия
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0