package autodagger.example;
import android.app.Activity;
import android.os.Bundle;
import autodagger.AutoComponent;
import autodagger.AutoInjector;
import dagger.Component;
import dagger.Module;
import dagger.Provides;
/**
* Showcase: @AutoComponent dependencies from manually written dagger component
*
* @author Lukasz Piliszczuk - lukasz.pili@gmail.com
*/
@AutoComponent(
modules = {SecondActivity.ModuleOne.class, SecondActivity.ModuleTwo.class},
dependencies = SecondActivity.SomeOtherComponent.class,
superinterfaces = {HasDependenciesOne.class, HasDependenciesTwo.class},
subcomponents = MySubObject1.class
)
@AutoInjector
@DaggerScope(SecondActivity.class)
public class SecondActivity extends Activity {
private SecondActivityComponent component;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
component = DaggerSecondActivityComponent.builder()
.someOtherComponent(DaggerSecondActivity_SomeOtherComponent.create())
.moduleOne(new ModuleOne())
.moduleTwo(new ModuleTwo())
.build();
component.inject(this);
}
@Module
public static class ModuleOne {
@Provides
@DaggerScope(SecondActivity.class)
public MyObject2<String, String> providesMyObject2() {
return new MyObject2<>();
}
}
@Module
public static class ModuleTwo {
}
@Component
@DaggerScope(SomeOtherComponent.class)
public interface SomeOtherComponent {
}
}