Skip to content

IntentBuilder is a type safe way of creating intents and populating them with extras. Use them with your Activities and Services.

License

Notifications You must be signed in to change notification settings

ksenchy/intentbuilder

 
 

Repository files navigation

#IntentBuilder IntentBuilder is a type safe way of creating intents and populating them with extras. Use them with your Activities and Services.

##Installation

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
    }
}

apply plugin: 'com.neenbedankt.android-apt'

dependencies {
    compile 'be.trikke:intentbuilder-api:1.0.1'
    apt 'be.trikke:intentbuilder-compiler:1.0.1'
}

##Usage Annotate your activities and services with an @BuildIntent annotation so that they are picked up by the library. For every class with an @BuildIntent annotation a class named <ComponentName>Intent will be generated. If your Component takes in parameters via extras in the intent you can now mark field with the @Extra annotation and they can be injected with the static inject method on the generated intent builder class. Extras can be marked as optional with the @Nullable annotation.

Sample activity using IntentBuilder:

@BuildIntent
public class DetailActivity extends AppCompatActivity {

	@Extra String one;

	@Extra String two;

	@Extra @Nullable String three;

	@Extra @Nullable int four;

	@Extra("five") @Nullable String mFive;

	@Extra @Nullable boolean six;

	@Override public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		DetailActivityIntent.inject(getIntent(), this);
		// use extras
	}
}

##Launching

Use the builder to create the Intent.

Intent i = new DetailActivityIntent("een", "twee")
                        .three("drie")
                        .five("5")
                        .build(MainActivity.this);
startActivity(i);

Or quickly build an intent with the provided Flow shortcut class.

Flow.gotoDetailActivity("een", "twee").three("drie").five("5").six(true).flag(Intent.FLAG_ACTIVITY_CLEAR_TOP).launch(MainActivity.this);

Use the provided Flow shortcut class to quickly launch an Intent with it's required extra's (if any).

Flow.launchDetailActivity(MainActivity.this, "een","twee")

The Flow provides quick methods for getting all your generated Intents, and has launch methods for compatible Components.

##Contributing Please do! Let me know what you think, and PR's are always welcome!

##Thanks Thanks to emilsjolander and robertoestivill for their source and inspiring me to get off my butt and make this.

About

IntentBuilder is a type safe way of creating intents and populating them with extras. Use them with your Activities and Services.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%