Skip to content

Instantly share code, notes, and snippets.

View iammert's full-sized avatar
🎧
Focusing

Mert Şimşek iammert

🎧
Focusing
View GitHub Profile
@iammert
iammert / AndroidSampleApp.java
Last active June 15, 2017 13:18
AndroidSampleApp.java
public class AndroidSampleApp extends Application implements HasActivityInjector {
@Inject
DispatchingAndroidInjector<Activity> activityDispatchingAndroidInjector;
@Override
public void onCreate() {
super.onCreate();
//simplified
}
@iammert
iammert / MainActivityModule.java
Created June 15, 2017 12:56
MainActivityModule.java
@Module
public class MainActivityModule {
@Provides
MainView provideMainView(MainActivity mainActivity){
return mainActivity;
}
@Provides
MainPresenter provideMainPresenter(MainView mainView, ApiService apiService){
@iammert
iammert / MainActivityComponent.java
Created June 15, 2017 12:55
MainActivityComponent.java
@Subcomponent(modules = MainActivityModule.class)
public interface MainActivityComponent extends AndroidInjector<MainActivity>{
@Subcomponent.Builder
abstract class Builder extends AndroidInjector.Builder<MainActivity>{}
}
@iammert
iammert / AppModule.java
Created June 15, 2017 11:59
AppModule.java
@Module(subcomponents = {
MainActivityComponent.class,
DetailActivityComponent.class})
public class AppModule {
@Provides
@Singleton
Context provideContext(Application application) {
return application;
}
@iammert
iammert / AppComponent.java
Created June 15, 2017 11:47
AppComponent.java
@Component(modules = {
AndroidInjectionModule.class,
AppModule.class,
ActivityBuilder.class})
public interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance Builder application(Application application);
AppComponent build();
@iammert
iammert / ActivityBuilder.java
Created June 15, 2017 11:33
ActivityBuilder.java
@Module
public abstract class ActivityBuilder {
@Binds
@IntoMap
@ActivityKey(MainActivity.class)
abstract AndroidInjector.Factory<? extends Activity> bindMainActivity(MainActivityComponent.Builder builder);
@Binds
@IntoMap
JavaFile.builder("com.annotationsample", navigatorClass.build())
.build()
.writeTo(filer);
@iammert
iammert / create.java
Created May 9, 2017 08:34
create class and methods
TypeSpec.Builder navigatorClass = TypeSpec
.classBuilder("Navigator")
.addModifiers(Modifier.PUBLIC, Modifier.FINAL);
for (Map.Entry<String, String> element : activitiesWithPackage.entrySet()) {
String activityName = element.getKey();
String packageName = element.getValue();
ClassName activityClass = ClassName.get(packageName, activityName);
MethodSpec intentMethod = MethodSpec
.methodBuilder(METHOD_PREFIX + activityName)
@iammert
iammert / find.java
Created May 9, 2017 08:33
find elements in process
for (Element element : roundEnvironment.getElementsAnnotatedWith(NewIntent.class)) {
if (element.getKind() != ElementKind.CLASS) {
messager.printMessage(Diagnostic.Kind.ERROR, "Can be applied to class.");
return true;
}
TypeElement typeElement = (TypeElement) element;
activitiesWithPackage.put(
typeElement.getSimpleName().toString(),
public final class Navigator {
public static Intent startMainActivity(Context context) {
return new Intent(context, com.annotationsample.MainActivity.class);
}
}