Skip to content

Instantly share code, notes, and snippets.

View lukaspili's full-sized avatar

Lukasz Piliszczuk lukaspili

View GitHub Profile
public class SimpleView extends LinearLayout {
@Inject
SimpleScreen.Presenter presenter;
public SimpleView(Context context, AttributeSet attrs) {
super(context, attrs);
DaggerService.<SimpleScreen.Component>getDaggerComponent(context)
.inject(this);
}
public class SimpleScreen {
@dagger.Component(dependencies = SimpleMortarActivity.Component.class)
@CustomScope(Component.class)
public static interface Component
extends SimpleMortarActivity.Component {
void inject(SimpleView view);
}
public class App extends Application {
private MortarScope mortarScope;
private Component component;
@Override
public Object getSystemService(String name) {
return mortarScope.hasService(name) ? mortarScope.getService(name) : super.getSystemService(name);
}
@lukaspili
lukaspili / LoginScreen.java
Last active August 29, 2015 14:16
Dagger 2 / Mortar / Flow
@Layout(R.layout.view_login)
@WithComponent(LoginScreen.Component.class)
public class LoginScreen extends Path {
@dagger.Component(dependencies = RootActivity.Component.class)
@PerScreenScope(Component.class)
public static interface Component extends RootActivity.Component {
void inject(LoginView view);
}
public class SimpleActivity extends Activity {
@Inject
Api api;
@Inject
ApiManager apiManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
@Singleton
public class ApiManager {
@Inject
Api api;
@Inject
public ApiManager() {
}
@Component(modules = {ApiModule.class, DatabaseModule.class})
@Singleton
public interface DataAccessComponent {
Api api();
Database database();
void inject(SimpleActivity simpleActivity);
}
public class SimpleActivity extends Activity {
@Inject
Api api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DemortarApp.getDemortarApp(this).getComponent().inject(this);
public class SimpleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DataAccessComponent component = DemortarApp.getDemortarApp(this)
.getComponent();
Api api = component.api();
public class DemortarApp extends Application {
private DataAccessComponent component;
public static DemortarApp getDemortarApp(Context context) {
return (DemortarApp) context.getApplicationContext();
}
@Override
public void onCreate() {