Skip to content

Instantly share code, notes, and snippets.

View lukaspili's full-sized avatar

Lukasz Piliszczuk lukaspili

View GitHub Profile
package com.siu.android.univelo.paris.ui.view.util
import android.content.res.AssetManager
import android.graphics.Typeface
import android.view.View
import java.util.*
/**
* @author Lukasz Piliszczuk - [email protected]
*/
@lukaspili
lukaspili / View.java
Created October 20, 2015 22:23
Kotlin + Anko beauty on Android
package lukaspili.angelus.mvp.home.drawer
import android.content.Context
import android.graphics.Color
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
import architect.MortarFactory
import architect.Screen
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);