{"id":17643796,"url":"https://github.com/vanniktech/onactivityresult","last_synced_at":"2025-04-05T06:06:40.503Z","repository":{"id":3100852,"uuid":"47873486","full_name":"vanniktech/OnActivityResult","owner":"vanniktech","description":"OnActivityResult annotation compiler for Android","archived":false,"fork":false,"pushed_at":"2022-06-19T09:36:14.000Z","size":496,"stargazers_count":459,"open_issues_count":0,"forks_count":25,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-03-29T05:05:32.381Z","etag":null,"topics":["android","annotation-processor","onactivityresult"],"latest_commit_sha":null,"homepage":"http://vanniktech.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vanniktech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-12-12T10:14:00.000Z","updated_at":"2025-02-05T20:33:16.000Z","dependencies_parsed_at":"2022-09-10T21:51:38.602Z","dependency_job_id":null,"html_url":"https://github.com/vanniktech/OnActivityResult","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2FOnActivityResult","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2FOnActivityResult/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2FOnActivityResult/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2FOnActivityResult/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vanniktech","download_url":"https://codeload.github.com/vanniktech/OnActivityResult/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294536,"owners_count":20915340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","annotation-processor","onactivityresult"],"created_at":"2024-10-23T09:42:55.078Z","updated_at":"2025-04-05T06:06:40.486Z","avatar_url":"https://github.com/vanniktech.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OnActivityResult\n\n* Generates boilerplate code for OnActivityResult callbacks and lets you focus on what matters.\n* Generated code is fully traceable and debuggable.\n* Everything is generated during compile time with appropriate errors / warnings.\n* No reflection used!\n\n## Gradle\n\n```groovy\ndependencies {\n  compile 'com.vanniktech:onactivityresult:0.7.0'\n  annotationProcessor 'com.vanniktech:onactivityresult-compiler:0.7.0'\n}\n```\n\n### Snapshots\n\n```groovy\ncompile 'com.vanniktech:onactivityresult:0.8.0-SNAPSHOT'\nannotationProcessor 'com.vanniktech:onactivityresult-compiler:0.8.0-SNAPSHOT'\n```\n\nModules are located on [Maven Central](https://oss.sonatype.org/#nexus-search;quick~onactivityresult).\n\n## Example\n\nOverride `onActivityResult` in your Activity / Fragment and call `ActivityResult.onResult`\n\n```java\n@Override\nprotected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {\n  super.onActivityResult(requestCode, resultCode, data);\n\n  ActivityResult.onResult(requestCode, resultCode, data).into(this);\n}\n```\n\nAnnotate your methods and get the callback\n\n```java\n@OnActivityResult(requestCode = 33)\nvoid onActivityResultTestActivity() { /* Do something */ }\n\n@OnActivityResult(requestCode = 1, resultCodes = { Activity.RESULT_OK })\nvoid onActivityResultActivityOk() { /* Only do something when ok */ }\n\n@OnActivityResult(requestCode = 1, resultCodes = { Activity.RESULT_CANCELED })\nvoid onActivityResultActivityCanceled() { /* Only do something when canceled */ }\n\n@OnActivityResult(requestCode = 2)\nvoid onActivityResultPickImage(final int resultCode, final Intent intent) { /* Do something */ }\n```\n\nVarious parameters are supported:\n\n* `none`\n* `int`\n* `Intent`\n* `int, Intent`\n* `Intent, int`\n\nWhere `int` parameters will get the resultCode and `Intent` parameters will get the Intent.\n\n**Note: Each annotated method shall only have one int and / or Intent variable.**\n\nIn addition to that other parameter annotations are supported like:\n\n* [@IntentData](onactivityresult-annotations/src/main/java/onactivityresult/IntentData.java) `Uri uri`\n* [@Extra](onactivityresult-annotations/src/main/java/onactivityresult/Extra.java) `type var`\n* [@ExtraBoolean](onactivityresult-annotations/src/main/java/onactivityresult/ExtraBoolean.java) `boolean booleanVar`\n* [@ExtraByte](onactivityresult-annotations/src/main/java/onactivityresult/ExtraByte.java) `byte byteVar`\n* [@ExtraChar](onactivityresult-annotations/src/main/java/onactivityresult/ExtraChar.java) `char charVar`\n* [@ExtraDouble](onactivityresult-annotations/src/main/java/onactivityresult/ExtraDouble.java) `double doubleVar`\n* [@ExtraFloat](onactivityresult-annotations/src/main/java/onactivityresult/ExtraFloat.java) `float floatVar`\n* [@ExtraInt](onactivityresult-annotations/src/main/java/onactivityresult/ExtraInt.java) `int intVar`\n* [@ExtraLong](onactivityresult-annotations/src/main/java/onactivityresult/ExtraLong.java) `long longVar`\n* [@ExtraShort](onactivityresult-annotations/src/main/java/onactivityresult/ExtraShort.java) `short shortVar`\n* [@ExtraString](onactivityresult-annotations/src/main/java/onactivityresult/ExtraString.java) `String stringVar`\n\nSome examples can be found [here](./onactivityresult-sample/src/main/java/com/vanniktech/onactivityresult/sample/MainActivity.java).\n\nThe [@Extra](onactivityresult-annotations/src/main/java/onactivityresult/Extra.java) annotation is generic and works with every type mentioned above. In addition it also supports custom types which are implementing `Parcelable` or `Serializable`.\n\nThe disadvantage of [@Extra](onactivityresult-annotations/src/main/java/onactivityresult/Extra.java) is that it won't let you specify a default value therefore the other annotations do exist and should be used when needed.\n\n## Advantages over [AfterMath](https://github.com/MichaelEvans/Aftermath)\n\n* Gives you compile error(s) when using invalid RequestCode\n* Annotated method does not require `resultCode` and `Intent` to be present. It'll work with every combination (no params, resultCode, Intent, resultCode \u0026 Intent, Intent \u0026 resultCode). In addition also all custom parameter annotations can be used.\n* The annotations are on mavenCentral and available as a separate artifact\n* More detailed error messages\n* Inheritance support\n* [@IntentData](onactivityresult-annotations/src/main/java/onactivityresult/IntentData.java) annotation with @NonNull \u0026 @Nullable support.\n* Specify resultCodes with e.g. `resultCodes = { Activity.RESULT_OK }`.\n* [@Extra](onactivityresult-annotations/src/main/java/onactivityresult/Extra.java), [@ExtraBoolean](onactivityresult-annotations/src/main/java/onactivityresult/ExtraBoolean.java), [@ExtraByte](onactivityresult-annotations/src/main/java/onactivityresult/ExtraByte.java), [@ExtraChar](onactivityresult-annotations/src/main/java/onactivityresult/ExtraChar.java), [@ExtraDouble](onactivityresult-annotations/src/main/java/onactivityresult/ExtraDouble.java), [@ExtraFloat](onactivityresult-annotations/src/main/java/onactivityresult/ExtraFloat.java), [@ExtraInt](onactivityresult-annotations/src/main/java/onactivityresult/ExtraInt.java), [@ExtraLong](onactivityresult-annotations/src/main/java/onactivityresult/ExtraLong.java), [@ExtraShort](onactivityresult-annotations/src/main/java/onactivityresult/ExtraShort.java), [@ExtraString](onactivityresult-annotations/src/main/java/onactivityresult/ExtraString.java) annotations.\n\n## Thanks\n\n[Thanks to JakeWharton's ButterKnife](https://github.com/JakeWharton/butterknife)\n\n[Thanks to Hannes Dorfmann's Annotation Processing 101](http://hannesdorfmann.com/annotation-processing/annotationprocessing101)\n\n# License\n\nCopyright (C) 2015 Vanniktech - Niklas Baudy\n\nLicensed under the Apache License, Version 2.0","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvanniktech%2Fonactivityresult","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvanniktech%2Fonactivityresult","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvanniktech%2Fonactivityresult/lists"}